[分享] 【树莓派】播放音频和视频

树莓派开发者   2023-11-3 15:09 楼主

WARNING

以下文档涉及Raspberry Pi OS Buster和早期版本。OMXPlayer 已在最新的操作系统版本中弃用。如果您正在使用Bullseye,VLC现在是推荐的替代方案。

在Raspberry Pi上播放音频和视频的最简单方法是使用已安装的OMXPlayer应用程序。

这是硬件加速的,可以播放许多流行的音频和视频文件格式。OMXPlayer使用OpenMAX(omx)硬件加速接口(API),这是Raspberry Pi官方支持的媒体API。OMXPlayer由Kodi项目的Edgar Hucek开发。

OMXPlayer应用程序

最简单的命令行是 omxplayer <name of media file>. 媒体文件可以是音频和/

或视频。对于以下示例,我们使用了包含在标准Raspberry Pi操作系统中的 H264 视频文件。

omxplayer /opt/vc/src/hello_pi/hello_video/test.h264

默认情况下,音频将发送到模拟端口。如果您使用的是带有扬声器的配备HDMI的显示设备,则需要告诉omxplayer通过HDMI链路发送音频信号。

omxplayer --adev hdmi /opt/vc/src/hello_pi/hello_video/test.h264

显示视频时,整个显示器将用作输出。您可以使用窗口选项指定希望视频位于显示的哪个部分。

omxplayer --win 0,0,640,480 /opt/vc/src/hello_pi/hello_video/test.h264

您还可以指定要显示视频的哪个部分:这称为裁剪窗口。视频的这一部分将放大以匹配显示,除非您还使用窗口选项。

omxplayer --crop 100,100,300,300 /opt/vc/src/hello_pi/hello_video/test.h264

如果您使用的是 Raspberry Pi触摸屏, 并且想要将其用于视频输出,请使用显示选项指定要使用的显示器。使用n为5是HDMI ,n为4是触摸屏。使用Raspberry Pi4,您有两种HDMI输出选项。对于 n 为2是HDMI0,对于 n 为7是HDMI1。

omxplayer --display n /opt/vc/src/hello_pi/hello_video/test.h264

如何播放音频

要播放 .MP3 文件,请使用以下 cd 命令导航到 .mp3 终端中文件的位置,然后键入以下命令:

omxplayer example.mp3

这将通过显示器的内置扬声器或通过耳机插孔连接的耳机播放音频文件 example.mp3。

如果您需要示例文件,可以使用以下命令从此处下载一个:

wget https://raw.githubusercontent.com/raspberrypilearning/burping-jelly-baby/master/data/la.mp3 -O example.mp3 --no-check-certificate

如果您听不到任何声音,请确保您的耳机或扬声器已正确连接。请注意,omxplayer 不使用 ALSA,因此需要通过`raspi-config` 或 amixer 忽略 音频配置。

如果 omxplayer 自动检测正确的音频输出设备失败,您可以使用以下方法强制通过 HDMI 输出:

omxplayer -o hdmi example.mp3

或者,您可以使用以下命令通过耳机插孔强制输出:

omxplayer -o local example.mp3

您甚至可以通过以下方式通过耳机插孔和HDMI强制输出:

omxplayer -o both example.mp3

如何播放视频

要播放视频,请使用cd导航到终端中视频文件的位置,然后键入以下命令:

omxplayer example.mp4

这将全屏播放example.mp4。点击 Ctrl + C 退出

在Raspberry Pi 4 上,已删除对 MPEG2 和 VC-1 编解码器的硬件支持,因此我们建议使用 VLC 应用程序,该应用程序在软件中支持这些格式。此外,VLC 还支持 H264 和新的 HEVC 编解码器。

示例视频

您可在Raspberry Pi上找到动画电影《Big Buck Bunny》的视频样本。要播放它,请在终端窗口中输入以下命令:

omxplayer /opt/vc/src/hello_pi/hello_video/test.h264

在Raspberry Pi 4 上,对 H264 文件使用以下命令:

omxplayer /opt/vc/src/hello_pi/hello_video/test.h264

或用于 H264、VC1 或 MPEG2

vlc /opt/vc/src/hello_pi/hello_video/test.h264

使用VLC时,您可以通过封装原始H264流(例如来自Raspberry Pi相机模块的流)来提高回放性能。使用`ffmpeg` 很容易做到这一点。播放也得到改善,如果VLC运行全屏;从用户界面中选择fullscreen,或者可以在 vlc 命令行中添加 --fullscreen 项。此示例命令转换 video.h264 为容器化的 video.mp4 以 30 fps

ffmpeg -r 30 -i video.h264 -c:v copy video.mp4

播放期间的选项

播放期间有许多选项可用,通过按适当的键来操作。并非所有选项在所有文件上都可用。可以使用 omxplayer --keys 显示键绑定列表:


    1           decrease speed
    2           increase speed
    <           rewind
    >           fast forward
    z           show info
    j           previous audio stream
    k           next audio stream
    i           previous chapter
    o           next chapter
    n           previous subtitle stream
    m           next subtitle stream
    s           toggle subtitles
    w           show subtitles
    x           hide subtitles
    d           decrease subtitle delay (- 250 ms)
    f           increase subtitle delay (+ 250 ms)
    q           exit omxplayer
    p / space   pause/resume
    -           decrease volume
    + / =       increase volume
    left arrow  seek -30 seconds
    right arrow seek +30 seconds
    down arrow  seek -600 seconds
    up arrow    seek +600 seconds

后台播放

如果在没有tty(用户输入)的情况下在后台运行 omxplayer 将立即关闭,因此要成功运行,您需要使用 --no-keys 选项告诉 omxplayer 不需要任何用户输入。

omxplayer --no-keys example.mp3 &

在命令末尾添加 & 在后台运行。然后,可以使用该 jobs 命令检查此后台作业的状态。默认情况下,工作将在`omxplayer`播放完成后完成,但如有需要,您可以随时使用 kill 命令停止它。


$ jobs
[1]-  Running             omxplayer --no-keys example.mp3 &
$ kill %1
$
[1]-  Terminated          omxplayer --no-keys example.mp3 &
WX:上海晶珩电子科技

回复评论 (1)

学习了,感谢分享                                                                                                                                                                                                                                                                                             

点赞  2023-11-4 08:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复