我正在使用ffmpeg
调用subprocess.Popen
,并尝试捕获stderr
输出并将其写入logging
。
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 开发人员于2011年3月22日建成 15:55:04 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-stripping --enable-runtime-cpudetect --enable-vaapi - enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static警告:库配置 mismatch 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 configuration: --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 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. 0
libavfilter 1.19。 0 / 1.19。 0
libswscale 0.11。 0 / 0.11。 0
libpostproc 51. 2. 0 / 51. 2. 0
在最终输出我要记录的东西之前:
似乎流0编解码器帧速率 与容器帧率不同: 47.95(66893/1395) - > 23.98(66893/2790)至少一个输出文件 必须指定
是否可以选择防止这种过度输出?我应该采用不同的方式吗?
答案 0 :(得分:40)
现在可以使用带有-hide_banner
选项的FFmpeg 2.2。另请参阅相关的commit和ticket。
答案 1 :(得分: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);
}
请参阅here尝试跳过它的尝试失败(我不知道GPL与此有什么关系)。我建议你file a bug并希望你足够有信心。
和其他许多人一样,我已经用show_banner()
编译了ffmpeg,这简直令人厌烦。
答案 2 :(得分:0)
查看ffmpeg的联机帮助页,尤其是-loglevel
参数。
答案 3 :(得分:-1)
FFmpeg!= Libav
来自FFmpeg的 ffmpeg
-loglevel
参数按预期工作。