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 个文件连接到一个新文件中?谢谢!
filenames="`ls -rt1 $input | tr '\n' '|' | sed '$ s/.$//'`"
ffmpeg -i "concat:$filenames" -c copy out.ts,
其中$input是文件名或转义的正则表达式(例如,\*.ts)。
将所有 .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)
这是怎样的伎俩:
for i in `seq 1 400`; do cat "video$i.ts" >> newvideo.ts; done
Run Code Online (Sandbox Code Playgroud)
但现在音频不同步约 0.5 秒,并且每隔几秒就有约 0.5 秒的沉默(大概是当片段粘合在一起时)。