我正在使用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 --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)
必须指定至少一个输出文件
有什么选项可以防止这种过度输出吗?我应该用不同的方法吗?