Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 没有oggmux和oggdemux无法播放opus编码的数据_Linux_Gstreamer_Multimedia_Opus_Gstreamer 1.0 - Fatal编程技术网

Linux 没有oggmux和oggdemux无法播放opus编码的数据

Linux 没有oggmux和oggdemux无法播放opus编码的数据,linux,gstreamer,multimedia,opus,gstreamer-1.0,Linux,Gstreamer,Multimedia,Opus,Gstreamer 1.0,发送器管道 pulsesrc name=audio\u cap mute=0!队列听力!队列音频转换!音频重采样名称=音频重采样!音频/x-raw,速率=48000!队列静默=真最大大小缓冲区=100 eos刷新=真!仙人掌!队列appsink sync=false异步=false 接收管道 appsrc caps=“audio/x-opus”!音频/x-opus,频道映射系列=0!队列opusdec!音频转换!音频重采样!音频/x-raw,格式=S16LE,速率=44100,通道=2!听力!自

发送器管道

pulsesrc name=audio\u cap mute=0!队列听力!队列音频转换!音频重采样名称=音频重采样!音频/x-raw,速率=48000!队列静默=真最大大小缓冲区=100 eos刷新=真!仙人掌!队列appsink sync=false异步=false

接收管道

appsrc caps=“audio/x-opus”!音频/x-opus,频道映射系列=0!队列opusdec!音频转换!音频重采样!音频/x-raw,格式=S16LE,速率=44100,通道=2!听力!自动音频接收器

但是如果添加oggmux和oggdemux,它将开始播放

Rx工作管线


appsrc caps=“audio/x-opus”!音频/x-opus,频道映射系列=0!队列天哪!oggmux!队列oggdemux!opusdec!音频转换!音频重采样!音频/x-raw,格式=S16LE,速率=44100,通道=2!听力!autoaudiosink这是经过设计的。Opus解码器需要接收完整的Opus数据包

不幸的是,如果您只是将来自编码器的原始数据包转换成一个字节流,那么就无法返回到原始数据包边界

因此,您需要一个类似ogg或mpegts的容器,以便可以重新创建原始数据包


另见第3节

您尚未说明第一条“Rx管道”的具体情况。。是否在未协商或任何其他Gst错误时失败?仅供参考,您可能不需要听力。。audioresample处理的是采样率重采样,audiorate用于根据时间戳“平滑”采样器,而且如果不使用某些特殊的AudioSink,则可能不需要最后一个capsfilter。它不会失败,也不会给出Gstreamer错误。在Windows和mac上,管道正在工作。在Linux上,它无法播放音频。我使用的是两个不同版本的Gstreamer。在发送方1.10.4@Rx 1.14.4,没有任何信息,我无法帮助您。。获取一些日志,检查管道是否暂停或其他情况,检查是否至少本地GStreamer播放与类似管道一起工作,尝试播放一些opus文件,维护S16LE衣壳在您的工作管道中您也有opus。这可以是使它工作的元素,而不是oggmux、oggdemux。这可以简单地说,你需要在你的管道oggparse。