合并一个文件夹内的所有视频
1
2
3
4
5
find *.mp4 | sed 's:\ :\\\ :g'| sed 's/^/file /' > fl.txt
ffmpeg -f concat -i fl.txt -c copy output.mp4
// 忽略错误信息
ffmpeg -safe 0 -f concat -i fl.txt -c copy output.mp4
rm fl.txt

参考资源

视频压缩
1
2
3
4
5
6
// 视频使用h.264编码,声音使用aac编码
ffmpeg -i input.mp4 -vcodec h264 -acodec aac output.mp4
// 视频使用h.265编码,压缩到更小文档
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
// 视频使用h.264编码,保留更好的质量
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4

crf越小,视频质量越高;crf越大,视频文件越小

编码参数也可以简写,从-vcodec-acodec改为-c:v-c:a

1
2
3
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 31 -b:v 0 output.mkv

参考资源

其中AVC/H264HEVC/H265都是软件编码,速度很慢。可以选择英伟达的硬件编码:hevc_nvenc与h264_nvenc,它们使用硬件加速,速度很快。

参考资源

使用英伟达显卡进行编码:

1
ffmpeg -i video.mp4 -c:v hevc_nvenc -crf 28 output.mp4

将视频从H.264转码到H.265,花了55分钟,视频体积从3.8GB减小到430MB,效果立竿见影。转码命令:ffmpeg -i 1.mp4 -c:v libx265 -vtag hvc1 -c:a copy 1_hevc.mp4

在win10可以用scoop安装ffmpeg,更新Windows上面通过scoop安装的所有程序
scoop list | foreach { scoop update $_.Name }

将视频以同样的编码,按照指定时间进行裁剪

1
ffmpeg -ss 00:05 -to 08:53.500 -i ./input.mp4 -c copy video.mp4

利用ffmpeg快速剪辑视频

1
ffmpeg -ss 07:18 -to 13:45 -i ./aaa.mkv -c copy bbb.mkv
  • -ss表示开始时间
  • -to表示结束时间
  • -i是输入文档
  • -c表示使用被剪辑视频一样的编码
  • bbb是输出文档的名称

合并视频和声音,视频使用原始编码,声音改为aac编码

1
ffmpeg -i 1.mp4 -i 1.opus -c:v copy -c:a aac output.mp4

将PNG格式图片转为JPG格式图片

1
ffmpeg -i image.png -preset ultrafast image.jpg