FFMPEG RTP MpegTS Muxrate

时间:2017-11-03 19:51:42

标签: ffmpeg

我需要一个应用程序,它接受输入rtp MpegTS流并重新复用它,重新映射PID然后将其作为RTP MpegTS多播发送出去。我理解当前形式的FFMPEG不能这样做,因为rtp_mpegts没有从命令行中获取选项。

我已经开始查看FFMPEG源代码,以找到将其添加到具有这些选项的方法。我对FFMPEG使用AVFormatContext传递信息的方式感到有些困惑。我在rtp_mepgts中添加了一个新的priv_class,它指向一个带有选项的类(与mpegtsenc.c类相同),以便实际将选项添加到该上下文中。但是,当尝试在某处重新分配时,它现在失败了。

在走得太远之前 - 这是正确的方法吗?这是如何正确地向FFMPEG添加选项,还是我应该看到另一种方式?

1 个答案:

答案 0 :(得分:1)

  1. 可以在ffmpeg中完成PID的重新映射 fmpeg -i input -c copy -f mpegts \
     -mpegts_original_network_id 0x1122 \
     -mpegts_transport_stream_id 0x3344 \
     -mpegts_service_id 0x5566 \
     -mpegts_service_type 0x1 \
     -mpegts_pmt_start_pid 0x1500 \
     -mpegts_start_pid 0x150 \
     -metadata service_provider =“某些提供商”\\  -metadata service_name =“Some Channel”\\  -tables_version 5 \
     sample.ts
  2. 可以使用[muxrate]参数
  3. 通过ffmpeg完成重新整理
  4. 可以使用multicat工具将RTP更改为UDP和RTP https://www.videolan.org/projects/multicat.html