如何使用GStreamer实现JSMPEG摄像头流推送至websocket-relay
等效FFmpeg推流的GStreamer命令说明
原FFmpeg命令核心逻辑为:
- 从/dev/video0采集25fps、640x480规格的V4L2摄像头视频
- 编码为无B帧、1000k码率的MPEG1视频,封装为MPEG-TS格式
- 以HTTP请求形式推流到ws-relay地址http://localhost:8081/supersecret
你之前的命令没有完成编码、格式封装环节,且用tcpclientsink无法适配目标HTTP推流接口,因此无法生效。
正确GStreamer命令
gst-launch-1.0 v4l2src device="/dev/video0" \ ! video/x-raw,width=640,height=480,framerate=25/1 \ ! videoconvert \ ! mpeg1enc bitrate=1000000 b-frames=0 \ ! mpegtsmux \ ! souphttpsink location="http://localhost:8081/supersecret" method=POST
参数对应说明
video/x-raw,width=640,height=480,framerate=25/1:指定采集的视频规格,对应FFmpeg的-framerate 25 -video_size 640x480参数mpeg1enc bitrate=1000000 b-frames=0:指定MPEG1编码规则,对应FFmpeg的-codec:v mpeg1video -b:v 1000k -bf 0参数mpegtsmux:将编码后的视频封装为MPEG-TS格式,对应FFmpeg的-f mpegts参数souphttpsink:完成HTTP推流请求,对应FFmpeg最后指定的推流地址配置
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

