当前位置: 首页 > 面试题库 >

以友好的方式获取ffmpeg信息

家志学
2023-03-14
问题内容

每次我尝试使用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"
    }
  }
}


 类似资料:
  • 问题内容: 有没有一种更友好的方法来获取FontMetrics实例,而不是 由于以下示例,我讨厌这种方式: 如果要在游戏中创建菜单,并且希望所有菜单项都位于屏幕中央,则需要字体度量。但是,大多数菜单项都是可单击的。因此,我创建了一个数组,所有矩形都适合这些项目,因此当按下鼠标时,我可以简单地使用 但是要创建矩形,我还需要FontMetrics作为其坐标。因此,这意味着我必须在菜单的绘制方法中构造所

  • 问题内容: 我正在考虑Tkinter菜单标签(命令)的快捷方式。在Mac上,与cmd combination的组合很常见。 到目前为止,我只发现了。如何实现cmd⌘快捷方式? 再想一想-应用程序完成后-将其转换为Windows和Mac应用程序的可执行文件可能会在使用cmd⌘时引起困难?处理此问题的最佳方法是什么? 问题答案: 我认为您需要指定Tk内置命令中列出的 Meta和M 修饰符之一-也许代替

  • 好的,我有一个座位系统,它生成一个30x30的网格,对于每个网格,数据库中都有一行,但是当我在我的页面上生成这个网格时,我当前每个元素发出5个SQL请求(有900个元素),我们都知道这不是最优的。 为了呈现它,我执行一个while循环,并执行一些检查,然后回显出以下代码: 下面是一个座椅模型如何工作的例子 每个请求中有5个这样的函数,这对许多人来说是一种方式。所以我需要一些好的方法来最小化这个系统

  • 代码起作用了。至少在我试过的文件中。但这似乎是一种糟糕的方式,但我还没有找到更好的解决方案,所以如果你有一个,请分享:)

  • 我从这个例子中找到了这段代码: 我实现了这段代码,但结果看起来很可疑。我试图从JVM获取可用内存量,但我只有80 MB。您能否确认此代码是否正确地将字节转换为兆字节或千兆字节。

  • 我做了一个android应用程序,它将获取facebook登录用户的所有朋友。但这并不能吸引所有的朋友。谁能告诉我是什么问题,并帮助我正确的过程。现在我正在使用下面的代码。 请求rt=Request.newMyFriendsRequest(会话,新的GraphUserListCallback(){ 请建议我该怎么办?