ffmpeg视频处理工具(视频剪切、转码、合并......)
这里只列举了一下我个人常用的功能,由于ffmpeg工具太强大,这里不一一列举:
1、ffmpeg的下载和安装
2、ffmpeg常用处理功能
1、视频分离成图片序列:video—to—images(即视频帧)
2、图片序列合成视频:images—to—video
3、视频分离成无声视频和音频:video—to—video&audio
4、视频剪切:cut 参考
用 -ss 和 -t 选项, 从第 30 秒开始,向后截取 10 秒的视频,并保存:
ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 output.wmv
ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv
达成相同效果,也可以用 -ss 和 -to 选项, 从第 30 秒截取到第 40 秒:
ffmpeg -i input.wmv -ss 30 -c copy -to 40 output.wmv
值得注意的是,ffmpeg 为了加速,会使用关键帧技术, 所以有时剪切出来的结果在起止时间上未必准确。 通常来说,把 -ss 选项放在 -i 之前,会使用关键帧技术; 把 -ss 选项放在 -i 之后,则不使用关键帧技术。 如果要使用关键帧技术又要保留时间戳,可以加上 -copyts 选项:
ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy -copyts cut.mp4
5、视频格式转换:format transfer
- mkv—to—mp4:mkv格式视频转换成mp4格式(参考)
ffmpeg -i input.mkv -y -vcodec copy -acodec copy output.mp4
批量转换:
for %%i in (*.mkv) do ffmpeg.exe -i “%%i” -vcodec copy -acodec copy “%%~ni.mp4”
- flv—to—mp4:mkv格式视频转换成mp4格式(参考)
ffmpeg -i input.flv -vcodec h264 -r 25 -b 200 -ab 128 -acodec mp3 -ac 2 -ar 44100 output.mp3
- 其他一些格式转换:
3gp to avi
ffmpeg -i source.3gp -f avi -vcodec xvid -acodec mp3 -ar
22050 destination.avi
flv to 3gp
ffmpeg -i source.flv -s 176×144 -vcodec h263 -r 25 -b 200
-ab 64 -acodec mp3 -ac 1 -ar 8000 destination.3gp
flv to mp4
ffmpeg -i source.flv -vcodec h264 -r 25 -b 200 -ab 128
-acodec mp3 -ac 2 -ar 44100 destination.mp3
avi to mp4
ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab
64k -s 320×240 destination.mp4
mp4 to 3gp
ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200
-ab 12200 -ac 1 -ar 8000 destination.3gp
avi to 3gp
ffmpeg -i source.avi-s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -r 25 -ab 32 -y destination.3gp
mpg to 3gp
ffmpeg -i source.mpg -s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -ab 32 -y destination.3gp
ffmpeg常用参数说明:
-i :指定要转换视频的源文件
-s : 视频转换后视频的分辨率
-v
codec :视频
转换时使用的编解码器(video
)
-r : 视频转换换的桢率(默认25桢每秒)
-b : 视频转换换的bit率
-ab : 音频转换后的bit率(默认64k)
-a
codec : 制度音频使用的编码器(audio
)
-ac :制定转换后音频的声道
-ar :音频转换后的采样率
5、调整视频播放速度 (其他倍速调整相应的倍率即可)参考
- 加速四倍:
ffmpeg -i TheOrigin.mp4 -vf “setpts=0.25*PTS” UpTheOrigin.mp4
- 四倍慢速:
ffmpeg -i TheOrigin.mp4 -vf “setpts=4*PTS” DownTheOrigin.mp4
注:
PTS(Presentation Time Stamp) :显示时间戳,更多解释,详见—>这里
6、视频文件合并
- 两个视频文件合并
$ cat mylist.txt
file ‘/path/to/file1’
file ‘/path/to/file2’
file ‘/path/to/file3’
$ ffmpeg -f concat -i mylist.txt -c copy output
- 多个视频文件合并,更多时候,由于输入文件的多样性,需要转成中间格式再合成:
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi