gpt4 book ai didi

video-streaming - 通过 RTP 将 H.264 视频从 Live555 流式传输到 VLC

转载 作者:行者123 更新时间:2023-12-04 11:44:52 26 4
gpt4 key购买 nike

如果您能帮助我解决我数周以来一直试图解决的 H264 流媒体问题,我将不胜感激。

我需要将 H264 视频从 Live555(在 Linux 机器上)传输到 VLC 媒体播放器(在 Windows 机器上)。 使用 RTSP 时效果很好,但我需要在没有 RTSP 的情况下使用 RTP,而使用 RTP 我看不到视频。 VLC 甚至无法识别流是 H264。

这是通过 RTSP 传输的 SDP 文件(有效的配置):

v=0
o=- 1277647151953158 1 IN IP4 190.40.14.100
s=Session streamed by "testH264VideoAudioStreamer"
i=test-h264-mux.mpg
t=0 0
a=tool:LIVE555 Streaming Media v2007.05.24
a=type:broadcast
a=control:*
a=source-filter: incl IN IP4 * 190.40.14.100
a=rtcp-unicast: reflection
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "testH264VideoAudioStreamer"
a=x-qt-test-inf:test-h264=mux.mpg
m=video 8554 RTP/AVP 96
c=IN IP4 190.40.15.63/7
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=H264
a=control:track1

但是如果我从 RTSP 切换到 RTP,它就不起作用了。我试过在 VLC 播放器中加载上述 SDP 文件,但没有帮助。

以下是 VLC Player 0.8.6d 的一些调试输出:
main input debug: thread 4016 (input) created at priority 1 (input/input.c:265)
main input debug: `rtp://@190.40.15.63:8554' gives access `rtp demux' `' path `@190.40.15.63:8554'
main input debug: creating demux: access='rtp' demux='' path='@190.40.15.63:8554'
main demuxer debug: looking for access_demux module: 0 candidates
main demuxer warning: no access_demux module matched "rtp"
main input debug: creating access 'rtp' path='@190.40.15.63:8554'
main access debug: looking for access2 module: 6 candidates
access_udp access debug: opening server=:0 local=190.40.15.63:8554
main access debug: net: connecting to '[]:0@[190.40.15.63]:8554
main access debug: looking for netrowk module: 1 candidate
ipv6 access debug: 190.40.15.63: Host or service not found
main access debug: using network module "ipv6"
main access debug: removing network module "ipv6"
main access debug: looking for netrowk module: 1 candidate
ipv4 access debug: resolving 190.40.15.63:8554...
ipv4 access debug: resolving :0...
main access debug: using network module "ipv4"
main access debug: removing network module "ipv4"
main access debug: using access2 module "access_udp"
main private debug: pre buffering
access_udp access debug: no RTP header detected
main input debug: creating demux: access='rtp' demux='' path='@190.40.15.63:8554'
main demuxer debug: looking for demux2 module: 45 candidates
ts demuxer warning: TS module discarded (lost sync)
ffmpeg demuxer debug: detected format: mp3

(可能有错别字,因为我必须手动复制它 - 不要问:))

在 VLC 1.0.5 中,我得到一个 未知负载类型 错误,并且由于 根本无法加载 SDP未知的网络堆栈错误 .显示的其他错误是 不支持 SDP 连接信息 Sap 分路器警告:SDP 无效 .

任何帮助将不胜感激!

谢谢,

伊利亚

最佳答案

我必须做的是使用 SDP 文件而不是直接打开流。原来只有在使用 RTSP 时才传输 SDP 数据。在流式传输 RTP 时,我必须自己提供 SDP 文件。

所以我所做的是:

  • 使用 RTSP 流式传输(有效的方法),
  • 使用Wireshark记录RTSP传输的SDP文件,
  • 将 SDP 保存为扩展名为 .sdp 的文本文件,
  • 在 VLC 中,打开 SDP 文件而不是直接打开网络流。

  • 它变魔术了!

    关于video-streaming - 通过 RTP 将 H.264 视频从 Live555 流式传输到 VLC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130796/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com