我创建了一个 UDP 流,其中包含-f mpegts
一些选项,例如-mpegts_transport_stream_id
.
我收到带有“ StreamXpert - 实时流分析器”的流,显示所有选项都在输出中。最后查看我的 ffmpeg 参数和 StreamXpert。
相同的Muxer选项似乎被-f rtp_mpegts
.
我试图使用-f mpegts
和管道它-f rtp_mpegts
喜欢这样:
ffmpeg -i ... -f mpegts pipe: | ffmpeg pipe: -c copy -f rtp_mpegts "rtp://239.1.1.9:1234?pkt_size=1316"
选项仍然被忽略。
这张票“使用 RTP_MPEGTS 时对 MPEGTS muxer 的支持选项”也注意到了被忽略的选项。此外,在此评论中,“ thovo ”给出了分析并提出了解决方案。
显然问题仍然存在。有人找到解决方法吗?
我的附加问题:我没有质疑我的项目是否真的需要 rtp。也许我的同事不知道更好,并在 udp 也足够时请求 rtp。
目的是通过 IP 使用 DVB 与电视接收 RTP 流。这是一台成功的松下电视。
第 10 页的 SAT>IP 规范需要 rtp 进行媒体传输:
SAT>IP 协议使用:
- 用于寻址、发现和描述的 UPnP,
- 用于控制的 RTSP 或 HTTP,
- 用于媒体传输的RTP或 HTTP。
udp 不在等式吗?
ffmpeg:(所有选项都在输出中-f mpegts
)
(十六进制到十进制:0x005A
= 90
, 0x005B
= 91
0x005C
= 92
, 0x005D
= 93
, 0x005E
= 94
)
ffmpeg -f lavfi -i testsrc \
-r 25 \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main -level 3.1 \
-preset veryfast \
-vf scale=1280:720,setdar=dar=16/9 \
-an \
-bsf:v h264_mp4toannexb \
-flush_packets 0 \
-b:v 4M \
-muxrate 8M \
-pcr_period 20 \
-pat_period 0.10 \
-sdt_period 0.25 \
-metadata:s:a:0 language=nya \
-mpegts_flags +pat_pmt_at_frames \
-mpegts_transport_stream_id 0x005A \
-mpegts_original_network_id 0x005B \
-mpegts_service_id 0x005C \
-mpegts_pmt_start_pid 0x005D \
-mpegts_start_pid 0x005E \
-mpegts_service_type advanced_codec_digital_hdtv \
-metadata service_provider='WI' \
-metadata service_name='W' \
-mpegts_flags system_b -flush_packets 0 \
-f mpegts "udp://239.1.1.10:1234?pkt_size=1316"
StreamXpert输出:
-mpegts_transport_stream_id
= Transport Stream ID
(黄色文本突出显示)
-mpegts_original_network_id
= Original Network ID
, onw
(绿色文本突出显示)
-mpegts_service_id
= Program
, service
(粉红色文本突出显示)
-mpegts_pmt_start_pid
= PMT PID
, Table PID
(绿松石文本突出显示)
-mpegts_start_pid
= PID
, PCR PID
(红色文本突出显示)
-mpegts_service_type
= service type
(蓝色文字)
service_name
= Service name
(橙色文字)
service_provider
= Service provider
(粉红色文字)