首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从rtspsrc中提取音频和视频,然后使用matroska mux保存到文件中?

如何从rtspsrc中提取音频和视频,然后使用matroska mux保存到文件中?
EN

Stack Overflow用户
提问于 2014-10-03 14:08:25
回答 1查看 5.5K关注 0票数 4

我一直在开发一个应用程序,在这个应用程序中,我使用rtspsrc从一个网络摄像机收集音频和视频。但是,我无法从摄像机中观看流,因此无法验证流是否按预期工作。要验证流是否正确,我希望将其记录在SD卡上,然后在计算机上播放该文件。问题是,我希望摄像机尽可能多地进行解析、解码、脱荷,因为这就是应用程序的目的。

因此,我必须通过解码器将音频和视频流分离,并执行解析、解码等操作,然后将它们复制回matroska文件中。

视频解码器已经被省略了,因为它还没有完成这个相机。

使用Demux实时播放接收器(作品)

代码语言:javascript
复制
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(工程)

代码语言:javascript
复制
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(失败)

代码语言:javascript
复制
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

最后一个示例在错误消息中失败。

代码语言:javascript
复制
WARNING: erroneous pipeline: link without source element

我是否注意到了matroska mux的用法,以及为什么上面的两个例子有效而不是最后一个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-04 16:36:55

问题在于:

代码语言:javascript
复制
queue ! mux. ! filesink

你需要做的

代码语言:javascript
复制
queue ! mux. mux. ! filesink

穆克斯。这意味着gst发射应该自动从mux中选择一个发射台。并把它连接起来。您还可以手动指定一个名称,比如mux.src。因此,在语法上,您缺少了另一个元素/衬垫来链接到另一个元素。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26180533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档