首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在存储之前在python中捕获FFmpeg输出

在存储之前在python中捕获FFmpeg输出
EN

Stack Overflow用户
提问于 2012-06-13 20:05:18
回答 3查看 3.2K关注 0票数 1

我正在尝试捕获ffmpeg的输出并将其存储在内存中,以便在以后决定是否要将其写入磁盘。

是否可以在将ffmpeg写入HDD之前对其输出进行分析?

由于我真的不知道如何处理这件事,所以我还不能提供代码示例。

编辑:是的,我正在尝试将捕获的avi/mp4的小块写入RAM,并在写入光盘之前对它们进行分析。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-14 14:01:41

要将ffmpeg的输出重定向为您的进程的输入,请使用以下命令:

代码语言:javascript
复制
ffmpeg -i inputfile [ ... options ... ] 2>&1 | your-process 

您的进程将在其中将数据获取到stdin。

示例:

代码语言:javascript
复制
ffmpeg -y -i inputfile -acodec copy -vcodec copy outputfile 2>&1 | cat
票数 2
EN

Stack Overflow用户

发布于 2012-06-13 20:11:11

如果你的意思是捕获视频输出,我不这么认为,因为这将需要大量的内存,最好使用一个临时文件并跟踪它。

如果您的意思是从输出的文件中捕获信息,请尝试使用不带任何其他参数的ffmpeg -i /some/file.avi,这将转储大量有关视频文件的信息。

示例:

代码语言:javascript
复制
dorkbot:~ lamer1$ ffmpeg -i ~/Downloads/Dead\ Gerhardsens\ -\ They\ dont\ know.mp4 
ffmpeg version 0.7.8, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 24 2011 14:31:00 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
  configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libopenjpeg --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64 --enable-yasm
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0

Seems stream 1 codec frame rate differs from container frame rate: 50000.00 (50000/1) -> 25.00 (25/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/lamer1/Downloads/Dead Gerhardsens - They dont know.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isomavc1mp42
    creation_time   : 2008-07-01 00:53:26
  Duration: 00:01:37.76, start: 0.000000, bitrate: 303 kb/s
    Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 125 kb/s
    Metadata:
      creation_time   : 2008-07-01 00:53:26
    Stream #0.1(und): Video: h264 (Baseline), yuv420p, 384x288 [PAR 1:1 DAR 4:3], 175 kb/s, 25 fps, 25 tbr, 25k tbn, 50k tbc
    Metadata:
      creation_time   : 2008-07-01 00:53:26
At least one output file must be specified

这不是一个完美的解决方案,但你可以解析输出。

票数 0
EN

Stack Overflow用户

发布于 2012-06-13 21:13:16

您可以使用Pyffmpeg库从python中直接调用ffmpeg。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11014465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档