我试图在共享内存中编写RTSP流,然后将其写入.mkv文件中。
我使用这个命令直接在.mkv文件中写入流:
gst-launch-1.0 rtspsrc location=rtsp://admin:admin@192.168.88.248:554/h264 ! rtph264depay ! h264parse ! matroskamux ! filesink location= file.mkv它起作用了。
现在我添加共享内存:
gst-launch-1.0 rtspsrc location=rtsp://admin:admin@192.168.88.248:554/h264 ! shmsink socket-path=/tmp/foo shm-size=2000000和
gst-launch-1.0 shmsrc socket-path=/tmp/foo ! rtph264depay ! h264parse ! matroskamux ! filesink location=file.mkv我收到消息:
输入缓冲区需要设置RTP上限。
好吧,我写
gst-launch-1.0 rtspsrc location=rtsp://admin:admin@192.168.88.248:554/h264 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264" ! shmsink socket-path=/tmp/foo shm-size=2000000我又收到了这条消息。
我做错了什么?
发布于 2018-03-07 09:59:55
您需要在shmsrc之后设置上限,例如,下面是我的接收管道:
gst-启动-1.0 -v rtspsrc位置=rtsp://192.168.1.150:8554/8554视频!Shm接收器套接字-path=/tmp/false=2000000等待连接=false
你必须记下上面的水槽上的盖子,下面是我的盖子:
/GstPipeline:pipeline0/GstShmSink:shmsink0.GstPad:sink: caps =“application/x\,\media\=(字符串)视频\,\ payload\=(int)96\,\ clock-rate\=(int)90000\,\caps\=(String)H 264\,\packetization\=(String)1\,\profile-level id\=(String)64002a\,\ sprop-parameter-sets\=(string)\"J2QAKqwbKgHgCJ+WEAAAPoAADqYOAAEZABGQve6wgA\=\=\,KP4Briw\=\”,\ a-tool\=(string)GStreamer\,\a-type\=(String)广播\,\a-framerate\=(String)30,\a refclk=(String)local\,\a-mediaclk\=(String)发件人\,\ ssrc\=(uint)4083957277\ \ clock-base\=(uint)1018840792\,\ seqnum-base\=(uint)13685\,\npt-npt=(Guint64)0\\,播放速度\=(双)1\,\播放比例尺\=(双)1“
现在,使用shmsrc,
启动-1.0 -vm shmsrc套接字-path=/tmp/foo时间戳=true is-live=true num-buffers=1000!应用程序/x,media=(字符串)视频,payload=(int)96,分组化-模式=(字符串)1“!rtph264depay!h264parse!mp4mux!文件墨迹location=file.mp4
注意:我从上面设置了上限,还注意到我在使用mp4mux时设置了um-buffers=1000,我需要发送和eos才能播放该文件。
所以在你的情况下:
gst-launch-1.0 -v rtspsrc location=rtsp://admin:admin@192.168.88.248:554/h264 ! shmsink socket-path=/tmp/foo shm-size=2000000请记下shmsink0管道中的上限,然后在管道中使用它:
gst-launch-1.0 shmsrc socket-path=/tmp/foo is-live=true num-buffers=1000 ! caps ! rtph264depay ! h264parse ! mp4mux ! filesink location=file.mp4https://stackoverflow.com/questions/49146230
复制相似问题