播放ts
可以使用VLC
,若使用浏览器播放,可以参考我的回答
对于文件名有序的 ts
文件如 xxxxx_1.ts
, xxxxx_2.ts
,… 就很容易处理。使用如下指令就可以
cat *.ts | ffmpeg -i pipe: -c:a copy -c:v copy out.mp4
也可以参考我对这个 Use ffmpeg copy codec to combine *.ts files into a single mp4 问题的回答。
对于无序的 ts
仅需要借助 m3u8
文件的帮助,m3u8
可以看作是 ts
的索引文件,内容大概如下,
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:4.166667,
3be3431f5df000000.ts
#EXTINF:7.250000,
3be3431f5df000001.ts
#EXTINF:4.166667,
3be3431f5df000002.ts
我们可以看到里面的有索引顺序(也就是播放顺序)的 ts
文件名(虽然这里的名字本来就带有顺序), 这就明晰了。
按索引顺序读取 ts
文件即可,
grep .*.ts index.m3u8 | xargs cat | ffmpeg -i pipe: -c:a copy -c:v copy output.mp4