使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi

2024-02-26

我有一个 bash 脚本,可以通过 omxplayer 在 Raspberry Pi 上播放 .mp3 文件。但无法控制本地(耳机)音量GUI。是否有一个命令CLI我可以在 bash 脚本中实现吗?我搜索了很多,但找不到这样的命令。

Code:

omxplayer Song_Title.mp3

设置本地(耳机)输出的音频:

sudo modprobe snd_bcm2835 sudo amixer cset numid=3 1

omxplayer -o local

Thanks!


为了通过脚本播放提供更精确的信息,当前版本的 omxplayer 有 3 种改变音量的方法,并且值不是那么直观:

  1. 在启动命令行时,参数--vol YYY,双毫贝,默认 0,范围 [-6000:0]
  2. 通过标准输入接口,发送 +/- 到 omxplayer 将增加/减少音量 300 dmbels
  3. 带DBUS接口,cmd'设置音量',值double:XXX,默认1,范围[0:1]

xxx 与 yyy 的关系是:XXX = 10 ^ (YYY / 2000)... 根据omxplayer.cpp https://github.com/popcornmix/omxplayer/blob/350779b00bb7278e0d1d9025b9ed1ddb4a2d99cd/omxplayer.cpp#L1166源代码,逆向公式为:YYY = 2000 * (log XXX).

所以如果我们需要:

  • 体积 1%,XXX=0.01,YYY=-4000(10^(-4000/2000)=10^-2=0.01
  • 体积 10%,XXX=0.1,YYY=-2000(10^(-2000/2000)=10^-1=0.1
  • 体积 50%,XXX=0.5,YYY=-602(10^(-602/2000))~=0.5
  • 音量 100%,XXX=1,YYY=0(10^(0/2000)=10^0=1)
  • 音量 150%,XXX=1.5 且 YYY=352 ...(对于升压测试,正常值

dbus 卷命令的工作 bash 脚本:

export DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/omxplayerdbus.${USER:-root})
dbus-send --print-reply --session --reply-timeout=500 \
           --dest=org.mpris.MediaPlayer2.omxplayer \
           /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Set \
           string:"org.mpris.MediaPlayer2.Player" \
           string:"Volume" double:0.5   # <-- XXX=0.5 (50% sound volume)

等于启动时的音量参数:

omxplayer --vol -602 mediaFileName.mp4

...两者都将音量设置为 50%。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi 的相关文章

  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 如何查找所有以句号结尾的单词?

    我有一个包含许多以 a 结尾的单词的文件 其中大部分是缩写 例如 etc p s 如何输出一个仅显示一次所有这些单词的列表 所有单词前面都有一个空格 因此可以使用该空格来查找单词的开头 没有一个单词出现在该行的开头 文件中没有句子 因此句点
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec

随机推荐

  • Git 交互式合并?

    我有两个分支具有完全相同的文件 如果您想知道它是一个 sql 文件 我想以交互方式合并它 我几乎想打开一个 diff 程序 就像出现冲突 或命令行 时所做的那样 并准确选择哪些行去哪里 有办法做到这一点吗 是的 但主要是通过手动实现 您将告
  • 使用 BouncyCastle 解密 Rijndael 256 块大小

    我们有一个用于加密的辅助类 老实说 它可能是几年前从 Stack Overflow 复制的 目前 我们正在尝试将部分代码移植到 NET Core 但我们发现它不起作用 因为 NET Core 实现RijndaelManaged不支持 256
  • Spring MVC 可以处理多值查询参数吗?

    有了这个http myserver find by phones phone 123 phone 345请求 是否可以处理这样的事情 Controller public class Controller RequestMapping fin
  • 为什么 ByRef 不能与 WithEvents 结合使用?

    我想我很清楚两者之间的区别ByVal and ByRef在 VB 中 但我的问题是当我尝试将它与声明为的成员结合使用时WithEvents 我有以下方法 Private Sub SafeCloseAndDeRefConnection ByR
  • 使用 torch.stack()

    t1 torch tensor 1 2 3 t2 torch tensor 4 5 6 t3 torch tensor 7 8 9 torch stack t1 t2 t3 dim 1 在实现 torch stack 时 我无法理解如何对不
  • Android Realm - 调试[重复]

    这个问题在这里已经有答案了 我想查看 Realm 对象变量的值 例如 Student int studentID ArrayList
  • 顶级异常应用程序:dexDebug --dex -no-optimize --output android studio

    我正在将 Android 代码从 Eclipse 迁移到 Android studio 但遇到了以下错误 该项目构建良好并与 gradle 同步 但在编译时抛出以下错误 UNEXPECTED TOP LEVEL EXCEPTION Erro
  • Web 请求中未设置 Referrer 标头

    当我通过 Phonegap 加载 Web 应用程序并发出 Web 请求 通过 AJAX 或其他方式 时 根本不会设置 REFERRER HTTP 标头 这会干扰某些第三方网站的功能 如何发送 REFERRER 标头 我使用的是Phonega
  • 如何从 Ruby 中的线程返回值?

    如果我有以下代码 threads 1 5 each do i threads lt lt Thread new process x i bin end threads each do t t join i d like to get the
  • 如何从 Firebase 获取某个字段为空的记录

    我正在构建一个应用程序 需要小批量处理 5k 任务 为此 我有一个存储在 Firebase 中的任务队列 我希望能够提取一定数量的空状态任务 更新其状态并写回 目前我不知道如何在某个字段为空的情况下提取数据 是否可以 如果不是 替代解决方案
  • 检索 SQL 表中的列数 - C#

    我对 C 很陌生 我正在尝试使用以下方法检索列数 SELECT count FROM sys columns 您能否解释一下如何使用该命令并将其放入变量中 要连接到数据库 您可以使用SqlConnection类 然后要检索行数 您可以使用E
  • 为什么使用数组作为索引会改变多维 ndarray 的形状?

    我有一个 4 D NumPy 数组 轴为 x y z t 我想获取对应于 t 0 的切片并排列 y 轴上的顺序 我有以下内容 import numpy as np a np arange 120 reshape 4 5 3 2 b a 1
  • Xcode Storyboard - 在哪里设置 UITableViewCell 高度

    我正在使用 Xcode 7 并且我正在尝试设置故事板中 UITableViewCell 的高度设置为不同的设备具有不同的单元高度 例如 正常和紧凑 x 常规 我找不到这些设置的位置 这只能通过编程来实现吗 单击 表视图 然后单击 尺寸检查器
  • Flask、mod_wsgi 和 Apache:导入错误

    我在错误日志中收到以下信息 导入错误 没有名为flask的模块 它看起来完全像Django mod wsgi apache 导入错误 没有名为 djproj urls 的模块 https stackoverflow com question
  • 从数据文件夹备份中恢复mysql数据库

    我已经卸载了旧的XAMPP并删除了所有内容d xampp folder并安装了新的 当我复制备份文件夹时 带有我的数据库的名称 包含所有 frm and opt文件 到D xampp mysql data 数据库显示在 phpmyadmin
  • Android Lollipop 不显示 android:背景图像

    我设计了使用 JPEG 图像作为布局背景的屏幕 完整的 UI 屏幕在 Android 8 中正确可见 姜饼 至 Android 19 Kitkat 布局背景在 Android 20 中不可见 Lollipop 我正在使用应用程序兼容性库 请
  • 删除引导程序中标题图像中的细线

    我在标题 菜单中有带有 bootstrap 和 svg sprite 的基本代码 并且图标中有一条细细的灰色背景线 http codepen io anon pen dpzKoQ editors 1100 http codepen io a
  • 无法显示此文件的设计器,因为无法设计其中的任何类

    我们有以下共享组件 public class OurServiceBase System ServiceProcess ServiceBase 此类具有我们在所有下游服务中所需的功能 例如标准化执行调度和日志记录功能 在一个新项目中 我添加
  • 在打字稿中导入html模板

    我试图import我的 html 模板 以便 webpack 能够识别它们并在我构建时包含它们 webpack d 根据这个 GitHub 问题 https github com Microsoft TypeScript issues 27
  • 使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi

    我有一个 bash 脚本 可以通过 omxplayer 在 Raspberry Pi 上播放 mp3 文件 但无法控制本地 耳机 音量GUI 是否有一个命令CLI我可以在 bash 脚本中实现吗 我搜索了很多 但找不到这样的命令 Code