关于音频编码FFmpeg

最近处理音频与视频压缩方面的内容,从官网下载的FFMPEG非常的大,在WINDOW上可以通过定制FFMPEG编译参数来实现FFMPEG的裁剪功能。在网上调查了很多的裁剪编译选项,经过测试都不正确。通过对调查的内容进行取舍支持X264 HECV aac, wav,编译选项如下:

./configure \
    --toolchain=msvc \
    --target-os=win32 \
    --arch=x86_64 \
    --enable-debug \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-symver \
    --disable-bsfs \
    --disable-protocols \
    --disable-indevs \
    --disable-outdevs \
    --disable-libvpx \
    --disable-dxva2 \
    --disable-d3d11va \
    --disable-filters \
    --disable-encoders \
    --disable-decoders \
    --disable-muxers \
    --disable-demuxers \
    --disable-parsers \
    --disable-bzlib \
    --disable-zlib \
    --enable-small \
    --enable-asm \
    --enable-nonfree \
    --enable-gpl \
    --enable-swresample \
    --enable-filter=scale \
    --enable-filter=aresample \
    --enable-filter=anull \
    --enable-filter=null \
    --enable-filter=overlay \
    --enable-filter=amix \
    --enable-protocol=file \
    --enable-encoder=pcm* \
    --enable-encoder=flac \
    --enable-encoder=libmp3lame \
    --enable-encoder=libx264 \
    --enable-encoder=aac \
    --enable-encoder=rawvideo \
    --enable-encoder=mpeg4 \
    --enable-encoder=libfdk_aac \
    --enable-encoder=jpeg2000 \
    --enable-encoder=mjpeg \
    --enable-encoder=ljpeg \
    --enable-encoder=jpegls \
    --enable-encoder=png \
    --enable-decoder=png \
    --enable-decoder=libfdk_aac \
    --enable-decoder=mp3 \
    --enable-decoder=pcm* \
    --enable-decoder=rawvideo \
    --enable-decoder=mpeg4 \
    --enable-decoder=movtext \
    --enable-decoder=aac \
    --enable-decoder=hevc \
    --enable-decoder=h264 \
    --enable-decoder=flac \
    --enable-decoder=jpeg2000 \
    --enable-decoder=jpegls \
    --enable-decoder=mjpeg \
    --enable-decoder=mjpegb \
    --enable-decoder=mp3float \
    --enable-decoder=mp3adufloat \
    --enable-decoder=mp3adu \
    --enable-decoder=mp3on4 \
    --enable-decoder=mp3on4float \
    --enable-muxer=mp3 \
    --enable-muxer=aiff \
    --enable-muxer=h264 \
    --enable-muxer=mp4 \
    --enable-muxer=rawvideo \
    --enable-muxer='pcm*' \
    --enable-muxer=adts \
    --enable-muxer=flac \
    --enable-muxer=mjpeg \
    --enable-muxer=wav \
    --enable-muxer=avi \
    --enable-demuxer=avi \
    --enable-demuxer=wav \
    --enable-demuxer=ac3 \
    --enable-demuxer=mjpeg \
    --enable-demuxer=flac \
    --enable-demuxer=mp3 \
    --enable-demuxer=aac \
    --enable-demuxer=aiff \
    --enable-demuxer=h264 \
    --enable-demuxer=mov \
    --enable-demuxer='pcm*' \
    --enable-demuxer=rawvideo \
    --enable-parser=ac3 \
    --enable-parser=flac \
    --enable-parser=aac \
    --enable-parser=h264 \
    --enable-parser=hevc \
    --enable-parser=mpegaudio \
    --enable-parser=mpeg4video \
    --enable-parser=png \
    --enable-indev=v4l2 \
    --enable-outdev=v4l2 \
    --enable-swscale \
    --enable-swscale-alpha \
    --enable-libmp3lame \
    --enable-libx264 \
    --enable-libfdk_aac \
    --prefix=./build64 \
    --extra-cflags="-I/e/ffmpegcode/extent-lib/include" \
    --extra-ldflags="-LIBPATH:/e/ffmpegcode/extent-lib/lib"

可以实现FFMPEG在WINDOW上编译运行,在运行的过程中会有CC_IDENT错误,原因是CC_IDENT采用了英文输入,更改config.h 文件的CC_IDENT如下。

#define CC_IDENT "Use x64 Microsoft (R) C/C++ compiler 19.16.27024.1 version"

经过测试如下命令完全通过

ffmpeg -i ConfessionDreamer.mp3 -ab 32k -ar 16k -ac 2 -acodec aac -y dreamer.aac
ffmpeg -s 352x288 -pix_fmt yuv420p -i test_352x288.yuv -vcodec libh264 test.h264
ffmpeg -r 1 -s 352x288 -i test_352x288.yuv -vcodec copy -vframes 30 output_352x288.yuv
ffmpeg -y -s 352x288 -framerate 30 -r 30 -t 10 -i test_352x288.yuv -f rawvideo -pix_fmt yuv420p test_352x288.raw
ffmpeg -f rawvideo -pix_fmt yuv420p -s 352x288 -i test_352x288.raw test_352x288.mp4
ffmpeg -pix_fmt yuv420p -s 352x288 -i test_352x288.yuv test_352x288.mp4
ffmpeg -i test_352x288.mp4 output_352x288.yuv
ffmpeg -i ConfessionDreamer.mp3 -f s16be -ar 16000 -ac 1 -acodec pcm_s16be dreamer.pcm

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FFmpeg是一个开源的跨平台的音视频处理工具。它也提供了音频编码的功能。通过FFmpeg,你可以将原始的音频数据进行编码,得到压缩后的音频文件。 音频编码的过程通常包括以下几个步骤: 1. 配置编码器的参数:需要指定输入音频的采样率、声道数、编码格式等参数,同时也需要设定输出音频的参数,例如码率、采样格式等。 2. 查找并打开编码器:首先要找到所需的编码器,例如在这个例子中,我们要编码为MP3格式,需要查找并选择MP3编码器。然后,使用avcodec_open2()函数打开编码器。 3. 准备音频数据并进行编码:从文件中读取音频数据,将数据转换为编码器所需要的格式。然后,使用avcodec_send_frame()函数将音频数据发送给编码器进行编码编码后的数据存储在AVPacket结构中。通过avcodec_receive_packet()函数从编码器中接收编码后的数据,并将数据写入到输出文件中。 以上是简化的音频编码流程,具体的实现还涉及到数据的处理、内存的分配和释放等细节。在实际应用中,可以根据具体的需求对FFmpeg进行配置和使用。 请注意,上述引用内容是对FFmpeg音频编码的一个示例,实际的使用可能会有所不同,具体的参数设置和函数调用可能需要根据具体情况进行调整和修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值