ffmpeg常用命令
视频剪辑:
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi
-ss
代表开始时间 -t
持续时间
音频剪辑:
ffmpeg -i source_mp3.mp3 -ss 00:01:12 -t 00:01:42 -acodec copy output_mp3.mp3
视频合并:
先将视频变成ts流
ffmpeg -i 1.mp4 -codec copy -acodec copy -vbsf h264_mp4toannexb1.ts
然后将ts流合并成一个ts流
copy/b "1.ts"+"2.ts" /y "combine.ts"
最后将ts流变成MP4等视频
分离视频流:
ffmpeg -i input_file -vcodec copy -an output_file_video
将视频拿出来,不包含音频
分离音频流:
ffmpeg -i input_file -acodec copy -vn output_file_audio
将音频拿出来,不包含视频
改变视频速率
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
0.5代表变为原来2倍速度,播放一段视频需要的时间为原来0.5倍。所以当这个值>1时就是减慢视频播放速度。
改变视频中音频sulv
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
为原来2倍,这个值在0.5到2之间,可以使用"atempo=2.0,atempo=2.0"
这种串联的形式增加播放速率到4倍
视频转换格式
ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts
其中-vcodec copy
代表使用原先的视频选项,-vacodec copy
代表使用原先的音频选项,-f代表要想转换成什么格式,
常见的有:mpegts(ts流),mp4,h264等等
获取缩略图
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
-t
是时间,也可以加-ss
表示从哪里开始算-t
的时间。
常见参数
-s
视频分辨率
-r
视频帧率
-b
设置视频比特率
-ar
设置音频采样率
-y
覆盖原有文件
mp4box
MP4的视频和m4a音频混合,ffmpeg有:
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
但是网上说效果不如使用mp4box好,
对于MP4的音频合视频合并,使用mp4box效果更好。命令:
mp4box -add input.mp4 -add input.m4a output.mp4
mp4合并
mp4box -cat test1.mp4 -cat test2.mp4 -new test.mp4
mp4box提供了ui:YAMB