将数百个 ts 文件合并/加入/连接成一个 ts 文件

use*_*222 6 video merge ubuntu

使用 curl 下载视频流,我最终得到了大约 400 个 *.ts 文件,每个文件大小约为 1MB。它们按顺序编号为 video1.ts、video2.ts、...video400.ts。我现在需要将它们连接成一个文件,显然是按照正确的顺序(所以 video10.ts 后面应该是 video11.ts 而不是 video110.ts)。

我试图想出诸如“for i in *.ts; do ....”之类的东西,但我就是想不通。另外 ffmepg 和 avconv 对我来说太复杂了。

谁知道如何以正确的顺序将这 400 个文件连接到一个新文件中?谢谢!

Ger*_*mia 5

filenames="`ls -rt1 $input | tr '\n' '|' | sed '$ s/.$//'`"

ffmpeg -i "concat:$filenames" -c copy out.ts,

其中$input是文件名或转义的正则表达式(例如,\*.ts)。


Uma*_*ooq 5

将所有 .ts 连接到一个 .ts 文件的最短方法:在 linux 上

cat *.ts > all.ts
Run Code Online (Sandbox Code Playgroud)

将所有 .ts 连接成一个 .ts 文件的最短方法:在 Windows 上(使用 cmd)

copy /b *.ts all.ts
Run Code Online (Sandbox Code Playgroud)


use*_*222 1

这是怎样的伎俩:

for i in `seq 1 400`; do cat "video$i.ts" >> newvideo.ts; done
Run Code Online (Sandbox Code Playgroud)

但现在音频不同步约 0.5 秒,并且每隔几秒就有约 0.5 秒的沉默(大概是当片段粘合在一起时)。