近期入手了一块Orange Zero 2,该开发板的配置是Allwinner(全志) H616 CPU,Mali G31 GPU,RAM 1G,千兆网卡,双频WiFi+蓝牙,支持H265的6K@30fps profile和h264的4K@30fps profile。
由于官网文档只介绍了使用aplay进行音频测试,我进而使用ffmpeg播放音频文件进行测试。
1、烧写镜像
首先我在SD卡上刷写的是orangepi提供的ubuntu 18.04镜像,并且我们更新一下镜像源索引。
提供的ubuntu 镜像已经安装完成后已经是镜像源为清华大学开源镜像源,无需自己动手修改。
apt update
2、安装音频管理器
并且已经确保安装了alsamixer,如果没有安装请安装
apt install alsamixer
3、安装ffmpeg
系统本身没有安装ffmpeg的话先安装ffmpeg
apt install ffmpeg
4、准备音频文件
我们接下来需要准备一个PCM格式的wav音频文件,我们随意准备一个音乐文件并且用ffmpeg转码为pcm signed 16bit little-Endian的记录格式, 44100hz采样率的PCM文件,
ffmpeg -i "梁邦彦 - 十二幻梦曲 (Full Version).mp3" -c:a pcm_s16le 12full.wav -async 44100
请注意我们用的是:pcm_s16le,是pcm 的16位小端序。之所以使用这个格式,是为了方便我们如果无法使用ffmpeg解码播放,这个文件还可以用于aplay命令进行播放测试。
aplay是包含在alsa的包里的。
通过aplay播放测试我们可以用命令:
aplay -D hw:0,0 12full.wav
注:
Linux4.9 : aplay -D hw:0,0 12full.wav
Linux5.13 : aplay -D hw:2,0 12full.wav
5、发送文件
通过scp或者用mobaxterm通过ssh的方式将文件传入/home/orangepi目录下,
PC上:
scp 12full.wav root@192.168.20.220:/home/orangepi
我们cd到该目录下。
cd /home/orangepi
6、使用ffmpeg播放wav文件
我们需要通过ffmpeg并且指定音频设备接口的方式去播放,否则默认播放模式是找不到音频设备的。
ffmpeg -i 12full.wav -f alsa hw:0,0
-f alsa 我们通过指定alsa通用驱动去指定hw:0,0 音频设备去作为音频输出源。
此时将耳机接到扩展板3.5mm接口上,就可以听到音乐了,ssh终端也开始显示正在解码输出的音频信息:
Input #0, wav, from '../12full.wav':
Metadata:
artist : 梁邦彦
comment :
date : 2002
title : 十二幻梦曲 (Full Version)
album : 十二国记 十二幻梦组曲
track : 1
encoder : Lavf57.58.100
Duration: 00:04:30.24, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, alsa, to 'hw:0,0':
Metadata:
artist : 梁邦彦
comment :
date : 2002
title : 十二幻梦曲 (Full Version)
album : 十二国记 十二幻梦组曲
track : 1
encoder : Lavf57.83.100
Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Metadata:
encoder : Lavc57.107.100 pcm_s16le
size=N/A time=00:00:21.96 bitrate=N/A speed=1.06x
当我们测试通过后我们就可以用ffmpeg播放mp3、aac文件进行测试了。
比如在我们的目录下有一个文件
If I were a Bird_中川幸太郎.mp3
我们仍然可以使用ffmpeg来播放
ffmpeg -i If\ I\ were\ a\ Bird_中川幸太郎.mp3 -f alsa hw:0,0
一般默认情况下alsa音量是100%的,我们可以通过alsamixer去修改音量。
alsamixer
回车后就是
┌────────────────────────────────────────────────────── AlsaMixer v1.1.3 ──────────────────────────────────────────────────────┐
│ Card: audiocodec F1: Help │
│ Chip: F2: System information │
│ View: F3:[Playback] F4: Capture F5: All F6: Select sound card │
│ Item: LINEOUT volume Esc: Exit │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ ┌──┐ ┌──┐ ┌──┐ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ →
│ │ │ │ │ │ │ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │ │ │ │ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │▒▒│ │
│ └──┘ └──┘ ┌──┐ └──┘ LOMixer ┌──┐ ┌──┐ ┌──┐ ┌──┐ ROMixer ┌──┐ ┌──┐ ┌──┐ │
│ │OO│ │OO│ │MM│ │MM│ │MM│ │MM│ │OO│ │MM│ │
│ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ │
│ 43 43 71 │
│ FMIN to LINEIN t LINEOUT <LINEOUT >Left LIN Left Out Left Out Left Out Left Out Right LI Right Ou Right Ou Right Ou │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
我们通过光标可以控制音频的输出LINEOUT条来控制音量。