【问题标题】:VLC RTSP compatibility with GStreamerVLC RTSP 与 GStreamer 的兼容性
【发布时间】:2012-05-10 17:36:17
【问题描述】:

我正在做一个流媒体项目。

我将 VLC 作为服务器运行,将 mp4 (h264/aac) RTSP 流传输到 Flumotion 服务器(基于 Gstreamer)。

我认为这要么是 VLC(基于 Live555)和 Flumotion(基于 GStreamer)之间的兼容性问题,要么是用于接收 RTSP 流的管道写错了。

这是flumotion使用的管道,需要修复(rtsp.py第44-49行):

return ("rtspsrc name=src location=%s ! decodebin name=d ! queue "
        " ! %s ffmpegcolorspace ! video/x-raw-yuv "
        " ! videorate ! video/x-raw-yuv,framerate=%d/%d ! "
        " @feeder:video@ %s ! @feeder:audio@"
        % (location, scaling_template, framerate[0],
           framerate[1], audio_template))

编辑: 问题是 Flumotion 中的 RTSP-Producer 组件无法从 VLC 流中接收任何数据。没有错误,什么都没有,它只是保持“唤醒”状态。

我尝试了 Flumotion 使用的 GStreamer 管道的一些变体,但无法使其正常工作。

我在 StackOverflow 中发现了许多类似的未解决问题,这让我认为这是一个兼容性问题

我不是 gst-pipeliner !所以请帮助我摆脱这场斗争。

【问题讨论】:

  • 你的问题是什么?您收到什么错误消息?
  • 你能用 gstreamer 播放流吗:gst-launch playbin2 uri=...?
  • 是的,我可以!即使这个命令似乎接收到数据(日志中没有错误)但它没有播放它:gst-launch -v rtspsrc name=src location=rtsp://127.0.0.1:8554/live!解码箱名称=d !队列 ! ffmpeg色彩空间!视频/x-raw-yuv !视频速率!视频/x-raw-yuv,帧率=5/1!自动视频接收器

标签: stream gstreamer rtsp vlc pipeline


【解决方案1】:

现在好了, 因为这个命令(通常)有效:

gst-launch playbin uri="rtsp://127.0.0.1:8554/live"

我决定不存在兼容性问题! 并且通过使用 'rtspdecodebin' 而不是 'rtspsrc' 和 'decodebin' 解决了问题

所以最后我在 rtsp.py:: 中修改了它

return ("uridecodebin name=d uri=%s ! queue "
        " ! %s ffmpegcolorspace ! video/x-raw-yuv "
        " ! videorate ! video/x-raw-yuv,framerate=%d/%d ! "
        " @feeder:video@ %s ! @feeder:audio@"
        % (location, scaling_template, framerate[0],
           framerate[1], audio_template))

现在可以了! (大多数时候)这可能与流或 QoS 相关......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2011-12-11
    • 2011-07-22
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多