Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >libmad学习进阶6------madplay的使用 总结

libmad学习进阶6------madplay的使用 总结

作者头像
用户4148957
发布于 2022-06-14 00:17:47
发布于 2022-06-14 00:17:47
1.5K0
举报
文章被收录于专栏:C/C++与音视频C/C++与音视频

1.先安装 1.madplay-0.15.2b.tar.gz 2.libmad-0.15.1b.tar.gz 3 libid3tag-0.15.1b.tar.gz  方法是:./configure  sudo make sudo make install prefix = /usr/local  中prefix 为make install的安装目录,默认在/usr/loacl 如果希望安装到其他目录 ./configure --prefix=/安装目录路径 4.执行madplay 播放mp3 先加载动态库 :如 export LD_LIBRARY_PATH=/usr/local/lib 播放mp3     ./madplay 1.mp3 2.mp3 3.mp3  madpay功能很强求,可以实现多个节目循环播放,快进拖动播放,暂停,恢复,支持wav等格式输出等。 目前madplay还不支持网络播放.不过mp123支持网络播放。 madplay使用方法: 传入打印既可以使用短传入(-n ),也可以使用长传入(--abc),二者等效,下面只讲短传入 -v  获取播放时间 -q  不存在任何打印,但现实警告 -Q  不存在任何打印 --downsample  只采用一半数据 -i  忽略CRC校验错误 -o PATH/xx.wav 可以用来转码,将mp3转为wav   也可以是其他格式,见说明;.raw  表示是元素pcm,.hex等 -a 开启衰减音量 ,增加音量,衰减系统为-175~+18    (当然通过键盘+ —也可以调整音量) -A 同-a -1 -2 -m -S 分别指左声道,右声道,双声道,立体声 -s  用于seek播放 如:0:1:20:11 ,seek到1小时,2分钟,11秒时开始播放 -t  用于播放时间现在  0:1:20:11 ,播放到1小时,2分钟,11秒时就停止 -z  用于随机播放列表 -r, --repeat[=MAX]   循环播放无限次或Max次  --tty-control            enable keyboard controls  默认是使能热键 --no-tty-control         disable keyboard controls 热键使用 下一首歌曲; f,或ctrl+n 或者> 上一首歌曲  b ,或ctrl+p 或者< 退出:q, Q,获取ctrl+c 获取播放状态信息: i  ? 调节音量: - + _ = 暂停恢复:p 停止:s Usage: ./madplay [OPTIONS] FILE [...] Decode and play MPEG audio FILE(s). Verbosity:   -v, --verbose                show status while decoding   -q, --quiet                  be quiet but show warnings   -Q, --very-quiet             be quiet and do not show warnings       --display-time=MODE      use default verbose time display MODE                                  (remaining, current, overall) Decoding:       --downsample             reduce sample rate 2:1   -i, --ignore-crc             ignore CRC errors       --ancillary-output=PATH  write ancillary data to PATH Audio output:   -o, --output=[TYPE:]PATH     write output to PATH with format TYPE (below)   -b, --bit-depth=DEPTH        request DEPTH bits per sample   -R, --sample-rate=HERTZ      request HERTZ samples per second   -d, --no-dither              do not dither output PCM samples       --fade-in[=DURATION]     fade-in songs over DURATION (default 0:05)   -a, --attenuate=DECIBELS     attenuate signal by DECIBELS (-)   -a, --amplify=DECIBELS       amplify signal by DECIBELS (+)   -A, --adjust-volume=DECIBELS override per-file volume adjustments   -G, --replay-gain[=PROFILE]  enable Replay Gain volume adjustments using                                  PROFILE (radio, audiophile) Channel selection:   -1, --left                   output first (left) channel only   -2, --right                  output second (right) channel only   -m, --mono                   mix left and right channels for monaural output   -S, --stereo                 force stereo output Playback:   -s, --start=TIME             skip to begin at TIME (HH:MM:SS.DDD)   -t, --time=DURATION          play only for DURATION (HH:MM:SS.DDD)   -z, --shuffle                randomize file list   -r, --repeat[=MAX]           play files MAX times, or indefinitely       --tty-control            enable keyboard controls       --no-tty-control         disable keyboard controls Miscellaneous:   -T, --show-tags-only         show ID3/encoder tags only (do not decode)   -V, --version                display version number and exit       --license                show copyright/license message and exit   -h, --help                   display this help and exit Supported output formats:   cdda    CD audio, 16-bit big-endian 44100 Hz stereo PCM (*.cdr, *.cda)   aiff    Audio IFF, [16-bit] PCM (*.aif, *.aiff)   wave    Microsoft RIFF/WAVE, [16-bit] PCM (*.wav)   snd     Sun/NeXT audio, 8-bit ISDN mu-law (*.au, *.snd)   raw     binary [16-bit] host-endian linear PCM   hex     ASCII hexadecimal [24-bit] linear PCM

  null    no output (decode only)

实际项目中可以将该应用封装成一个库(将main函数封装成一个接口)提供给上层用,而热键动作,可以创建一个读按键线程,或者另一个播放器发消息来控制动作,完成对播放器的控制。输出要根据平台不同,将pcm摔倒不同驱动中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mpg123学习进阶2------mp123的使用总结
mp123  移植总结 1../configure 选项  配置环境,产生makefile。这里是在pc默认为gcc和oss架构驱动,如果是其他平台或其他架构驱动,要修改makefile或./configure 在选项中传入 2.sudo make  在src目录下产生一个mpg123镜像就是一个可以执行的镜像。 3.sudo make install 可以将mp123生成的动态库安装到相应的目录下。默认在/usr/local/lib.可以在./configure是通过--prefix来修改路径 4.跑mp123demo   ./mpg123 1.mp3 2.mp3 3.mp3    ./mpg123 http//192.168.1.108/myserver/love.mp3   注意mpg123 除了支持多列表本地播放,还支持网络播放,还支持wav等格式输出。   使用方法;   -v 打印播放时间                             -q  不打印标题,默认是打印的   -t  测试程序,没有输出                     -s  解码后的pcm输出到屏幕(默认是送到声卡驱动播放)   -w  将播放的pcm打包成wav输出,而不是播放   -k n skip多少帧播放,用于seek用              -n n  只解码多少帧   -c 测试过,没看出来什么效果                  -y 显示同步错误   -b 改变输出buf的大小(不常用)               -f  10000 改变声音系数,可以用来调节声音大小    -os,-ol,-oh  output to built-in speaker,line-out connector,headphones    -d k  每隔k帧播放一次,用于跳帧,实际当中可以用来快进快退       -C  产生热键校园: s 应用pause ,pp用于换房播放 q用于退出    详细使用说明:    usage: lt-mpg123 [option(s)] [file(s) | URL(s) | -] supported options [defaults in brackets]:    -v    increase verbosity level       -q    quiet (don't print title)    -t    testmode (no output)           -s    write to stdout    -w <filename> write Output as WAV file    -k n  skip first n frames [0]        -n n  decode only n frames [all]    -c    check range violations         -y    DISABLE resync on errors    -b n  output buffer: n Kbytes [0]    -f n  change scalefactor [32768]    -r n  set/force samplerate [auto]    -os,-ol,-oh  output to built-in speaker,line-out connector,headphones                                         -a d  set audio device    -2    downsample 1:2 (22 kHz)        -4    downsample 1:4 (11 kHz)    -d n  play every n'th frame only     -h n  play every frame n times    -0    decode channel 0 (left) only   -1    decode channel 1 (right) only    -m    mix both channels (mono)       -p p  use HTTP proxy p [$HTTP_PROXY]    -@ f  read filenames/URLs from f     -T get realtime priority    -z    shuffle play (with wildcards)  -Z    random play
用户4148957
2022/06/14
1.3K0
让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24 -bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。
杨永贞
2020/08/04
2.8K0
HarmonyOS学习路之开发篇—多媒体开发(音频开发 一)
HarmonyOS音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音频采集、音量管理和短音播放等。
爱吃土豆丝的打工人
2023/10/15
4000
【FFmpeg】ffmpeg 命令行参数 ③ ( ffmpeg 音频参数解析 | 设置音频帧数 | 设置音频码率 | 设置音频采样率 | 设置音频通道数 | 设置音频编解码器 | 设置音频过滤器 )
在 ffmpeg 命令中 , -aframes 参数用于设置 要输出的 音频帧 帧数 , 通过该参数 设置 一个 指定的 音频帧数 , 输出完 该 指定音频帧数 的 音频帧 之后 , ffmpeg 将会停止处理音频流 , 通过该参数 可以 精确控制音频输出长度 ;
韩曙亮
2024/02/29
5.2K0
【FFmpeg】ffmpeg 命令行参数 ③ ( ffmpeg 音频参数解析 | 设置音频帧数 | 设置音频码率 | 设置音频采样率 | 设置音频通道数 | 设置音频编解码器 | 设置音频过滤器 )
ffmeg_facet的意思
由于底层识别使用的是pcm,因此推荐直接上传pcm文件。如果上传其它格式,会在服务器端转码成pcm,调用接口的耗时会增加。
全栈程序员站长
2022/11/09
2K0
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
打开图形界面之后,按下F6,即可查看系统默认的声卡。在我的电脑上插了一个USB摄像头,带音频输入,在下图里就能看到两个声卡。退出图形界面按下Esc按键(键盘左上角)。
DS小龙哥
2022/01/12
23.6K1
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
FFmpeg进行音频的解码和播放
上一篇FFmpeg 内容介绍 音视频解码和播放 介绍了FFmpeg进行解码的常见函数和,解码的过程。相关的函数介绍忘记了,可以参考上一篇。
包子388321
2020/07/27
6.6K2
FFmpeg常用命令行讲解及实战一
上图红框内为编译选项,编译选项支持编解码的格式、封装的格式及网络协议等等第三方包。其中比较常用的:
Gnep@97
2023/11/21
1.8K0
FFmpeg常用命令行讲解及实战一
FFmpeg推流命令总结
今天考虑一个mcu混合的实现,也就是接收多路过来的rtp流,然后转发出去一路的rtmp流,使用ffmpeg测试做的记录,刚开始一直通过ffmpeg推送的文件流不能满足要求,还是对参数配置不熟悉;
呱牛笔记
2023/05/02
6.8K0
FFmpeg推流命令总结
OSS--跨平台的音频接口简介
OSS(Open Sound System)是unix平台上一个统一的音频接口。以前,每个Unix厂商都会提供一个自己专有的API,用来处理音频。这就意味着为一种Unix平台编写的音频处理应用程序,在移植到另外一种Unix平台上时,必须要重写。不仅如此,在一种平台上具备的功能,可能在另外一个平台上无法实现。但是,OSS出现以后情况就大不一样了,只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。因此,OSS提供了源代码级的可移植性。
知忆
2021/06/11
1.4K0
Android多媒体之SoundPool+pcm流的音频操作
零、前言 今天比较简单,先理一下录制和播放的四位大将 再说一下SoundPool的使用和pcm转wav 讲一下C++文件如何在Android中使用,也就是传说中的JNI 最后讲一下变速播放和变调播放 ---- 一、AudioRecord和MediaRecorder,AudioTrack和MediaPlayer 0.到现在接触了四个类: 第一天:AudioRecord(录音)、AudioTrack(音频播放) 第二天:MediaPlayer(媒体播放器--音频部分) 第三天:MediaR
张风捷特烈
2019/02/25
2.9K0
Android多媒体之SoundPool+pcm流的音频操作
音视频入门之音频采集、编码、播放
今天我们学习音频的采集、编码、生成文件、转码等操作,我们生成三种格式的文件格式,pcm、wav、aac 三种格式,并且我们用 AudioStack 来播放音频,最后我们播放这个音频。
Android技术干货分享
2019/04/18
3.7K0
Android音频播放(本地/网络)绘制数据波形,根据特征有节奏的改变颜色
上一期刚刚掀完桌子没多久<a href="http://www.jianshu.com/p/2448e2903b07">《Android MP3录制,波形显示,音频权限兼容与播放》</a>,就有小伙伴问我:“一个音频的网络地址,如何根据这个获取它的波形图?”··· WTF(ノಠ益ಠ)ノ彡┻━┻,那一瞬间那是热泪盈眶啊,为什么我就没想到呢···反正肯定不是为了再水一篇文章就对了<( ̄︶ ̄)>。 </p> <a href="https://github.com/CarGuo/RecordWave">我是DEMO
GSYTech
2018/08/22
3.7K0
Android音频播放(本地/网络)绘制数据波形,根据特征有节奏的改变颜色
音视频八股文(3)--ffmpeg常见命令(2)
* 播放本地 MP4 视频文件 `test.mp4` 的命令,从第 2 秒位置开始播放,播放时长为 10 秒,并且在窗口标题中显示 "test time":
福大大架构师每日一题
2023/04/22
2.1K0
Convert m4a/mp3 to 8bit WAV using ffmpeg
By HKL, on Tuesday 2023-08-01 12:44, tagged: 🏷️ffmpeg 🏷️Music 🏷️ChatGPT
hiplon
2023/10/18
3300
libmad学习进阶3-----基于oss音频驱动架构的一个mp3播放器
以上就是通过libmad将mp3先解码成pcm,然后将pcm直接扔到/ dev/dsp音频设备中,但dsp音频设备属于oss架构,已经逐渐被alsa驱动取代,后续会介绍基于alsa驱动架构的mp3播放器
用户4148957
2022/06/14
7120
波形音频(WAVE)底层接口的学习与使用
在WINDOWS下,音频函数有多种类型,如MCI、多媒体OLE控制、高级音频等,使用方法都比较简单。 但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的输入和输出。 因为低级音频函数可直接与音频驱动程序交互,通过窗口消息或回调(CALLBACK)函数来管理音频数据块的记录和播放,控制非常灵活。重要的一点是,低级音频函数为我们提供了一个设备无关的接口。   Header: Declared in Mmsystem.h; include Wind
_gongluck
2018/03/08
5.4K0
波形音频(WAVE)底层接口的学习与使用
FFMPEG音视频开发指南(一)
FFmpeg是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图 片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件, 早已经被各行各业的不同公司所广泛使用。
DS小龙哥
2022/10/06
3.3K0
FFMPEG音视频开发指南(一)
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
博客源码下载 : https://download.csdn.net/download/han1202012/89734548
韩曙亮
2024/09/17
9210
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
使用 pocketsphinx 做中文语音识别时报错 ERROR: Input audio file has sample rate [44100], but decoder expects [...
今天在使用 pocketsphinx_continuous 识别中文 wav 文件是,报如下错误:
kongxx
2019/01/03
8560
推荐阅读
mpg123学习进阶2------mp123的使用总结
1.3K0
让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
2.8K0
HarmonyOS学习路之开发篇—多媒体开发(音频开发 一)
4000
【FFmpeg】ffmpeg 命令行参数 ③ ( ffmpeg 音频参数解析 | 设置音频帧数 | 设置音频码率 | 设置音频采样率 | 设置音频通道数 | 设置音频编解码器 | 设置音频过滤器 )
5.2K0
ffmeg_facet的意思
2K0
Linux下使用alsamixer配置系统默认的声卡设备(默认音频输出设备、输入设备、系统音量)
23.6K1
FFmpeg进行音频的解码和播放
6.6K2
FFmpeg常用命令行讲解及实战一
1.8K0
FFmpeg推流命令总结
6.8K0
OSS--跨平台的音频接口简介
1.4K0
Android多媒体之SoundPool+pcm流的音频操作
2.9K0
音视频入门之音频采集、编码、播放
3.7K0
Android音频播放(本地/网络)绘制数据波形,根据特征有节奏的改变颜色
3.7K0
音视频八股文(3)--ffmpeg常见命令(2)
2.1K0
Convert m4a/mp3 to 8bit WAV using ffmpeg
3300
libmad学习进阶3-----基于oss音频驱动架构的一个mp3播放器
7120
波形音频(WAVE)底层接口的学习与使用
5.4K0
FFMPEG音视频开发指南(一)
3.3K0
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
9210
使用 pocketsphinx 做中文语音识别时报错 ERROR: Input audio file has sample rate [44100], but decoder expects [...
8560
相关推荐
mpg123学习进阶2------mp123的使用总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档