FFmpeg 执行音视频格式转换、拼接和剪切处理非常好使,最近在项目中需要对音视频原文件进行处理,为了省事儿我直接在 code 里调用 shell 来执行相关命令。

但是这样搞往往会留坑,比如说当同名输出文件已存在于文件系统中时,terminal 控制台就会弹出交互请求是否覆盖已有文件,这对于程序来讲太不友好了,我需要一波默认覆盖的操作。

解决的问题办法就是在传参时添加 -y 参数,之后的问题就迎刃而解了。

# video concat 
ffmpeg -y -i "concat:8553.ts|7166.ts" -vcodec copy 55216.flv

# video cut
ffmpeg -y -i 4134.ts -ss 00:00:05.0 -t 00:00:20.0 -vcodec copy -async 1 slice.mp4

# extract the specific frame
ffmpeg -y -i 1.ts -f mjpeg -ss 3 -t 1  test1.jpg

# convert video to GIF
ffmpeg -y -i 1.ts -ss 4 -t 5 -r 5 -f gif -s 512x288 4.gif