2011-04-08 85 views
18

我正在調用ffmpegsubprocess.Popen,並試圖捕獲stderr輸出並將其寫入logging在不輸出配置信息的情況下運行ffmpeg?

args = ['ffmpeg', '-i', path] 
if start: 
    args += ['-ss', start] 
if end: 
    args += ['-t', end] 
args += [ 
    '-vcodec', 'copy', 
    '-acodec', 'copy', 
    '-scodec', 'copy', 
    '-f', 'mpegts', 
    '-y', '/dev/stdout'] 
self.child = subprocess.Popen(
    args, 
    stdin=open(os.devnull, 'rb'), 
    stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE) 

ffmpeg產生大量的象以下配置信息:

FFmpeg的版本0.6.2-4:0.6.2-1ubuntu1, 版權(C)2000-2010 Libav 開發商使用gcc 4.5.2
配置: --extra-version = 4:0.6.2-1ubuntu1 --prefix =/usr --enable-avfilter --enable-avfilter -lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex - -enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable -s剝離--enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable- postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static警告:庫配置 不匹配libavutil配置: --extra-version = 4:0.6.2-1ubuntu2 - -prefix =/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable -libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-libopenjpeg - -enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 - -enable-libxvid --enable-libdc1394 --enable-shared --disable-static libavcodec配置: --extra-version = 4:0.6.2-1ubuntu2 --prefix =/usr --enable-avfilter --enable-avfilter -lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-libopenjpeg --enable-gpl --enable-postproc --enable -s swscale --enable-x11grab --enable-libfaad --enable -libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libdc1394 --enable-shared --disable-static libavutil 50.15。 1/50.15。 1
libavcodec 52.72。 2/52.72。 2
libavformat 52.64。 2/52.64。 2
libavdevice 52. 2.0/52. 2.
libavfilter 1.19。 0/1.19。 0
libswscale 0.11。 0/0.11。 0
libpostproc 51. 2. 0/51 2.0

之前最後輸出的東西,我想登錄:

好像流的編解碼器0的幀速率從 容器不同幀速率: 47.95(1395分之66893) - > 23.98(二千七百九十〇分之六萬六千八百九十三)至少一個輸出文件 必須指定

是否有防止這種過度輸出的選項?我應該以不同的方式做嗎?

回答

32

現在可以使用FFmpeg 2.2和-hide_banner選項。另見相關的committicket

+2

如果有一個FFOPTIONS環境變量,我可以將其添加到這樣的橫幅總是隱藏,但我不認爲有任何這樣的功能? – yoyo 2015-03-04 19:18:05

0

看看ffmpeg的手冊頁,特別是-loglevel參數。

+1

我試過'-loglevel',它似乎沒有效果。 – 2011-04-08 14:00:59

+0

我試過-loglevel恐慌,它抑制了輸出。 https://superuser.com/questions/326629/how-can-i-make-ffmpeg-be-quieter-less-verbose – nish 2017-10-04 06:12:24

3

AFAIK有沒有辦法,loglevel是沒有用的。看看ffmpeg。C:

init_opts(); 
show_banner(); 

和cmdutils.c:

void show_banner(void) 
{ 
    fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the FFmpeg developers\n", 
      program_name, program_birth_year, this_year); 
    fprintf(stderr, " built on %s %s with %s %s\n", 
      __DATE__, __TIME__, CC_TYPE, CC_VERSION); 
    fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); 
    print_all_libs_info(stderr, INDENT|SHOW_CONFIG); 
    print_all_libs_info(stderr, INDENT|SHOW_VERSION); 
} 

跳過它的不成功的嘗試(我不明白什麼GPL有這種瓜葛)查看here。我建議你去file a bug,希望你足夠的信服。

和其他許多人一樣,我用ffmpeg編譯了show_banner()註釋掉了,這簡直令人厭煩。

+0

他們的錯誤跟蹤器是史無前例的廢話。 +1,如果你可以在跟蹤器討論橫幅時獲得鏈接。謝謝。 – 2011-06-08 03:44:56

+0

如果您可以鏈接到其跟蹤程序中的相關錯誤,我仍然想給+1。 – 2011-11-26 01:06:17

+1

@Matt:我沒有發現任何有關該橫幅的錯誤報告:https://ffmpeg.org/trac/ffmpeg/query?stat = close&status = new&statat = open&status = reopened&max = 3000&order = priority。但請注意,其中一位作者(Ronald S. Bultje)在郵件列表中表示,這不會發生。 – tokland 2011-11-26 14:13:43

-1

FFmpeg的!=按預期工作Libav

ffmpeg從FFmpeg的有-loglevel參數。

+1

什麼版本的ffmpeg?接受的解決方案提到這個網站實際上並不工作。 – 2012-02-11 02:35:38

+0

看起來像ffmpeg -loglevel 適用於任何高於「info」的級別。 loglevel參數(從最簡單到最多):「quiet」「panic」「fatal」「error」「warning」「info」「verbose」「debug」。我正在使用ffmpeg 1.0(建立在mac上)。 – stib 2012-12-20 05:26:52

相關問題