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

  1. 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
  1. 其他一些格式转换:
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