FFMPEG用法用例

将 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 ,码率为1M,视频量化区间为[10,20],分辨率裁剪为368x450(从第10列第5行开始)。音频编码不变(必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):

ffmpeg -i src.mp4 -vcodec libx264 -b 1024000 -qmin 10 -qmax 20 -acodec copy -vf crop=368:450:10:5 dst.mp4

 

将视频文件转码:视频编码为H.264 ,码率为1M,视频量化区间为[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秒之间的内容。

 

推流:
ffmpeg -re -i test.mp4 -vcodec copy -an -f rtp rtp://192.168.2.232:6005 -acodec copy -vn -f rtp rtp://192.168.2.232:7005
将视频文件 test.mp4推送到192.168.2.232(视频推送到6005端口,音频推送到7005端口)。

 

 

推流并生成SDP文件:
ffmpeg -re -i test.mp4 -vcodec copy -an -f rtp rtp://192.168.2.232:6005 -acodec copy -vn -f rtp rtp://192.168.2.232:7005  -sdp_file test.sdp

将视频文件 test.mp4推送到192.168.2.232(视频推送到6005端口,音频推送到7005端口),并生成SDP文件。

 

 

推流并生成SDP文件:
ffmpeg -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" -i test.sdp out.mp4

将SDP文件指定的网络流保存到MP4文件中。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值