FFMPEG - 如何解复用 LIVE 多节目传输流?

Mac*_*att 3 ffmpeg

假设我有一个基本上来自捕获卡的字节 FIFO。基本上,这不是磁盘上的文件。

这个fifo中的数据是一个多节目MPEG-TS。共有三个节目,每个节目都包含一个视频流和一个或多个音频流。

当我通过管道在 fifo 中运行 FFmpeg 时,它会显示其中的程序和流。但是,有时节目 1 包含流 0:1 和 0:3,有时它可能包含 0:4 和 0:2。尽管 PID 始终保持不变,但 FFmpeg 倾向于给它们一个随机编号。

我的问题:有没有办法选择合适的流 - 我可以通过 PID 选择 - 使用 FFmpeg?(我正在使用 CLI,顺便说一句)

请记住,在地图中的FFmpeg选项将工作,因为流号码“随机”我每次运行ffmpeg的命令时。

Jus*_*ser 5

假设您正在使用来自 /dev/video0 的 v4l2 进行捕获,那么您可以使用程序 id 进行映射,如下所示:

ffmpeg -i /dev/video0 -acodec copy -vcodec copy -map 0:p:keep_pid -map -0:p:first_remove_pid -map -0:p:second_remove_pid output.m2ts
Run Code Online (Sandbox Code Playgroud)

结帐:http : //ffmpeg.org/ffmpeg.html#Stream-specifiers-1http://ffmpeg.org/ffmpeg.html#Advanced-options

  • @Mr.Hyde 特别是每个 ffmpeg 问题的评论部分不应被视为您自己的个人支持小组。评论旨在澄清答案本身或澄清问题中的一点,您不应该在对旧答案的评论中提出新问题。您应该改为使用 [Ask Question](http://superuser.com/questions/ask) 按钮。 (2认同)