我需要在两台Linux机器之间移动实时音频,这两台机器都运行在Gstreamer之上的定制软件(我的).(该软件已经通过单独的基于TCP的协议在机器之间进行了其他通信 - 我提到这一点,以防有可靠的带外数据对解决方案产生影响).
音频输入将是发送机器上的麦克风/线路输入,并且正常音频输出将作为目的地上的接收器; alsasrc和alsasink是最有可能的,但是对于测试我一直在使用audiotestsrc而不是真正的麦克风.
GStreamer提供多种方式在网络上传输数据 - RTP,RTSP,GDP支付,UDP和TCP服务器,客户端和套接字等.在音频和视频流媒体网络上也有很多例子 - 但在实践中,它们似乎都不适用于我; 目标管道无法协商上限,或者我听到一个数据包,然后管道停止,或者目标管道立即退出,没有可用的数据.
在所有情况下,我都在命令行上测试gst-launch.不需要压缩音频数据 - 原始音频,或简单的WAV,uLaw或aLaw编码都可以; 更重要的是低延迟.
当我使用Songza时,我可以浏览网站并继续播放音频.他们使用什么技术来实现这一目标.潘多拉也这样做.它们也都会更改完整的URL.
我试图设置一个音频单元来呈现音乐(而不是音频队列……这对我的目的来说太不透明了……iOS 没有这个属性kAudioDevicePropertyBufferFrameSize……我知道如何导出这个值来设置)我的 IO 单元的缓冲区大小?
我发现这篇文章很有趣..它询问了使用kAudioSessionProperty_CurrentHardwareIOBufferDuration和kAudioSessionProperty_CurrentHardwareOutputLatency音频会话属性的组合来确定该值的可能性..但没有答案..有什么想法吗?
前几天我问了一个关于流式音频的问题(“将音频文件从我的家用电脑流式传输到我的网站”),我得到了每个人的很好的回应。
我被说服使用像 DropBox 这样的云存储系统,而不是使用我的家用电脑作为服务器,结果证明它可以工作,但不是我想要的方式......让我解释一下。
正如我在上一篇文章中所述,我使用 php 通过从 SQL 数据库中提取数据来将音频文件回显到我的 HTML 中。回声将该数据放入一个 HTML 音频标签中,该标签具有指向我的 DropBox 帐户(公开共享)的 URL,以便它们全部连接。我的代码如下所示:
<audio controls>
<source src="https://dl.dropboxusercontent.com/u/123456789/<?php echo $file; ?>.mp3" type="audio/mpeg">
</audio controls>
Run Code Online (Sandbox Code Playgroud)
变量 $file 是我的数据库中音频文件的名称;因此,如果我的数据库显示“track01”,那么我的代码将如下所示:
<audio controls>
<source src="https://dl.dropboxusercontent.com/u/123456789/track01.mp3" type="audio/mpeg">
</audio controls>
Run Code Online (Sandbox Code Playgroud)
这有效......但效率不高。当我在 chrome 中测试它时,它第一次工作。然后我刷新了页面,文件甚至无法加载。我再次测试了它,我刷新了三遍才最终出现在音频标签中。所以在 chrome 中它可以工作,但我必须不断刷新,这是我负担不起的。
我还在 Internet Explorer 中对此进行了测试,令我惊讶的是,它运行得非常好。每次刷新页面时,我都会链接音频文件,无需等待音频加载;IE 上没有错误。
最后,我在 Safari、Opera 和 Firefox 中测试了我的网站,文件显示在 HTML 中,但加载时间太长,或者根本没有加载。
我的问题是:当我从 DropBox 链接时,这是一个问题吗?这是处理不同浏览器的问题吗?我可以解决这个问题吗?有没有其他人处理过类似的问题?我可以使用替代的云存储站点,允许我使用我的免费方法进行流式传输并允许我加载超过 2 GB 的音频文件吗?我仍然可以使用某种方法通过我自己的服务器流式传输我的文件吗?我不能强调我上面列出的方法是有效的,但它只是在初始加载文件时出现问题。
如果你们能给我一些解决方案,我将非常感激。非常感谢大家。
我检查了网页控制台和http://www.allindiaradio.gov.in/Gold.htm的源代码,但无法弄清楚
我正在尝试创建一个实时广播音频和视频的 RTSP 客户端。我在链接http://www.gdcl.co.uk/downloads.htm修改了 iOS 代码,并且能够正确地将视频广播到服务器。但现在我在播放音频部分时遇到问题。在链接示例中,代码的编写方式是将视频数据写入文件,然后从文件中读取数据并将 NALU 的视频数据包上传到 RTSP 服务器。
对于音频部分,我不知道如何继续。现在我尝试的是从麦克风获取音频缓冲区,然后通过添加 RTP 标头和 ALU 直接将其广播到服务器。但是这种方法无法正常工作,因为音频开始滞后,并且滞后随着时间的推移而增加。有人可以让我知道是否有更好的方法来实现这一点并使用 lip sycn 音频/视频。
我正在通过以太网端口获取 PCM 流。到目前为止,我能够捕获数据包并从中取出 pcm_payload 数据。
如何在 android 中播放原始 PCM 数据?PCM 数据是 16 位 2 通道,44.1kHZ 速率流。
我是 android 应用程序编程和音频编程的新手。对不起,如果这是一个微不足道的问题。
我想用来Gstreamer从同一端口上的多个点接收音频流。事实上,我想将音频从网络上的不同节点流式传输到一台收听传入音频流的设备,并且它应该在播放前混合多个音频。我知道我应该使用audiomixer或liveadder执行这样的任务。但是我做不到,而且混音器不能正常工作,当两个音频流到来时,输出的声音会非常嘈杂和损坏。
我使用了以下命令:
gst-launch-1.0.exe -v udpsrc port=5001 caps="application/x-rtp" !队列 !rtppcmudepay !穆劳德克!混音器名称=混音。!音频转换!音频重采样!自动音频接收器
但它不起作用。
我有这个 USB 转 GSM 串行 GPRS-SIM800C 模块,我已经成功地能够向它发送 AT 命令并执行一些操作,但我真正想要的是文本转语音功能,我能够生成 AMR 音频文件,上传到模块内存,有人来电就播放。
但是来电者听到的消息将是动态的,并且 TTS 将实时运行,因此将音频文件上传到模块的过程会导致不良的延迟,有什么方法可以通过模块传输一些音频吗?
谢谢。
audio-streaming ×10
audio ×4
gstreamer ×2
ios ×2
android ×1
core-audio ×1
dropbox ×1
flash ×1
gsm ×1
html5 ×1
html5-audio ×1
latency ×1
mixer ×1
objective-c ×1
pcm ×1
php ×1
rtsp-client ×1
shoutcast ×1
sim800 ×1
stream ×1
streaming ×1