php - 以编程方式确定视频文件格式?

标签 php linux video file-io binaryfiles

好的,我了解了视频格式的基础知识 - 有一些容器格式,然后是核心视频/音频格式。我想编写一个基于 Web 的应用程序来确定文件使用的视频/音频编解码器。

如何最好地以编程方式确定视频编解码器?最好通过系统调用使用标准库并解析其输出吗? (例如ffmpeg、转码等?)

最佳答案

mplayer -identify 可以解决问题。只需在文件上调用 ffmpeg 也可以工作——它会在开始时自动打印一组关于输入文件的信息,而不管您告诉 ffmpeg 实际做什么。

当然,如果您想从您的程序中执行此操作而无需对外部程序执行 exec 调用,您可以只包含 avcodec 库并直接运行其自己的识别例程。

虽然您可以实现自己的检测,但考虑到 libav* 支持的格式数量绝对庞大,它肯定不如现有例程。重新发明轮子将是一个相当愚蠢的案例。

Linux 的"file"命令也可以解决这个问题,但它打印出的数据量取决于视频格式。例如,在 AVI 上,它会提供有关分辨率、FOURCC、fps 等的各种数据,而对于 MKV 文件,它只会显示“Matroska 数据”,而不会告诉您内部结构,甚至是所使用的视频和音频格式。

关于php - 以编程方式确定视频文件格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/109815/

相关文章:

php - 对操作系统进行编程以执行文件

ios - 多个音轨的 AVMutableAudioMix 音量无法正常工作

ios - 当用户选择要播放的新视频时关闭画中画视频

css - 是否可以打印您网页上显示的 YouTube 视频静态截图?

javascript - Laravel 5.1 和 Vue.js - 21678 未捕获( promise )TypeError : Cannot read property 'data' of null

php - Laravel 5 每个页面都会返回 404 错误

php - 如何在php中构造一个graphql突变查询请求

c - 使用无效命令的 fork 导致 valgrind 中的内存泄漏

php - 在 WordPress 中,post_parent 返回 0

linux - Linux 中 tcpip 堆栈的多个实例