json - 以友好的方式获取ffmpeg信息

每次我尝试使用 ffmpeg 获取有关我的视频文件的一些信息时,都会吐出很多无用的信息和好东西。

我正在使用 ffmpeg -i name_of_the_video.mpg

有没有可能以友好的方式得到它?我的意思是 JSON 会很棒(甚至丑陋的 XML 也可以)。

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

我想要类似的东西:

{
  "Stream 0": {
     "type": "Video",
     "codec": "h264",
     "resolution": "720x480"
  },
  "Stream 1": {
     "type": "Audio",
     "bitrate": "128 kbps",
     "channels": 2
  }
}

最佳答案

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

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

例如,ffprobe -v quiet -print_format json -show_format -show_streams somefile.asf 会产生如下内容:

{
  "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"
    }
  }
}

https://stackoverflow.com/questions/7708373/

相关文章:

c# - 如何从 JSON 字符串自动生成 C# 类文件

javascript - 嵌套的 JSON 对象 - 我必须对所有内容都使用数组吗?

jquery - 如何检查值是否为 JSON 对象?

python - Python中的字符串到字典

javascript - 在 DOM 中嵌入任意 JSON 的最佳实践?

javascript - 将 Javascript 对象编码为 Json 字符串

ruby-on-rails - 将 json 格式的键值对转换为以符号为键的 ruby​​ 哈希的最

c# - ASP.Net Core 中的 JSON 序列化/反序列化

python - JSON到 Pandas 数据框

javascript - 将json数据转换为html表