ffmpeg视频处理工具(视频剪切、转码、合并......)
- 1、ffmpeg的下载和安装
- 2、ffmpeg常用处理功能
- 1、视频分离成图片序列:video—to—images(即视频帧)
- 2、图片序列合成视频:images—to—video
- 3、视频分离成无声视频和音频:video—to—video&audio
- 4、视频剪切:cut [参考](https://fzheng.me/2016/01/08/ffmpeg/)
- 5、视频格式转换:format transfer
- 5、调整视频播放速度 (其他倍速调整相应的倍率即可)[参考](https://fzheng.me/2016/01/08/ffmpeg/)
- 6、视频文件合并
这里只列举了一下我个人常用的功能,由于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”
2. 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.aviflv to 3gp ffmpeg -i source.flv -s 176×144 -vcodec h263 -r 25 -b 200
-ab 64 -acodec mp3 -ac 1 -ar 8000 destination.3gpflv to mp4 ffmpeg -i source.flv -vcodec h264 -r 25 -b 200 -ab 128
-acodec mp3 -ac 2 -ar 44100 destination.mp3avi to mp4 ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab
64k -s 320×240 destination.mp4mp4 to 3gp ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200
-ab 12200 -ac 1 -ar 8000 destination.3gpavi to 3gp ffmpeg -i source.avi-s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -r 25 -ab 32 -y destination.3gpmpg to 3gp ffmpeg -i source.mpg -s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -ab 32 -y destination.3gp
ffmpeg常用参数说明:
-i :指定要转换视频的源文件
-s : 视频转换后视频的分辨率
-vcodec :视频转换时使用的编解码器(video)
-r : 视频转换换的桢率(默认25桢每秒)
-b : 视频转换换的bit率
-ab : 音频转换后的bit率(默认64k)
-acodec : 制度音频使用的编码器(audio)
-ac :制定转换后音频的声道
-ar :音频转换后的采样率5、调整视频播放速度 (其他倍速调整相应的倍率即可)参考
1. 加速四倍:
ffmpeg -i TheOrigin.mp4 -vf “setpts=0.25*PTS” UpTheOrigin.mp4
2. 四倍慢速:
ffmpeg -i TheOrigin.mp4 -vf “setpts=4*PTS” DownTheOrigin.mp4
注:
PTS(Presentation Time Stamp) :显示时间戳,更多解释,详见—>这里
6、视频文件合并
1. 两个视频文件合并
$ cat mylist.txt
file ‘/path/to/file1’
file ‘/path/to/file2’
file ‘/path/to/file3’
$ ffmpeg -f concat -i mylist.txt -c copy output2. 多个视频文件合并,更多时候,由于输入文件的多样性,需要转成中间格式再合成:
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