我们如何将来自raspberry pi的h264 udp流保存到原始.h264文件?
尝试将raspivid直接保存到原始视频中并且可以正常工作。但在流式传输到计算机后,.h264在使用VLC时无法显示任何内容。
Raspberry pi脚本:
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
可以这样做吗?
答案 0 :(得分:0)
如果您获得原始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