ffmpeg合并当前文件夹的所有ts文件

要合并文件夹中所有的TS文件到一个MKV文件中,并确保文件名按升序排列,并统一分辨率为720*1280,请按照以下步骤进行操作:

  1. 确保已安装ffmpeg工具,它用于处理视频和音频。
  2. 打开终端,并进入包含TS文件的文件夹。
  3. 运行以下命令将所有TS文件合并为一个MKV文件:
ffmpeg -f concat -safe 0 -i <(for f in $(ls -1v *.ts); do echo "file '$PWD/$f'"; done) -c copy  output.mkv

-f concat -safe 0 -i参数指定了输入文件为一个文件列表,使用<()进程替换语法生成合并列表。-c copy参数表示直接复制输入流而无需重新编码。
运行完命令后,将生成一个名为output.mkv的合并后的MKV文件,其中包含了所有的TS文件,并确保了文件名按升序排列。

  1. 如果您想确保统一分辨率为720*1280,并且要将小于该分辨率的文件进行放大,请使用以下命令:
ffmpeg -f concat -safe 0 -i <(for f in $(ls -1v *.ts); do echo "file '$PWD/$f'"; done) -vf "scale=w=720:h=1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -crf 21 -preset veryfast -c:a copy output.mkv

这个命令使用ffmpeg工具来合并文件并处理分辨率。-vf参数指定了视频过滤器,其中scale=w=720:h=1280:force_original_aspect_ratio=decrease将会将小于720x1280的视频进行放大,pad=720:1280:(ow-iw)/2:(oh-ih)/2用于将放大后的视频进行居中填充,以保持720x1280的分辨率。-c:v libx264 -crf 21 -preset veryfast设置了视频编码器和参数。


注意文件名升序,请确保文件名的数字长度统一(1.ts 10.ts 这种是不行的)