mpg123 - 播放 MPEG 1.0/2.0 Layer-1, -2, -3 音频文件
语法
mpg123 [ -tscvqy01m24 ][ -b size ][ -k num ][ -n num ][ -f factor ][ -r rate ][ -g gain ][ -a dev ][ -o s | -o h | -o l ][ -d n ][ -h n ][ -p proxy ][ -@ file ] file ... | URL ... | -
描述
mpg123 从一个或多个 文件 或者 URL 读取MPEG-1/2音频比特流 (如果指定 `-' 选项, 则从标准输入读取), 然后使用音频设备进行播放(默认), 或将解码结果送 到标准输出上.
选项
mpg123 接收传统的POSIX风格的单字母选项, 也接收GNU风格的长单词选项. 这两 种选项分别以 `-' 和 "--" 开头.
- -t, --test
- 测试模式. 对音频流进行解码, 但不输出.
- -s, --stdout
- 将解码结果送到标准输出上, 而不使用音频设备进行播放. 如果 mpg123 不支持你的音频硬件, 你就可以试试这一选项, 这时, mpg123 以本机 字节顺序(host byte order)输出16比特的立体声线性PCM(脉冲编码调制) 音频裸数据(没有数据头).
- -c, --check
- 对每一帧进行滤波器越界检查, 如发生则报告之.
- -v, --verbose
- 播放时显示更多信息, 比如显示当前正在解码的帧号.
- -q, --quiet
- 安静模式. 不显示诊断信息.
- -y, --resync
- 如果输入文件发生错误, 则重新进行同步并继续解码. 另外, 对那些文件 头损坏的MPEG文件, 通常 mpg123 会拒绝播放并显示 ' Illegal header', 但如果指定本选项, mpg123 会试图从损坏的文件头中恢复并进行播放. 小心: 损坏的MPEG文件在播放到损坏处时可能出现尖利刺耳的噪声, 如果 音量过大, 可能损坏扬声器.
- -0, --single0; -1, --single1
- 只对0(左) 声道或者1(右) 声道进行解码. 这两个选项只对立体声的MPEG 音频流有效.
- -m, --singlemix
- 将两个声道混音. 此选项只对MPEG Layer-3的立体声音频流有效, 并可比完全立体声解码节省一些 CPU时间.
- -2, --2to1; -4, --4to1
- 将输出流的采样率将低至标准的1/2 (22kHz) 或者1/4 (11kHz). 使用这两个选项可以减少一些CPU的负荷, 但是声音质量会下降(至少使用11kHz 采样率时会很难听).
- -b size, --buffer size
- 用 size 指定输出缓冲区的大小, 单位为千字节. 使用此选项通常可以避 免由频繁的系统操作造成的声音输出时断时续的现象. size 的值小于 300时就没什么意义了, 建议至少取1024(即使用1Mb的缓冲区, 可以缓冲相当于6秒钟的音频数据). size 的默认值为0, 即不进行输出缓冲.
- -k num, --skip num
- 跳过前 num 帧. 不指定此选项时, 默认从第1帧开始解码.
- -n num, --frames num
- 只对前 num 帧进行解码. 不指定此选项时, 默认对整个音频流进行解码.
- -f factor, --scale factor
- 改变缩放因子 factor 的值(默认值为32768).
- -r rate, --rate rate
- 设置采样率 rate (默认为自动设置). 使用这一选项后, mpg123 会自动 将速率转换成不依赖于MPEG流速率的一个恒定比特率. 此选项应该和 --stereo 或 --mono 联合起来使用.
- -g gain, --gain gain
- 设置音频硬件输出增益 gain (默认为保持不变).
- -a dev, --audiodevice dev
- 指定音频设备. 默认的音频设备与系统配置有关(通常是 /dev/audio 或 /dev/dsp ), 如果系统中有多个音频设备而默认的又不是你想用的那个, 就可使用本选项.
- -o s, --speaker
- 将声音导出到主板上的扬声器上.
- -o h, --headphones
- 将声音导出到耳机连接器上.
- -o l, --lineout
- 将声音导出到Line-Out连接器上.
- -d n, --doublespeed n
- 每 n 帧播放一帧. 这会使MPEG流的播放速度提高为正常速度的 n 倍, 从而可以产生特殊的声音效果. 此选项可以和 --halfspeed 选项组合使 用, 实现类似每4帧播放3帧(译者注: 指定-d 4 -h 3)的效果. 如果使用 此选项, 不要指望声音质量会很好.
- -h n, --halfspeed n
- 将每帧都播放 n 遍. 这会使MPEG流的播放速度降低为正常速度的 1/n, 从而可以产生特殊的声音效果. 此选项可以和 --doublespeed 选项组合 使用, 实现类似每3帧播放2帧(译者注: 指定-h 2 -d 3)的效果. 如果使 用此选项, 不要指望声音质量会很好.
- -p URL | none, --proxy URL | none
- 指定 proxy 作为HTTP请求的代理. 指定的格式应是一个完整的URL (如"http://host.domain:port/"), 但是可以省略前缀"http://", 端口 号port(默认的端口为80)和末尾的'/'. 如果指定为 none ,则不使用代 理, 直接向服务器请求文件. 更多细节请看 "HTTP 支持" 小节.
- -u auth, --auth auth
- 如果通过HTTP下载文件时服务器要求提供认证信息, 则由 auth 指定, 其 格式为 "用户名:密码" (不包括引号).
- -@ file, --list file
- 从 file 指定的文件中读取将要播放的MPEG音频流所在的文件和(或)URL, 如果命令行中还指定了其它的文件和(或)URL, 也将其包含进播放清单. 如果指定 file 为 `-'而非一个普通的文件名, mpg123 将从标准输入读 取文件名和(或)URL, 或者读取一个指向播放清单文件的URL. 注意: -@ 选项只能使用一次(如果多处指定, 则只有最后一个有效).
- -z, --shuffle
- 随机播放. 按随机的顺序播放命令行和清单文件中指定的音频文件.
- --stereo
- 强制立体声输出.
- --reopen
- 强制在播放完一个文件后重新打开音频设备.
- --8bit
- 强制8比特输出.
- -Z, --random
- 完全随机播放. (译者注: 与 --shuffle 选项的区别是, 指定本选项有可能重复多次播放同一文件)
操作数
mpg123 支持下面的操作数:
- file
- 指定输入文件的路径. 这些文件必须包含合法的MPEG-1/2音频 Layer-1, Layer-2或Layer-3的比特流. 如果指定为'-', 将从标准输入读取MPEG数 据. 进一步, 如果以"http://"开头, 则认为指定了一个 URL (请看下一 节).
HTTP 支持
除了能从普通文件和标准输入读取MPEG音频流, mpg123 还支持通过HTTP协 议从万 维网(WWW)上获取由URL(统一资源定位符)指定的文件. 一个URL是一个以 "http://" 为前缀的字符串, 当 mpg123 识别到这个前缀, 它会尝试开启一个 到相应服务器的连接, 接着获取相应的文件并进行解码播放. 很多时候, 从WWW缓存, 或所谓的网络代理比直接从服务器更容易获取文件. 为利 用这种便利, mpg123 会依次检查 MP3_HTTP_PROXY, http_proxy和HTTP_PROXY, 这三个环境变量是否被设置, 并将第一个被设置的变量的值作为指定的代理. 如 果你需要自己指定另外的代理, 可以使用 -p 命令行选项 (请看"选项"小节). 使用 -p none 选项将不使用任何代理而直接连接服务器, 即使前面所述的三个 变量被设置. 值得注意的是, 为了能从一个WWW服务器获取并流畅地播放MPEG音频文件, 必须有 足够快的网络连接. 例如, 为了能播放速率为128kbit/s的MPEG文件, 所需的网络带宽至少应该是128kbit/s加上网络协 议本身的传输开销. 如果网络常发生 短时中断, 可以试试用 -b 选项指定一个缓冲区. 如果你所在的网络根本无 法达到实时传输MPEG音频文件所需的带宽, 就只好使用 lynx(1) 之类的软件先将 文件下载到本地硬盘上再进行播放了. 如果服务器要求认证, 可以使用 -u auth 选项(请看"选项"小节)指定用户名和密 码.
中断
任何时候按Ctrl-C键都能中断 mpg123 的运行. 如果有多个文件在播放, Ctrl-C 会终止当前文件的播放并开始播放下一个文件, 这种情况下, 如果你想终止整 个程序的运行, 必须连按两次Ctrl-C (在约一秒钟之内). 注意, 按了Ctrl-C之后声音也许不会马上消失, 这是因为系统的音频设备缓冲了 一部分数据. 这种延迟随系统不同而不同, 但通常都不超过1到2秒.
相关说明
lynx(1), sox(1), intro(1)
注意
MPEG音频解码, 特别是Layer-3的解码, 需要CPU进行大量的运算. 为能达到实时解码, 你的计算机至少应该配备Pentium, Alpha, SuperSparc或性能相当的处 理器. 同时你可以使用 -singlemix 选项进行单声道解码, 对Layer-3, 这多少 能减少一点CPU负荷. 此外你也可以考虑使用 -2 和 -4 选项. 如果这些方法都不奏效, 试试用 -s 选项将解码结果送到标准输出上并将其定向 到一个文件中, 然后再用适当的工具播放这个文件. 你也许会用到 sox(1) 这个 工具, 它能将文件转换成你的音频播放器所用的格式. 还有一点就是 mpg123 总是输出16比特的立体声数据(如果指定 -0或-1 选项中 的一个, 立体声两个声道的数据是相同的). 如果系统硬件要求其它格式, 比如8 比特的单声道的数据, 同样可以使用 sox(1) 进行转化. 如果你的系统本身足够快, 能够进行实时解码, 只是在系统负荷较重时(如定时任务, 用户远程登录或启动`大'程序等)出现停顿, 你应该用 -b 选项指定一个不小 于1000K字节的缓冲区.
BUGS
- 已知的BUG和局限性:
- MPEG-2, Layer-1和-2未经 测试. 可能不能工作.(Layer-3应该能工作.)
不提供对自由格式的音频流的支持.
对Layer-1的支持未经 严格测试.
未进行CRC错误校验.
没有对DEC Digital Unix, Ultrix 和 IBM
AIX平台上的音频硬件提供支 持, 因此在这些平台上必须使用 -s 选项.
mpg123 - 播放 MPEG 1.0/2.0 Layer-1, -2, -3 音频文件的更多相关文章
- Python开发【Tornado】:搭建文件下载服务、音频文件播放
Tornado 如何做文件下载 要求:浏览器输入url地址,直接弹窗提示下载 Tornado服务端,搭建文件下载服务 #!/usr/bin/env python # -*- coding:utf-8 ...
- [ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方
一个视频要循环播放,通常的办法都是播放完后再重新播放,但是不可避免的播放结束和重新开始播放这个时间点上会有停顿,如何解决这个问题,说个偏方吧! package com.views { import f ...
- 使用openal与mpg123播放MP3,附带工程文件(转)
使用openal与mpg123播放MP3,附带工程文件 使用openal和mpg123播放MP3文件 使用静态编译,相关文件都在附件里 相关工程文件:openal_mpg123_player.7z 使 ...
- Angular 2.0 从0到1 (七)
第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...
- OpenOCD 0.9.0 release
OpenOCD 0.9.0 release May 18th, 2015 I’m happy to announce the release of OpenOCD version 0.9.0, fin ...
- ubuntu18.04下搭建深度学习环境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原创】【学习笔记】
PC:ubuntu18.04.i5.七彩虹GTX1060显卡.固态硬盘.机械硬盘 作者:庄泽彬(欢迎转载,请注明作者) 说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9 ...
- ubuntu16.04+cuda8.0+cudnn5.0+caffe
ubuntu安装过程(硬盘安装)http://www.cnblogs.com/zhbzz2007/p/5493395.html“但是千万不要用麒麟版!!!比原版体验要差很多!!!”开关机的时候电脑最上 ...
- 微软Visual Studio Code 0.8.0发布,新增多种主题
月30日,Build 开发者大会上,正式宣布了 Visual Studio Code 项目;并将其定义为:一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和 ...
- Ubuntu14.04 64位机上安装cuda8.0 cudnn5.0操作步骤 - 网络资源是无限的
查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...
随机推荐
- centos7安装nvidia驱动
1. disable UEFI security boot! 2.添加 ELRepo 源: Import the public key: rpm --import https://www.elrepo ...
- java常用加密算法
常用加密算法的Java实现(一) ——单向加密算法MD5和SHA 日期:2014/6/1 文:阿蜜果 1.Java的安全体系架构 1.1 Java的安全体系架构介绍 Java中为安 ...
- Linux centos 解决"不在 sudoers 文件中。此事将被报告"的问题
第一部分讲解如何从普通用户到root用户 网上看了很多,其实就是执行 su root ,然后输入当前用户密码,这个时候可能报错 这个问题不大,执行一下提示的语句: abrt-auto-reportin ...
- .NetCore2.0项目之ABP+Vue(IView框架)单页应用之路,启动
首先很久没有好好静下心来做点东西了,一直用忙碌做借口,实际还是懒,今天决定动一动. 第一步,下载自己的项目模板 首先vue项目国内的暂时还没有,要登录https://aspnetboilerplate ...
- 【MM系列】SAP 客户增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 客户增强 前言部分 大家 ...
- 【Linux开发】将cmd中命令输出保存为TXT文本文件
将cmd中命令输出保存为TXT文本文件 在网上看到一篇名为:"[转载]如何将cmd中命令输出保存为TXT文本文件" 例如:将Ping命令的加长包输出到D盘的ping.txt文本文件 ...
- linux/work
0.切换用户 //默认root用户是无固定密码的,并且是被锁定的,如果想给root设置一个密码 sudo passwd root //输入密码 & 确认密码 //切换root用户 su roo ...
- selenium:css_selector定位详解(css selector和xpath的比较)
selenium使用css selector和xpath的比较 selenium提供的定位方式(常用) ID NAME CLASS CSS SELECTOR XPATH 推荐的定位方式的优先级 优 ...
- (三)认识twisted reactor
一.reactor是单线程模型,简单粗暴,也就是说网络IO和我们的业务逻辑一般是在一个线程里,其中网络IO通过event loop的方式去异步执行,效率也很高.看下官网的这幅图,比较清晰 twiste ...
- SQL Server之索引解析(二)
1.堆表 堆表通过IAM连接一起,查询时全表扫描. 1.1 非聚集索引 结构 叶子节点数据结构:行数据结构+Rid(8字节) 中间节点数据结构: (非聚集非唯一索引)行数据结构+Page(4)+2+ ...