我一直在开发一个应用程序,在这个应用程序中,我使用rtspsrc从一个网络摄像机收集音频和视频。但是,我无法从摄像机中观看流,因此无法验证流是否按预期工作。要验证流是否正确,我希望将其记录在SD卡上,然后在计算机上播放该文件。问题是,我希望摄像机尽可能多地进行解析、解码、脱荷,因为这就是应用程序的目的。
因此,我必须通过解码器将音频和视频流分离,并执行解析、解码等操作,然后将它们复制回matroska文件中。
视频解码器已经被省略了,因为它还没有完成这个相机。
使用Demux实时播放接收器(作品)
gst-launch-0.10 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! autoaudiosink d. ! rtph264depay ! ffdec_h264 ! queue ! ffmpegcolorspace ! autovideosink多重rtspsrc到matroska(工程)
gst-launch-1.0 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux ! filesink location=/var/spool/storage/SD_DISK/testmovie.mkv rtspsrc location="rtsp://root:pass@192.168.0.91/axis-media/media.amp?resolution=1280x720" latency=0 ! rtph264depay ! h264parse ! mux.单rtspsrc到matroska(失败)
gst-launch-1.0 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! queue ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux d. ! queue ! rtph264depay ! h264parse ! queue ! mux. ! filesink location=/var/spool/storage/SD_DISK/testmoviesinglertsp.mkv最后一个示例在错误消息中失败。
WARNING: erroneous pipeline: link without source element我是否注意到了matroska mux的用法,以及为什么上面的两个例子有效而不是最后一个?
发布于 2014-10-04 16:36:55
问题在于:
queue ! mux. ! filesink你需要做的
queue ! mux. mux. ! filesink穆克斯。这意味着gst发射应该自动从mux中选择一个发射台。并把它连接起来。您还可以手动指定一个名称,比如mux.src。因此,在语法上,您缺少了另一个元素/衬垫来链接到另一个元素。
https://stackoverflow.com/questions/26180533
复制相似问题