2017-04-21 56 views
2

我想記錄55秒的放射治療。FFMPEG現場錄音太快

ffmpeg -t 55 -i http://19233.live.streamtheworld.com/BLZE_1.mp3 toofastrecord.mp3 . 

FFMPEG這樣做了將近10秒。現場錄製,速度speed=5.67x而不是1個,怎麼可能?

以下是FFMPEG輸出。

ffmpeg -t 55 -i http://19233.live.streamtheworld.com/BLZE_1.mp3 toofastrecord.mp3 
ffmpeg version N-77715-gfc703f5 Copyright (c) 2000-2016 the FFmpeg developers 
    built with gcc 5.2.0 (GCC) 
    configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib 
    libavutil  55. 12.100/55. 12.100 
    libavcodec  57. 21.100/57. 21.100 
    libavformat 57. 21.101/57. 21.101 
    libavdevice 57. 0.100/57. 0.100 
    libavfilter  6. 23.100/6. 23.100 
    libswscale  4. 0.100/4. 0.100 
    libswresample 2. 0.101/2. 0.101 
    libpostproc 54. 0.100/54. 0.100 
[mp3 @ 0000017b0ad9aa00] Skipping 0 bytes of junk at 0. 
Input #0, mp3, from 'http://19233.live.streamtheworld.com/BLZE_1.mp3': 
    Metadata: 
    icy-br   : 64 
    icy-description : 
    icy-genre  : Talk 
    icy-name  : 
    icy-url   : 
    Duration: N/A, start: 0.000000, bitrate: 64 kb/s 
    Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 64 kb/s 
Output #0, mp3, to 'toofastrecord.mp3': 
    Metadata: 
    icy-br   : 64 
    icy-description : 
    icy-genre  : Talk 
    icy-name  : 
    icy-url   : 
    TSSE   : Lavf57.21.101 
    Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, mono, s16p 
    Metadata: 
     encoder   : Lavc57.21.100 libmp3lame 
Stream mapping: 
    Stream #0:0 -> #0:0 (mp3 (native) -> mp3 (libmp3lame)) 
Press [q] to stop, [?] for help 
size=  430kB time=00:00:55.01 bitrate= 64.1kbits/s speed=5.67x 
video:0kB audio:430kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.077898% 
+0

源實際上是活的還是OnDemand?輸出聲音是否正常? – Mulvya

+0

輸出聲音正常。對不起,我不熟悉多媒體流,我不知道什麼意味着流源的OnDemand。 –

+1

因此,您的輸入不是活的。完整的流已經存在於源代碼中。所以,ffmpeg正在儘可能快地拉動它。 – Mulvya

回答

2

您的來源絕對是現場直播。你可以簡單地通過聽它來證明這一點。當你重新加載時,它都是新的音頻。

發生什麼事情是服務器有一個相對較大的緩衝區,它從源緩衝數據。當新客戶端連接時,他們需要幾幀音頻數據才能開始解碼。而且,大多數玩家都有至少兩秒鐘的播放緩衝區。因此,服務器具有這個大緩衝區,並且可以在連接時刷新整個事件,這意味着監聽器不必等待兩秒以緩衝兩秒鐘的音頻。播放可以立即開始。

對於這個特定的流,它看起來大約是一個384KB的緩衝區。該流具有64kbps的低比特率。這是每秒8KB,這意味着初始緩衝區中有整個48秒的緩衝音頻。

您只錄制了55秒,因此可以以緩衝區可以刷新的速度運行。如果您要再記錄幾分鐘,則會在下載前64秒後看到速度急劇下降。