Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Streaming 流媒体直播服务开发_Streaming_Audio Streaming - Fatal编程技术网

Streaming 流媒体直播服务开发

Streaming 流媒体直播服务开发,streaming,audio-streaming,Streaming,Audio Streaming,我将要开发一项涉及交互式音频直播的服务。互动性,即主持人可以暂停其流,并在请求时,从其一位听众(在流会话期间)发送流音频 它更像是一条大管道,水流通过它,但每次只能从连接到它的许多小管道中的一个管道流入,每个管道分配一个慢化剂,控制哪个管道被打开。我对媒体流一无所知,我不知道云服务是否提供了这样的交互式可编程解决方案 我是一名程序员,我将能够对这种交互中涉及的逻辑进行编程。问题是,我是媒体流的新手,我不知道服务器上是否使用了用于此目的的技术和各种软件,是否有任何书籍可以介绍媒体流中使用的技术,,

我将要开发一项涉及交互式音频直播的服务。互动性,即主持人可以暂停其流,并在请求时,从其一位听众(在流会话期间)发送流音频

它更像是一条大管道,水流通过它,但每次只能从连接到它的许多小管道中的一个管道流入,每个管道分配一个慢化剂,控制哪个管道被打开。我对媒体流一无所知,我不知道云服务是否提供了这样的交互式可编程解决方案

我是一名程序员,我将能够对这种交互中涉及的逻辑进行编程。问题是,我是媒体流的新手,我不知道服务器上是否使用了用于此目的的技术和各种软件,是否有任何书籍可以介绍媒体流中使用的技术,,我试图避免使用Flash


客户端可以是web或移动。我不认为我会有任何问题与客户端系统集成。我的问题是实现服务器端

您正在有效地编程一个切换器。基本上,您需要能够从一个音频流切换到另一个音频流。对于未压缩的PCM,这非常简单。只要采样率和位深度相等,在任何帧上剪切音频(采样准确),然后切换到另一帧。您可以对音频重新采样并应用抖动在不同采样率和位深度之间进行转换

复杂的部分是涉及到有损编解码器。在一个simlar项目中,我一直在尝试将流缝合在一起,我可以告诉你,这几乎是不可能的,即使是像MP3这样简单的东西。(比特库使事情变得困难。)另外,听起来你将支持多种设备,这意味着你可能无论如何都无法在编解码器上实现标准化。最好的办法是获取多个流,并在系统的混合点对它们进行解码。然后,您可以使用PCM轻松地从一个流切换到另一个流

在系统输出时,您需要重新编码到某个有损编解码器


由于延迟,您通常不希望服务器进行这种切换。切换应该在编码流的人的办公桌上完成,这样他们就可以准确地提示流。只需编写一些能够完成所有切换和编码的内容,并使用SHOUTcast/Icecast来托管您的流。

如果我非常了解您的话,流式传输并不是真正的问题,问题更多的是编码/解码和切换。但我是音频处理方面的新手,对如何编写切换器、做所有编码等方面没有任何想法。有什么资源、书籍或教程可以让我从一开始就进入媒体/音频处理和编程的世界。Python/Java编程,最好是Python是我喜欢使用的,因为它将被托管在Internet上编码/解码由应用程序之外的编解码器处理。如果是我的话,我会直接用管道连接到FFMPEG进行编码。对于其余部分,您只需要从一个流切换到另一个流。