分享

FFMPEG用法用例

 托尼虎 2018-12-19

将 aif 文件转换为 16 位有符号数,小端存储模式,8000 Hz 采样率:

ffmpeg -i test.aif -f s16le -ar 8000 test.pcm


将 44.1KHz 双声道 16 位有符号数小端存储的 PCM 数据编码为 AAC:

ffmpeg -f s16le -ar 44100 -ac 2 -i test.pcm -acodec aac -strict experimental test.aac 


将 4:2:0 的 YUV 文件编码为 H.264 ES 流(必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):

ffmpeg -pix_fmt yuv420p -s 176x144 -i test.yuv -f h264 test.264

ffmpeg -pix_fmt yuv420p -s 176x144 -i test.yuv test.h264


将 H.264 ES 流解码为 YUV 文件(必须启用 ffmpeg 的 rawvideo 组件,即配置 ffmpeg 时:--enable-encoder=rawvideo):

ffmpeg -i test.264 test.yuv


将 4:2:0 QCIF 大小的 YUV 文件转换为 4:2:2 CIF 大小的 YUV 文件:

ffmpeg -pix_fmt yuv420p -s 176x144 -i foreman_qcif.yuv -pix_fmt yuv422p -s 352x288 test.yuv


将一幅 4:2:0 QCIF 大小的 YUV 图像转换为 CIF 大小的 BMP 文件:

ffmpeg -pix_fmt yuv420p -s 176x144 -i foreman_qcif.yuv -pix_fmt rgb24 -s 352x288 test.bmp


将 y4m 格式的图像序列转换为 4:2:0 的 YUV 图像序列:

ffmpeg -f yuv4mpegpipe -i test.y4m -pix_fmt yuv420p test.yuv


将视频文件转码:视频编码为H.264 ,码率为10M,视频量化区间为[10,30],分辨率为960x540,画面旋转90度。音频编码不变(必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):

ffmpeg -i src.mov -vcodec libx264 -s 960x540 -b 1024000 -qmin 10 -qmax 30 -vf transpose=1 dst.mov


将 AVI 文件转换为 H.264 视频 + AC3 音频的 MP4 文件,码率为 4M,视频量化区间为[10,45](必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):

ffmpeg -i test.avi -vcodec libx264 -b 4096000 -qmin 10 -qmax 45 -acodec ac3 test.mp4


将 YUV 和 PCM 文件经过编码后输出成为 MPEG PS 文件:

ffmpeg -pix_fmt yuv420p -s 720x576 -r 25 -b 8000000 -i test.yuv -f s16le -ac 2 -ar 48000 -ab 384000 -i test.pcm -f vob test.vob


Linux 下采集视频并编码为 H.263 ES 流:

ffmpeg -f video4linux2 -s 352*288 -r 25 -t 30 -i /dev/video0 -vcodec h263 -f h263 test.263


录音(mp3或amr):
ffmpeg -f oss -i /dev/dsp wheer.mp3
ffmpeg -f oss -i /dev/dsp -ar 8000 -ab 10200 wheer.amr
当然你还可以设一堆参数,如调节音量-vol 1024(256是默认值), 设定采样率-ar 8000,设定比特率-ab 122000等等。。。至于你想在麦克和声卡之间切换当然就可以求助于aumix了
另外,在~/.bashrc中定义alias amrec='ffmpeg -f oss -vol 1024 -i /dev/dsp -ar 8000 -ab 10200',以后就用amrec file.amr录音了,压缩率极高,一小时音频才5M多:)

 

屏幕录像:
ffmpeg -f x11grab -s xga -r 60 -i :0.0+0+0 wheer.avi
其中-f指定x11grab表示屏幕录像(*编译时必须加上--enable-x11grab选项*),-s设定尺寸,写成缩写或1024x768格式均 可,-r设定fps,-i中的:0.0表示你的x11屏幕,+0,0表示偏移,如果你想录制某个小窗口,可以用xwininfo -frame来找到具体坐标。
另外还有一堆参数可设,如比特率-b 200000,-vcodec为视频编码,还可加上-f oss -i /dev/dsp同时录音,用aumix将录音源调成麦克风就可以配音了,声音太小了用-vol改~~


视频剪切:
ffmpeg -ss 01:02:30 -t 00:10:00 -i test.mov -vcodec copy -acodec copy out.mov
将视频文件 test.mov 从第1小时2分30秒开始截取10分钟时长,即截取 test.mov 中第1小时2分30秒到第1小时12分30秒之间的内容。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多