在 Gstreamer 1.0 中流式传输 .264 文件

在 Gstreamer 1.0 中流式传输 .264 文件

我正在尝试传输 .264 文件。

虽然没有 udp 流的直接管道可以正常播放视频,但是当使用 udp 接收器和 src 时,只能看到一帧视频。

直接管道

gst-launch-1.0 filesrc 位置=football35228830.264!h264parse!rtph264pay pt=96!rtph264depay!avdec_h264!autovideosink

这可以很好地播放视频。

现在,当运行这些时,会出现冻结的视频帧。

在 Tx

gst-launch-1.0 -v filesrc 位置 = football35228830.264 !h264parse !rtph264pay pt=96 !udpsink 主机=127.0.0.1 端口=9001

在客户端

gst-launch-1.0 udpsrc 端口=42050!应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(整数)90000,编码名称=H264,有效负载=96!rtph264depay!h264parse!avdec_h264!autovideosink

管道是否存在问题?或者是否需要任何附加元素?

答案1

:可能有以下几种情况:文件加载和播放速度太快 => 使用 multifilesrc。我还为发送方添加了大写字母。最后,在您的示例中,端口不同。

发件人:

gst-launch-1.0 -v multifilesrc location=public/media/video.h264 loop=true ! \
video/x-h264,width=1920,height=1080,framerate=30/1,profile=constrained-baseline ! h264parse ! rtph264pay pt=10 ! udpsink host=127.0.0.1 port=9001

接收者:

gst-launch-1.0 udpsrc port=9001 ! 'application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=H264,payload=16' ! \
rtph264depay ! h264parse ! avdec_h264 ! autovideosink

相关内容