行车记录仪视频ffmpeg合并转录存档,跳过重复的漏秒

手上有几个行车记录仪

特点是每5分钟切割成一个单独的文件,为了防止每两个视频之间漏秒,所以会额外重复写入1秒的内容

现在想把一段时间的视频合并成一个存档,并且要跳过那些额外的1秒,上 ffmpeg。

首先前摇,生成需要合并的视频文件路径列表

ls -fd1 /Volumes/SD_CARD/DCIM/xxxxx/*

的结果写成如下格式:

file 'input1.mov'
inpoint 10
outpoint 300
file 'input2.mov'
# comment
outpoint 300 
file 'input3.mov'
outpoint 300
... 
file 'inputN.mov'
outpoint 300

inpoint 10 就是从10秒开始算,outpoint 300 就是到300秒结束。保存上面的为 1.txt

然后念 ffmpeg 咒语

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -safe 0 -r 48 -f concat -i 1.txt -an -vf "select=concatdec_select,scale_cuda=w=1280:h=720:interp_algo=lanczos,setpts=0.125*PTS" -c:v h264_nvenc -preset:v p7 -profile:v high -tune:v hq -cq:v 19 -qmax 22 -b:v 0 -maxrate 8M -rc vbr out.mp4

逐个解释下:

还有一些坑点:

总的来说,ffmpeg 真是操作糟糕而功能强大的工具的典型。以上参数为东拼西凑撞大运偶得,如有不对敬请指正。

Comments