networking - GStreamer:通过网络传输 vorbis 编码的音频

标签 networking stream udp gstreamer vorbis

我想编写一个通过网络传输音频和视频的应用程序。作为一个简单的开始,我想尝试一下音频部分。

我想通过网络从我的麦克风传输 vorbis 编码的音频。我从接收器的以下管道开始:

gst-launch-0.10 tcpserversrc 主机=本地主机 端口=3000 ! 奥格解复用器! 沃比斯德克! 音频转换! 音频/x-raw-int,字节序=“(int)1234”,有符号=“( bool )true”,宽度=“(int)16”,深度=“(int)16”,速率=“(int) 22000”, channel =“(int)1”! 阿尔萨辛克

对于发件人:

gst-launch-0.10 autoaudiosrc ! 音频/x-raw-int,速率=22000, channel =1,宽度=16! 音频转换! 沃比森克! 奥格多路复用器! tcpclientsink主机=本地主机端口=3000

这种方法可行,但音频很断断续续。

有人可以告诉我如何通过网络顺利对麦克风进行 vorbis 编码和流式传输吗?

编辑:我使用audiotestsrc并记录了输出:http://db.tt/oDuQ2O41

最佳答案

我已经尝试过下面的这些命令(对原始帖子中的命令稍作修改) 他们能为我解决“刺耳”的声音问题

发件人:

gst-launch-0.10 autoaudiosrc ! \
audio/x-raw-int, endianness="(int)1234", signed="(boolean)true", width="(int)16", depth="(int)16", rate="(int)22000", channels="(int)1" ! \
audioconvert ! \
vorbisenc ! \
oggmux max-delay=50 max-page-delay=50 ! \
tcpclientsink host=localhost port=3000

接收者:

gst-launch-0.10 tcpserversrc host=localhost port=3000 ! \
oggdemux ! \
vorbisdec ! \
audioconvert ! \
audio/x-raw-int, endianness="(int)1234", signed="(boolean)true", width="(int)16", depth="(int)16", rate="(int)22000", channels="(int)1" ! \
pulsesink

关于networking - GStreamer:通过网络传输 vorbis 编码的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140893/

相关文章:

c# - 写入流时计算哈希

c++ - 将 std::stream 对象从一个管理器传递到另一个管理器

c - C中通过套接字发送多个字段的数据

python - 如何改进我的 python openCV 视频流?

java - DatagramChannel 绑定(bind)到通配符地址的 NoRouteToHostException

C++流输入过程

c - 如何忽略自己广播的udp包

python - 这个python代码线程安全吗(扭曲的线程)?

Python ping 脚本在第一次尝试时总是失败

python - 是否可以选择特定的网络接口(interface)在 Python 中传输数据?