【问题标题】:Streaming live H264 video via RTP/UDP通过 RTP/UDP 流式传输实时 H264 视频
【发布时间】:2012-08-22 05:40:14
【问题描述】:

我想做实时视频流和编码。我正在使用Leopardboard DM365。我可以捕获实时视频并将其编码为 H264,然后使用 gstreamer 插件进行流式传输,但是如何在 Windows 上捕获 rtp 数据包?我可以使用 sdp 文件在 vlc 上捕获,但我不想只使用 VLC 查看。我需要捕获缓冲区,然后将其传递给我的应用程序。我怎样才能做到这一点? 我在服务器端使用以下 gstreamer 插件:

gst-launch -v -e v4l2src always-copy=FALSE input-src=composite 链-ipipe=真!视频/x-raw-yuv,格式=(fourcc)NV12,宽度=640, 高度=480!队列 ! dmaiaccel ! dmaienc_h264 encodingpreset=2 速率控制=2 帧内间隔=23 idrinterval=46 目标比特率=3000000! rtph264pay! udpsink 端口=3000 host=192.168.1.102 sync=false enable-last-buffer=false

谢谢你, 马兹

【问题讨论】:

    标签: streaming video-streaming gstreamer live-streaming


    【解决方案1】:

    在您的应用程序中,如果您知道要接收的确切参数,为什么需要 sdp 文件?

    需要 sdp 文件来获取流参数。 rtsp 协议允许交换 sdp,因为接收方不知道发送方将发送什么。

    如果您的应用程序知道发送方将发送什么内容,您只需捕获数据并开始解码即可。许多人希望将 rtph264pay 配置为 config-interval=1 以每 1 秒发送一次 SPS PPS,以便您的应用程序可以解码传入的内容。随意更改 config-interval 的持续时间以匹配您的帧内帧。

    【讨论】:

    • 您好,感谢您的回复。你说我只需要捕获数据并开始解码。这正是我想知道的。如何捕获传入的数据,解码并将其转发给另一个应用程序(接收机器是基于 Windows 的 pc)?谢谢。
    • @user1481832,您需要在 udp 套接字中捕获数据包。如果您不介意单独的命令行程序执行此操作,请使用 ffmpeg。它应该接受一个 rtp url rtp://:port_no 并解码并将输出写入您的程序可以获取的管道。
    猜你喜欢
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2013-06-23
    • 2013-07-26
    • 2022-08-09
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多