python - 运行ffmpeg而不输出配置信息?

标签 python logging ffmpeg subprocess stderr

我正在调用 ffmpegsubprocess.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 version 0.6.2-4:0.6.2-1ubuntu1, Copyright (c) 2000-2010 the Libav developers built on Mar 22 2011 15:55:04 with gcc 4.5.2
configuration: --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 WARNING: library configuration mismatch libavutil 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 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

在最终输出我想记录的内容之前:

Seems stream 0 codec frame rate differs from container frame rate: 47.95 (66893/1395) -> 23.98 (66893/2790) At least one output file must be specified

是否有防止这种过度输出的选项?我应该采取不同的做法吗?

最佳答案

现在可以使用 -hide_banner 的 FFmpeg 2.2选项。另见相关 committicket .

关于python - 运行ffmpeg而不输出配置信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596135/

相关文章:

python - Django 查询集按 _set 排序

正则表达式匹配行是否存在

Python简写语句带if-else和 'in'判断

python - 通过 webapp2 处理程序处理 GAE BlobStore 异常

python - 没有 pyvenv.cfg 文件

node.js - fs.readFile 无法在 nodejs 中使用 ffmpeg 读取缩略图生成的文件

FFMPEG "buffer queue overflow, dropping"带有修剪和 atrim 过滤器

svn - 将Subversion日志导出到CSV

python - 从 Pyscripter 中的函数调用时记录不写入文件

java - 如何统一来自 java 堆栈的日志记录格式