2013-09-23 139 views
1

我有一個需要將使用ffmpeg不斷更新的音頻文件的內容傳輸到同一LAN上的另一臺計算機。我已經下載了Windows的ffmpeg靜態版本。我瞭解在'ffmpeg'命令中指定目標IP地址和端口號的方法。但我無法弄清楚如何指定要流式傳輸的文件名。如何去做呢?使用ffmpeg從文件中提取音頻流

音頻文件的格式沒有條件。它可以是任何格式。

+0

您能解釋一下如何使用FFMPEG進行流式傳輸嗎?向我們展示你到目前爲止的命令? – Brad

+0

我使用命令「ffmpeg -re -f lavfi -i aevalsrc =」sin(400 * 2 * PI * t)「-ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234」發件人。爲了播放收到的數據,我使用了「ffplay rtp://10.14.35.24:1234」。這是爲了生成音頻然後發送。如果我已經有一個音頻文件(不一定是WAV文件)會怎麼樣?如何流式傳輸? – Vigo

回答

1

WAV文件不是緩衝編碼數據以進一步流式傳輸的最佳工具。

我寧願使用ffserver。這個想法是,ffmpeg編碼流並將其上傳到ffserver的「feed file」,並且客戶端(例如你的「遠程計算機」)通過http或rtsp(rtp)從ffserver獲取流(它可能是不同格式的流) )。

只需添加音頻流存在,連接FFMPEG其進料和該遠程計算機連接到流:

  • 在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,等)的 「遠程計算機」 上的流。

+0

感謝您付出代碼片段的努力。我可以不使用ffmpeg靜態構建流嗎?所以這裏audio.avi是文件名,我是否需要在ffserver.conf中添加此段並獲取音頻文件的流式傳輸? – Vigo

相關問題