当我跑步时:
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
。