MPlayer 无法播放 mp4 容器内的 opus 文件

MPlayer 无法播放 mp4 容器内的 opus 文件

我使用的是 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 文件中播放作品。

相关内容