如何将原始 h264 树莓派流保存到 .h264 文件



我们如何将 h264 udp 流从树莓派保存到原始 .h264 文件?

尝试将raspivid直接保存到原始视频,它可以工作。但是在流式传输到计算机后,.h264在使用VLC播放时不会显示任何内容。

树莓派脚本:

raspivid -t 0 -w 800 -h 600 -fps 16 -g 5 -b 1000000 -vf -o - | gst-launch-1.0  --gst-debug=3 fdsrc ! h264parse ! rtph264pay ! udpsink host=<<IP>> port=5000

在接收方:

gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, clock-rate=90000, encoding-name=H264, payload=96 ! rtpjitterbuffer ! rtph264depay ! filesink location=test.h264

这能做到吗?

如果您获得原始 h264(avc 格式),则可能无法作为文件播放。您可以强制将其转换为可以直接保存到文件的字节流,也可以使用带有 avc 的容器。

gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, clock-rate=90000, encoding-name=H264, payload=96 ! rtpjitterbuffer ! rtph264depay ! h264parse ! "video/x-h264, format=byte-stream" ! filesink location=test.h264
gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, clock-rate=90000, encoding-name=H264, payload=96 ! rtpjitterbuffer ! rtph264depay ! h264parse ! mp4mux ! filesink location=test.mp4

您还可以在发送方上强制使用字节流格式:

raspivid -t 0 -w 800 -h 600 -fps 16 -g 5 -b 1000000 -vf -o - | gst-launch-1.0 --gst-debug=3 fdsrc ! h264parse ! "video/x-h264, format=byte-stream" ! rtph264pay ! udpsink host=<> port=5000

最新更新