好的,我了解了视频格式的基础知识 - 有一些容器格式,然后是核心视频/音频格式。我想编写一个基于 Web 的应用程序来确定文件使用的视频/音频编解码器。
如何最好地以编程方式确定视频编解码器?最好通过系统调用使用标准库并解析其输出吗? (例如ffmpeg、转码等?)
最佳答案
mplayer -identify
可以解决问题。只需在文件上调用 ffmpeg
也可以工作——它会在开始时自动打印一组关于输入文件的信息,而不管您告诉 ffmpeg 实际做什么。
当然,如果您想从您的程序中执行此操作而无需对外部程序执行 exec 调用,您可以只包含 avcodec 库并直接运行其自己的识别例程。
虽然您可以实现自己的检测,但考虑到 libav* 支持的格式数量绝对庞大,它肯定不如现有例程。重新发明轮子将是一个相当愚蠢的案例。
Linux 的"file"命令也可以解决这个问题,但它打印出的数据量取决于视频格式。例如,在 AVI 上,它会提供有关分辨率、FOURCC、fps 等的各种数据,而对于 MKV 文件,它只会显示“Matroska 数据”,而不会告诉您内部结构,甚至是所使用的视频和音频格式。
关于php - 以编程方式确定视频文件格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/109815/