ALSA - mplayer 不支持环绕声播放

ALSA - mplayer 不支持环绕声播放

当我跑步时:

speaker-test -c6

...一切正常。我获得了 5.1 播放。

但是,当我运行时:

mplayer -channels 6 "some video with 5.1 audio"

没有音频播放。终端中显示的内容如下:

~$ mplayer /var/remote/projects/playback/video/calibration/5.1video/10000_bc-tlr2_h480p.mov
MPlayer 未知-4.4.5 (C) 2000-2012 MPlayer 团队
正在播放 /var/remote/projects/playback/video/calibration/5.1video/10000_bc-tlr2_h480p.mov。
libavformat 版本 53.31.100(内部)
检测到 libavformat 文件格式。
[lavf] 流 0:视频 (h264),-vid 0
[lavf] 流 1:音频 (aac)、-aid 0、-alang eng
视频:[H264] 848x352 24bpp 23.976 fps 2132.4 kbps(260.3 kbyte/s)
片段信息:
 主要品牌:qt  
 次要版本:537199360
 兼容品牌:qt  
 创作时间:2008-01-08 00:00:27
 评论:由 apple.com/trailers/ 编码并提供
 comment-eng:由 apple.com/trailers/ 编码并提供
 版权:© 2008 华纳兄弟影业。保留所有权利
 copyright-eng: © 2008 华纳兄弟影业。保留所有权利
 标题:公元前 10,000 年
 标题:公元前 10,000 年

在 /var/remote/projects/playback/video/calibration/5.1video/ 中加载字幕

==========================================================================
打开视频解码器:[ffmpeg]FFmpeg的libavcodec编解码器系列
libavcodec 版本 53.60.100(内部)
选定的视频编解码器:[ffh264] vfm:ffmpeg (FFmpeg H.264)

==========================================================================

打开音频解码器:[ffmpeg] FFmpeg/libavcodec 音频解码器
音频:48000 Hz,6 通道,s16le,465.9 kbit/10.11%(比例:58238->576000)
选定的音频编解码器:[ffaac] afm:ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))

==========================================================================
[AO OSS] audio_setup:无法打开音频设备 /dev/dsp:没有此文件或目录
[AO_ALSA] alsa-lib: pcm.c:2209:(snd_pcm_open_noupdate) 未知的 PCM 卡.pcm.surround51
[AO_ALSA] 播放打开错误:没有此文件或目录
AO:[脉冲] 48000Hz 6ch s16le(每个样本 2 个字节)
开始播放...
不支持的 PixelFormat 61
不支持的 PixelFormat 53
不支持的 PixelFormat 81
影片宽高比未定义 — — 未应用预缩放。
画外音:[xv] 848x352 => 848x352 平面 YV12
A:0.1 V:0.0 AV:0.084 ct:0.004 0/0 ??% ??% ??,?% 0 0
[h264 @ 0xf0c760]将重新排序缓冲区增加到 1
A: 75.9 V: 75.9 AV: 0.000 ct: 0.084 0/ 0 4% 0% 0.5% 0 0
将大小为 1173 的数据包截断为 500
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xe953e0]流 1,偏移量 0x13dc10b:部分文件
A: 76.3 V: 75.9 AV: 0.395 ct: 0.084 0/ 0 4% 0% 0.5% 5034 0
[aac @ 0xf0c760]在找到 END 元素之前输入缓冲区已耗尽
A: 76.3 V: 75.9 AV: 0.396 ct: 0.084 0/ 0 4% 0% 0.5% 5035 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xe953e0]流 1,偏移量 0x13dc5ab:部分文件
A: 76.3 V: 75.9 AV: 0.396 ct: 0.089 0/ 0 4% 0% 0.5% 5035 0


退出...(文件结束)

最能说明问题的是下面这句:

[AO_ALSA] alsa-lib: pcm.c:2209:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51

是否有人知道如何强制 mplayer 使用与 alsa 的扬声器测试实用程序相同的输出路径?

还有什么建议吗?

以供参考:

$ aplay -l

**** List of PLAYBACK Hardware Devices ****

card 0: DSP [Hammerfall DSP], device 0: RME Hammerfall DSP + Multiface [RME Hammerfall DSP + Multiface]

    Subdevices: 1/1
    Subdevice #0: subdevice #0

答案1

hdsp.conf您的想法让我走上了正确的道路,我找到了mplayer 喜欢的在 中定义的别名。

作为参考,它是“ hdsp_analog”,可以在 mplayer 的命令行中找到地址:

mplayer -ao alsa:device=hdsp_analog -channels 6 /path/to/media.mov

感谢大家。

答案2

该错误Can't open audio device /dev/dsp: No such file or directory至少是一个问题。尝试查看该文件是否存在...

$ ls -l /dev/dsp

如果没有,那么 udev 设置可能有问题(/etc/udev/*)或者其他 ALSA 驱动程序/硬件问题导致无法创建设备文件。

我相信aplay -l确实有直接硬件检测(内核空间),而 mplayer 只是尝试使用 /dev 目录(用户空间)中列出的设备。

你使用什么发行版?

答案3

Hammerfall DSP 不支持仅输出 6 个通道,因此没有surround51别名。

尝试mplayer -ao alsa:device=plughw=0 -channels 6 whatever.mov

相关内容