我使用的是 mplayer 版本 1.4-11。
当尝试播放这些(仅音频)类型的文件时,MPlayer 会给出错误消息“找不到音频格式 0x7375704F 的编解码器”。
其他媒体播放器(例如 vlc)播放它们没有问题。
支持的编解码器列表MPlayer 网站上表示它支持类似的音频格式“0x7375706F”,编解码器名称为“FFmpeg opus”和“FFmpeg libopus”。
MPlayer 可以成功播放扩展名为 .opus 或 .mkv 文件的 opus 音频文件,而 ffplay(ffmpeg 播放器实用程序)可以毫无问题地播放这些 mp4 文件。
下面是创建此类文件的示例命令(使用您现有的任何音频文件):
ffmpeg -i myaudio.mp3 -acodec libopus -y test.mp4
一切都表明 MPlayer 播放该文件应该没有问题,但它抱怨音频格式不受支持。为什么?
答案1
MPlayer 使用名为 codecs.conf 的配置文件来控制对各种编解码器的支持。由于某种原因,自 1.4.11 起,.mp4 容器内的这种作品组合不包含在内。
联机帮助页表明这些文件有时内置于可执行文件中,但您也可以使用其中一个文件系统覆盖它。在我的计算机上, 首先在 中mplayer
查找文件,如果在 中找不到文件,则会搜索.您可以通过使用参数调用 mplayer 来看到这一点。codecs.conf
$HOME/.mplayer/codecs.conf
/etc/mplayer/codecs.conf
-v
联机帮助页还说您可以-codecs-file
在命令行上传递参数选项,但这对我不起作用。
因此,获取默认文件的副本codecs.conf
。您可以在源 tarball 中找到它网站或上这非官方github镜像。该文件可以etc/
在源树下找到。
将以下内容添加到文件顶部:
; Manually added: support opus inside .mp4
audiocodec ffopusmp4
info "FFmpeg opus/mp4"
status working
format 0x7375704F
fourcc opus
driver ffmpeg
dll opus
并将其保存在搜索路径中。对我来说,那是在$HOME/.mplayer/codecs.conf
。
MPlayer 版本其codecs.conf
文件,因此如果您收到警告:
This codecs.conf is too old and incompatible with this MPlayer release!
您需要从最新版本中获取该文件并进行更新。在紧要关头,只需将文件顶部的“发布”值提高到当前日期,尽管这可能会导致不兼容,具体取决于项目决定提高版本的原因。
通过这一更改,我可以像任何其他文件一样在 .mp4 文件中播放作品。