查到了一些类似
for %a in ("*.mp4") do ffmpeg -i "%a"-threads 2 -vcodec libx264 -preset slow -crf 20 -y "newfiles%~na.mp4"
的命令但是没有成功 会报错
image.png
一般合并ts生成mp4可以使用这个命令
ffmpeg -i "concat:file001.tsfile002.ts|file003.ts|file004.ts" -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4
但是如果是很多的ts文件,拼接命令文本就非常麻烦
于是找到了这种方法
现在终端执行下面的命令,然后终端会把路径下的ts文件名拼接好,把命令文本输出出来
ls * | perl -nale 'chomp;push @[a](https://www.v2ex.com/member/a), $_;END{printf "ffmpeg -i \"concat:%s\" -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4\n", join("|",@a)}'
image.png
然后复制粘贴执行
如果实在太长,有两三百个以上的ts文件,可以分开合并,200个一组,合成多个mp4
然后需要把MP4转换为无损ts,再继续合并ts文件
//MP4转换ts
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts