树莓派超全系列文档--(7)RaspberryOS播放音频和视频
播放音频和视频
- 播放音频和视频
- VLC 媒体播放器
- `vlc` GUI
- `vlc` CLI
- 使用 `cvlc` 在没有图形用户界面的情况下播放媒体
- 在 Raspberry Pi OS Lite 上播放音频和视频
- 指定音频输出设备
- 指定视频输出设备
- 同时指定音频和视频输出设备
- 提高数据流播放性能
文章来源: http://raspberry.dns8844.cn/documentation
原文网址
播放音频和视频
Raspberry Pi OS 预装了 VLC 媒体播放器。您可以使用 VLC 播放视频和音频文件。VLC 在 Raspberry Pi OS 中使用硬件加速,支持许多流行的音频和视频文件格式。
VLC 媒体播放器
vlc GUI
要从 Raspberry Pi Desktop 播放音频或视频文件,请在文件管理器中双击文件。这会自动启动 VLC 播放该文件。或者,从 Sound & Video 菜单,启动 VLC Media Player。然后,从 Media 菜单中选择 Open File…,并导航到要播放的文件。
默认情况下,Raspberry Pi OS 通过 HDMI 将音频发送到显示器。要将音频输出到耳机插孔或 USB 扬声器等不同接口,请右键单击系统托盘中的扬声器图标并选择一个选项。
vlc CLI
你也可以通过命令行启动 VLC。在下面的示例中,我们使用了 Big Buck Bunny 的一个短片。要从 Raspberry Pi 上下载该短片,请运行以下命令:
$ wget --trust-server-names http://rptl.io/big-buck-bunny
要在 VLC 中通过命令行播放片段,请运行以下命令:
$ vlc big-buck-bunny-1080p.mp4
要防止 VLC GUI 在文件播放完毕后继续打开,请添加 --play-and-exit 标记:
$ vlc --play-and-exit big-buck-bunny-1080p.mp4
要以全屏模式播放视频(在某些情况下播放会更流畅),请添加 --fullscreen 标记:
$ vlc --play-and-exit --fullscreen big-buck-bunny-1080p.mp4
使用 cvlc 在没有图形用户界面的情况下播放媒体
如果在这些命令中使用 cvlc 而不是 vlc,则不会显示 VLC 图形用户界面:
$ cvlc --play-and-exit big-buck-bunny-1080p.mp4
在 Raspberry Pi OS Lite 上播放音频和视频
与完整版的 Raspberry Pi OS 不同,Raspberry Pi OS Lite 没有预装 VLC。要在 Raspberry Pi OS Lite 上使用 VLC 播放视频和音频,请安装所需的软件包,以便在没有桌面的情况下播放:
$ sudo apt install --no-install-recommends vlc-bin vlc-plugin-base
在下面的示例中,我们使用了一段简短的音频片段。要从 Raspberry Pi 上下载这个片段,请运行以下命令:
$ wget --trust-server-names http://rptl.io/startup-music
要在 VLC 中通过命令行播放片段,请运行以下命令:
$ cvlc --play-and-exit computer-startup-music.mp3
指定音频输出设备
要强制将音频输出到特定设备,可在 -A 选项中加入 alsa 值以使用 ALSA 音频输出,并在 --alsa-audio-device 选项中指定音频输出设备:
$ cvlc --play-and-exit -A alsa --alsa-audio-device <alsa-device> computer-startup-music.mp3
用以下选项之一替换 <alsa-device> 占位符:

使用以下命令获取 Raspberry Pi 上所有 ALSA 设备的列表:
aplay -L | grep sysdefault
指定视频输出设备
要强制将视频输出到特定设备,请使用 --drm-vout-display 选项指定视频输出设备:
$ cvlc --play-and-exit --drm-vout-display <drm-device> big-buck-bunny-1080p.mp4
用以下选项之一替换 <drm-device> 占位符:

使用以下命令获取 Raspberry Pi 上所有 DRM 设备的列表:
$ kmsprint | grep Connector
同时指定音频和视频输出设备
您可以将音频和视频输出选项结合起来。例如,要将视频输出到触摸屏,将音频输出到耳机插孔,请使用上述命令的以下组合:
$ cvlc --play-and-exit --fullscreen --drm-vout-display DSI-1 -A alsa --alsa-audio-device sysdefault:CARD=Headphones your_video.mp4
提高数据流播放性能
如果您有原始的 H.264 数据流,例如从 Raspberry Pi 摄像头模块捕获的数据流,您可以通过将数据流封装在 MP4 等容器格式中来提高 VLC 的播放性能。你可以使用 ffmpeg 将流内容转换为容器文件。例如,下面的命令将名为 video.h264 的数据流以 30fps 的速度转换为名为 video.mp4 的 MP4 容器:
$ ffmpeg -r 30 -i video.h264 -c:v copy video.mp4
上一篇 – 树莓派超全系列文档–(6)RaspberryOS更新软件及固件
下一篇 – 树莓派超全系列文档–(8)RaspberryOS实用程序
相关文章:
树莓派超全系列文档--(7)RaspberryOS播放音频和视频
播放音频和视频 播放音频和视频VLC 媒体播放器vlc GUIvlc CLI使用 cvlc 在没有图形用户界面的情况下播放媒体 在 Raspberry Pi OS Lite 上播放音频和视频指定音频输出设备指定视频输出设备同时指定音频和视频输出设备提高数据流播放性能 文章来源: http://raspberr…...
chrome浏览器下载和Chrome浏览器的跨域设置
Chrome浏览器的跨域设置 下载chrome浏览器设置chrome跨域 下载chrome浏览器 点击官方下载,然后逐步安装即可 设置chrome跨域 1、然后在D盘创建个文件夹命名为ChromeDevSession。 2、右击chrome浏览器选择属性。 3、在目标编辑栏的最后加上:–disabl…...
Android14 SystemUI中添加第三方AIDL
由于特殊需求,需要在SystemUI中添加第三方AIDL,去做一些客制化的修改。现在记录一下AIDL添加的过程。 1.将AIDL文件拷贝到frameworks/base/packages/SystemUI/src/下,我要添加的AIDL文件是com/test/myctr/IDevicectr.aidl,添加后的…...
Appium中元素定位之一组元素定位API
应用场景 和定位一个元素相同,但如果想要批量的获取某个相同特征的元素,使用定位一组元素的方式更加方便 在 Appium 中定位一组元素的 API 与定位单个元素的 API 类似,但它们返回的是一个元素列表(List<MobileElement>&am…...
【高并发内存池】第六弹---深入理解内存管理机制:ThreadCache、CentralCache与PageCache的回收奥秘
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】【项目详解】 目录 1、threadcache回收内存 2、centralcache回收内存 3、pagecache回收内存 1、threadcache回收内…...
累积分布策略思路
一种基于概率密度和累积分布函数的量化交易策略,主要应用于期货市场。该策略通过计算价格数据的概率密度和累积分布函数(CDF),结合移动平均线和ATR(平均真实范围)等技术指标,实现多空交易的自动…...
【JavaScript】九、JS基础练习
文章目录 1、练习:对象数组的遍历2、练习:猜数字3、练习:生成随机颜色 1、练习:对象数组的遍历 需求:定义多个对象,存数组,遍历数据渲染生成表格 let students [{ name: 小明, age: 18, gend…...
RAG、大模型与智能体的关系
一句话总结: RAG(中文为检索增强生成) 检索技术 LLM 提示。 RAG、大模型与智能体的关系解析 1. 核心概念定义 RAG(检索增强生成) 是一种结合信息检索与生成式模型的框架,通过从外部知识库(如…...
使用firewall-cmd配置SIP端口转发,实现双网卡互通,内外网方式
使用firewall-cmd配置SIP端口转发,实现双网卡,内外网方式 脚本内容 这里以内网IP: 192.168.2.88 这里以外网IP: 10.3.3.3 以下是一个用于启用和停用端口转发的Shell脚本: #!/bin/bash# 配置变量 ZONE"public" TARGET_IP"192.168.2.88" POR…...
Oracle数据库数据编程SQL<3.2 PL/SQL 匿名块中的DML操作、动态SQL、实际应用场景、使用技巧>
匿名块是学习和测试PL/SQL代码的强大工具,特别适合执行一次性任务或快速验证业务逻辑。 目录 一、匿名块中的DML操作 1. INSERT 示例 2. UPDATE 示例 3. DELETE 示例 二、匿名块中的动态SQL 1. EXECUTE IMMEDIATE 2. 动态游标--下篇文章会具体展开详细分享该…...
Spring AI Alibaba 实战:集成 OpenManus 实现智能体应用开发
引言 2024 年 9 月,阿里云正式开源 Spring AI Alibaba,为 Java 开发者提供了一套完整的 AI 应用开发框架,支持与通义系列大模型深度集成,并覆盖了从模型调用到云原生部署的全链路能力。而近期,中国团队发布的通用型 A…...
Linux中《进程状态--进程调度--进程切换》详细介绍
目录 进程状态Linux内核源代码怎么说运行&&阻塞&&挂起内核链表 进程状态查看Z(zombie)-僵尸进程僵尸进程危害孤儿进程 进程优先级进程切换Linux2.6内核进程O(1)调度队列 进程状态 Linux内核源代码怎么说 为了弄明白正在运⾏的进程是什么意思,我们…...
Element PlusAnt-design常问问题详解
Element UI Plus 高频面试问题解析(2025 版) 一、核心组件使用与原理 动态表头实现方案 • 场景:如何根据接口数据动态生成表头? • 技术方案: ◦ 使用 v-for 遍历表头数组生成 el-table-column ◦ 结合 render-header 属性实现复杂表头(如带提示的标题) ◦ 示例代码:通…...
【商城实战(96)】打造商城监控利器Prometheus与Grafana
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
Megatron-LM中的deepseek-v3实现
Megatron-LM:https://github.com/NVIDIA/Megatron-LM/tree/main 使用此仓库构建的著名的库也有很多,如: Colossal-AI, HuggingFace Accelerate, and NVIDIA NeMo Framework.Pai-Megatron-Patch工具是阿里人工智能平台PAI算法团队研发,ai-Megatron-Patch…...
SpringCloud如何整合DeepSeek
SpringCloud 整合 DeepSeek 的核心目标是通过微服务架构调用其分布式文件系统(如 3FS)或 API 服务。以下从技术选型、整合步骤和关键配置三个方面展开说明: 一、技术选型与架构分析 DeepSeek 服务类型 3FS 分布式文件系统:基于 RD…...
蓝桥杯备考:多米诺骨牌
这道题要求上下方格子和之差要最小,其实就是算每个上下格子的差求和的最小值 这道题其实是动态规划01背包问题 我们直接按步骤做吧 step1:定义状态表示f[i][j]表示从1到i个编号的差值里选出刚好j个数的最小操作次数 step2:推导状态转移方程 如图这就是我们的状态…...
wireshark开启对https密文抓包
HTTPS抓包解密指南 通常情况下,Wireshark只能抓取HTTP的明文包,对于HTTPS的报文需要特殊设置才能抓取。如果不进行设置,抓取到的都是TLS加密报文,这对调试工作造成了很大困难。 前言 提到HTTPS抓包,基本都绕不开SSL…...
AudioFlinger与AudioPoliceManager初始化流程
AF/APF启动流程 在启动AudioSeriver服务的过程中会对启动AF/APF。main_audioserver.cpp有如下代码: AudioFlinger::instantiate();AudioPolicyService::instantiate();AF初始化流程 1.AudioFlinger::instantiate() 1.1 AudioFlinger构造函数 void AudioFlinger:…...
网路传输层UDP/TCP
一、端口号 1.端口号 1.1 五元组 端口号(port)标识了一个主机上进行通信的不同的应用程序. 如图所示, 在一个机器上运行着许多进程, 每个进程使用的应用层协议都不一样, 比如FTP, SSH, SMTP, HTTP等. 当主机接收到一个报文中, 网络层一定封装了一个目的ip标识我这台主机, …...
Python大数据处理 基本的编程方法
目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果 五、实验体会 一、实验目的 体会基本的python编程方法;学习python中的各类函数;了解python读取与写入文件的方法。 二、实验要求 输入2000年后的某年某月某日,判断这一天是…...
STM32F103_LL库+寄存器学习笔记06 - 梳理串口与串行发送“Hello,World“
导言 USART是嵌入式非常重要的通讯方式,它的功能强大、灵活性高且用途广泛。只停留在HAL库层面上用USART只能算是入门,要加深对USART的理解,必须从寄存器层面入手。接下来,先从最简单的USART串行发送开始。 另外,在接…...
硬件基础--14_电功率
电功率 电功率:指电流在单位时间内做的功(表示用电器消耗电能快慢的一个物理量)。 单位:瓦特(W),简称瓦。 公式:PUI(U为电压,单位为V,i为电流,单位为A,P为电功率,单位为W)。 单位换算:进位为1000ÿ…...
【C#语言】C#文件操作实战:动态路径处理与安全写入
文章目录 ⭐前言⭐一、场景痛点⭐二、完整实现代码⭐三、关键技术解析🌟1、动态路径处理🌟2、智能目录创建🌟3、安全的文件写入 ⭐四、进阶扩展方案🌟1、用户自定义路径选择🌟2、异常处理增强🌟3、异步写入…...
Vue.js 完全指南:从入门到精通
1. Vue.js 简介 1.1 什么是 Vue.js? Vue.js(通常简称为 Vue)是一个用于构建用户界面的渐进式 JavaScript 框架。所谓"渐进式",意味着 Vue 的设计是由浅入深的,你可以根据自己的需求选择使用它的一部分或全部功能。 Vue 最初由尤雨溪(Evan You)在 2014 年创…...
在Git仓库的Readme上增加目录页
一般在编写Readme时想要增加像文章那样的目录,方便快速跳转,但是Markdown语法并没有提供这样的方法,但是可以通过超链接结合锚点的方式来实现,如下图是我之前一个项目里写的Readme: 例如有下面几个Readme内容ÿ…...
C# SolidWorks 二次开发 -各种菜单命令增加方式
今天给大家讲一讲solidworks中各种菜单界面,如下图,大概有13处,也许还不完整哈。 1.CommandManager选项卡2.下拉选项卡3.菜单栏4.下级菜单5.浮动工具栏6.快捷方式工具栏7.FeatureManager工具栏区域8.MontionManager区域 ModelView?9.任务窗…...
分布式架构-Spring技术如何能实现分布式事务
在Spring技术栈中实现分布式事务,可通过多种成熟方案实现跨服务或跨数据库的事务一致性管理。以下是主要实现方式及技术要点: 一、基于Seata框架的AT模式 核心组件 TC (Transaction Coordinator):全局事务协调器(独立部署…...
【RocketMQRocketMQ Dashbord】Springboot整合RocketMQ
【RocketMQ&&RocketMQ Dashbord】Springboot整合RocketMQ 【一】Mac安装RocketMQ和RocketMQ Dashbord【1】安装RocketMQ(1)下载(2)修改 JVM 参数(3)启动测试(4)关闭测试&…...
vue 3 深度指南:从基础到全栈开发实践
目录 一、环境搭建与项目初始化 1. 前置依赖安装 2. 项目初始化与结构解析 二、核心概念与语法深度解析 1. MVVM 模式与响应式原理 2. 模板语法与指令进阶 3. 组件化开发 三、进阶开发与全栈集成 1. 路由管理(Vue Router) 2. 状态管理…...
