0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【树莓派】播放音频和视频

上海晶珩电子科技有限公司 来源:上海晶珩电子科技有限公 作者:上海晶珩电子科技 2023-11-03 15:12 次阅读

WARNING

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

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

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

OMXPlayer应用程序

最简单的命令行是 omxplayer . 媒体文件可以是音频和/

或视频。对于以下示例,我们使用了包含在标准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 &

审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Raspberry Pi
    +关注

    关注

    1

    文章

    552

    浏览量

    22058
  • 树莓派
    +关注

    关注

    113

    文章

    1641

    浏览量

    104761
收藏 人收藏

    评论

    相关推荐

    【米尔-瑞米兼容树莓扩展模块-试用体验】用视频来了解这块生态板_米尔-瑞米兼容树莓扩展模块

    今天为大家展示一下初始开发板_米尔-瑞米兼容树莓扩展模块, 米尔-瑞米兼容树莓扩展模块介
    发表于 04-29 11:51

    【米尔-瑞米兼容树莓扩展模块-试用体验】初始开发板_米尔-瑞米兼容树莓扩展模块

    收到米尔-瑞米兼容树莓扩展模块几天了,今天抽时间给大家介绍一下这块生态板,让大家有对这块米尔-瑞米兼容树莓
    发表于 04-29 11:42

    fx3枚举成usb扬声器,电脑无法播放音频是哪里出了问题?

    参考fx3 sdk 1.3.5例程uac_examples,将fx3修改为usb 扬声器,电脑能识别到设备,但电脑无法正常播放音频,fx3也收不到音频数据。请问是哪里出了问题?有没有相关的例程可以参考?
    发表于 03-06 06:52

    树莓都有哪些功能,是用什么编程的?

    怎么学习树莓树莓和传统单片机的区别是哪些,如果有了树莓该学哪些知识
    发表于 11-09 07:51

    arduino能用pwm播放音乐吗?

    arduino能用pwm播放音乐吗,歌曲通过外部的flash存储
    发表于 11-08 08:19

    HarmonyOS多音频播放并发政策及音频管理解析

    进行管控,只有持有音频焦点的音频流才可以正常播放,避免多个音频流无序并发播放的现象出现。 当应用开始播放
    发表于 10-25 16:35

    树莓3树莓4原理图分享

    提供了树莓3、树莓3B、树莓4版本的原理图
    发表于 09-27 07:58

    使用STM32L1xx微控制器与外部I2S音频编解码器播放音频文件

    电子发烧友网站提供《使用STM32L1xx微控制器与外部I2S音频编解码器播放音频文件.pdf》资料免费下载
    发表于 09-21 11:30 2次下载
    使用STM32L1xx微控制器与外部I2S<b class='flag-5'>音频</b>编解码器<b class='flag-5'>播放音频</b>文件

    在Arduino中播放音频

    电子发烧友网站提供《在Arduino中播放音频.zip》资料免费下载
    发表于 06-25 15:16 0次下载
    在Arduino中<b class='flag-5'>播放音频</b>

    树莓音频视频播放

    树莓音频视频播放
    的头像 发表于 06-21 11:41 428次阅读

    为什么无法使用媒体播放器应用程序通过GUI在android11中播放音频

    歌曲。 3. 假设我们通过任何媒体播放器应用程序/应用程序播放音频,我们听不到任何音频。 3.1 通过媒体播放器应用程序播放音频需要进行哪些
    发表于 05-30 07:11

    SIP网络音频模块-SIP网络播放音频模块(带2*15W功放输出)

    SIP2402V网络音频模块是一款通用的独立SIP音频播放模块,其带2*15W功放音频输出,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP
    的头像 发表于 05-24 09:29 461次阅读
    SIP网络<b class='flag-5'>音频</b>模块-SIP网络<b class='flag-5'>播放音频</b>模块(带2*15W功放输出)

    在Android11中通过GUI的wm8960模块播放音频找不到是为什么?

    任何媒体播放器应用程序/应用程序播放音频,我们听不到任何音频。 但在 logcat 中它显示 card 1。 05-10 09:44:07.112 364 1721 D
    发表于 05-17 10:00

    10. 100ASK_V853-PRO开发板支持录音和播放音频

    ​ 本章主要讲述如何使用板载的MIC拾音咪头录音并使用喇叭播放音频
    的头像 发表于 05-12 10:40 1213次阅读
    10. 100ASK_V853-PRO开发板支持录音和<b class='flag-5'>播放音频</b>

    如何通过tinyalsa命令音频正在通过wm8960播放

    我能够在 imx8mp phytec pollux 板上检测到 android 11 中的 wm8960 编解码器 问题是:我能够通过命令行方式播放音频,通过 tinyalsa 命令音频正在通过
    发表于 05-12 06:33