使用ffmpeg从文件中传输音频流

时间:2013-09-23 10:50:47

标签: c++ ffmpeg audio-streaming

我要求将使用ffmpeg不断更新的音频文件的内容流式传输到同一LAN上的另一台计算机。我已经为Windows下载了ffmpeg静态版本。我理解在'ffmpeg'命令中指定目标IP地址和端口号的方法。但我无法弄清楚如何指定要流式传输的文件名。怎么去呢?

音频文件的格式没有任何条件。它可以是任何格式。

1 个答案:

答案 0 :(得分:1)

WAV文件不是缓冲编码数据以进一步流式传输的最佳工具。

我更喜欢使用ffserver。这个想法是ffmpeg对流进行编码并将其上传到ffserver的“feed文件”,而客户端(例如你的“远程计算机”)从ffserver通过http或rtsp(rtp)获取流(可能是不同格式的相同流) )。

只需在那里添加音频流,将ffmpeg连接到其Feed并将该远程计算机连接到流:

  • 在ffserver.conf中定义单个流:

    <Stream audio.sdp>
    Feed feed1.ffm
    Format rtp
    
    NoVideo
    AudioCodec libmp3lame
    AudioBitRate 64
    AudioSampleRate 22050
    </Stream>
    

或AVI(MPEGTS,FLV,无论如何)

    <Stream audio.avi>
    Feed feed1.ffm
    Format avi
    ...
  • 开始音频编码/上传到服务器:

    ffmpeg -i [Your source] http://localhost:[ffserver's port]/feed1.ffm
    
  • 开始在“远程计算机”上获取rtp(avi等)流。