首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以友好的方式获取ffmpeg信息

以友好的方式获取ffmpeg信息
EN

Stack Overflow用户
提问于 2011-10-10 11:50:47
回答 4查看 83K关注 0票数 122

每次我试图用ffmpeg获取一些关于我的视频文件的信息时,它都会产生很多无用的信息,其中夹杂着一些好的东西。

我使用的是ffmpeg -i name_of_the_video.mpg

有没有可能以友好的方式实现这一点?我的意思是JSON会很棒(即使是丑陋的XML也可以)。

到目前为止,我让我的应用程序使用正则表达式解析数据,但在一些特定的视频文件上出现了许多令人讨厌的角落。我解决了我遇到的所有问题,但可能还有更多。

我想要这样的东西:

代码语言:javascript
复制
{
  "Stream 0": {
     "type": "Video",
     "codec": "h264",
     "resolution": "720x480"
  },
  "Stream 1": {
     "type": "Audio",
     "bitrate": "128 kbps",
     "channels": 2
  }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-19 09:47:08

有点晚了,但也许仍然与某些人相关..

ffprobe确实是一个很好的选择。但是请注意,您需要告诉ffprobe您希望它显示什么信息(使用-show_format-show_packets-show_streams选项),否则它只会给出空白输出(就像您在评论中提到的那样)。

例如,ffprobe -v quiet -print_format json -show_format -show_streams somefile.asf将生成类似以下内容的内容:

代码语言:javascript
复制
{
  "streams": [{
    "index": 0,
    "codec_name": "wmv3",
    "codec_long_name": "Windows Media Video 9",
    "codec_type": "video",
    "codec_time_base": "1/1000",
    "codec_tag_string": "WMV3",
    "codec_tag": "0x33564d57",
    "width": 320,
    "height": 240,
    "has_b_frames": 0,
    "pix_fmt": "yuv420p",
    "level": -99,
    "r_frame_rate": "30000/1001",
    "avg_frame_rate": "0/0",
    "time_base": "1/1000",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "language": "eng"
    }
  }],
  "format": {
    "filename": "somefile.asf",
    "nb_streams": 1,
    "format_name": "asf",
    "format_long_name": "ASF format",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "WMFSDKVersion": "10.00.00.3646",
        "WMFSDKNeeded": "0.0.0.0000",
        "IsVBR": "0"
    }
  }
}
票数 304
EN

Stack Overflow用户

发布于 2018-01-28 05:40:38

现在可以使用-progress -打印由key=value格式化的友好信息。

代码语言:javascript
复制
ffmpeg  -i video.mp4 .......-s 1920x1080 -progress - -y out.mp4

speed=5.75x
frame=697
fps=167.7
stream_0_0_q=39.0
bitrate=2337.0kbits/s
total_size=6979778
out_time_ms=23893333
out_time=00:00:23.893333
dup_frames=0
drop_frames=0
票数 21
EN

Stack Overflow用户

发布于 2011-10-10 13:51:55

你可以试试ffprobe。获取JSON输出的正确命令应如下所示:

代码语言:javascript
复制
ffprobe ... -print_format json
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7708373

复制
相关文章

相似问题

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