假设我有一个基本上来自捕获卡的字节 FIFO。基本上,这不是磁盘上的文件。
这个fifo中的数据是一个多节目MPEG-TS。共有三个节目,每个节目都包含一个视频流和一个或多个音频流。
当我通过管道在 fifo 中运行 FFmpeg 时,它会显示其中的程序和流。但是,有时节目 1 包含流 0:1 和 0:3,有时它可能包含 0:4 和 0:2。尽管 PID 始终保持不变,但 FFmpeg 倾向于给它们一个随机编号。
我的问题:有没有办法选择合适的流 - 我可以通过 PID 选择 - 使用 FFmpeg?(我正在使用 CLI,顺便说一句)
请记住,在地图中的FFmpeg选项将不工作,因为流号码“随机”我每次运行ffmpeg的命令时。
假设您正在使用来自 /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-1和http://ffmpeg.org/ffmpeg.html#Advanced-options