如何找到 AVI 文件需要的编解码器?最好使用不需要下载程序的方法(例如在记事本中查看文件)。
答案1
答案2
这是一个非常简单的过程,可以使用GSpot编解码器信息工具。只需下载并安装该程序即可。现在进入“开始”菜单并打开该程序。
注意:不要下载任何标有“Codec Pack”或来自 FourCC 网站顶部链接的内容。这将帮助您在播放文件时避免麻烦。
VLC 内置对所有平台的 Divx 和 3ivx 的支持。
答案3
如果您有类 Unix shell,您可能有一个名为“strings”的程序,它可以查找可打印字符序列。默认情况下,最小长度为 4,这对于此需求来说已经足够了。(可以在命令行上更改。)“vids”和 fourcc 将在输出中连续(但在我的 AVI 中不是一个字符串)。
您可以将结果通过管道传输到“more”等简单命令中,然后自己查找。或者,您可以将其通过管道传输到 head 中,并希望猜测所需的行数。或者,您可以更复杂一点,将其通过 sed 进行管道传输,并让其打印与所需模式匹配的行。或者,您可以使用 awk 执行相同操作。在我的 cygwin bash shell 上,这些选项看起来像以下命令:
字符串 foo.avi | 更多
字符串 foo.avi | head -10
字符串 foo.avi | sed -n '/vids/,+1p'
字符串 foo.avi | awk 'NR==1,/vids/{if( $0 == "vids" ) { getline ; print ; exit } }'
第三个版本的缺点是,我让 sed 处理整个文件,因此可能需要一段时间才能完成。我相信有一种方法可以在第一次匹配后让它停止,但我对 sed 不够熟悉,不知道(或找不到)这一点。如果条件为真,awk 版本会明确停止(获取下一行,打印该行,退出 - 而 sed 命令只有前两个 +1 和 p)。在 sed 和 awk 命令中,/vids/ 都是我们需要的正则表达式(即 Chris 上面回答中的搜索字符串)。此外,awk 构造 'NR==1,/vids/' 表示将以下代码块应用于从第 1 行(第一个输入行)到找到该正则表达式(匹配字符串)的任何行。if 条件阻止打印匹配行之前的所有行。我让它匹配整行 ($0),对于 strings 命令来说,这应该可以正常工作;无论如何,每行都会打印一个字符串。
请注意,它找到的字符串可能包含额外的字符(例如,从我的 AVI 文件中,它找到“strf(”而不是“strf”,后者是 fourcc)。如果您确实需要将其截断为四个字符(例如,对于需要将其与标准列表进行匹配的脚本),您可以将答案传递给“head -c 4”并仅获取 fourcc。这是我的最终答案:
strings foo.avi | awk 'NR==1,/vids/{if( $0 == "vids" ) { getline ; print ; exit } } ' | head -c 4
不管怎样,Windows Media Player 将我的 AVI 中的编解码器(音频和视频)列为“-”,但上述操作按预期工作。