【发布时间】:2011-08-01 13:18:16
【问题描述】:
我正在使用subprocess.Popen 调用ffmpeg,并尝试捕获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 警告:库配置 不匹配的 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-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --启用-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
libav 格式 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) 至少一个输出文件 必须指定
是否有防止这种过度输出的选项?我应该采取不同的做法吗?
【问题讨论】:
标签: python logging ffmpeg subprocess stderr