使用ffmpeg从mpegts文件中提取特定流的字节

时间:2015-06-08 08:28:00

标签: video ffmpeg stream metadata mpeg2-ts

我有一个带有单个程序的mpeg-ts文件。该程序由一些流组成 - 一个视频流和一些元数据流。

我想将特定的流提取到单独的文件中。然而,使用ffmpeg不知道的编解码器对元数据进行编码。我真的不关心这个 - 我只想将数据提取为字节,而不是mpeg-ts容器头。我尝试使用编解码器" copy"但没有成功。

我尝试了以下内容:

    ffmpeg -i video.ts -map 0:1 -codec copy stream.txt

但是ffmpeg说:

    Unable to find a suitable output format for stream.txt

上述错误仅仅是因为ffmpeg不知道如何输出文本文件。所以我尝试输出" rawvideo"容器:

    ffmpeg -i video.ts -map 0:1 -codec copy -f rawvideo stream.txt

可是:

    Cannot map stream #0:1 - unsupported type

为了确保我能够提取未知编解码器的内容,我尝试了以下内容:

    ffmpeg -i video.ts -map 0:1 -codec copy stream.ts

但是又一次:

    Cannot map stream #0:1 - unsupported type

所以我的问题是:

  • 我可以提取未知编解码器流的字节流吗?怎么样?
  • 如何在没有任何容器的情况下输出字节流?我应该使用rawvideo吗?

2 个答案:

答案 0 :(得分:3)

使用

ffmpeg -i video.ts -map 0:1 -codec copy -f data stream.txt

答案 1 :(得分:0)

我不确定你能用ffmpeg做到这一点。 你可以用ffprobe获得一些信息,但更好的选择是tstools。

tsinfo yourfile.ts > metadata.txt