一.pcm文件准备

找一个mp3文件,然后用FFmpeg命令将它转换成pcm文件,这里使用NorwayForest-500.mp3(挪威的森林-伍佰)。
首先要使用ffmpeg查看mp3文件的一些信息,比如采样率、声道数等。

ffmpeg -i NorwayForest-500.mp3


从上图所示的信息,可以看到mp3文件采样率是44100Hz,双声道,在转换成pcm文件时要用到上面的信息。

ffmpeg -i NorwayForest-500.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 44100 NorwayForest-500.pcm

其中:
-acodec pcm_s16le 指定编码器
-f s16le 指定文件格式,是大端模式还是小端模式
-ac 2 指定通道数,2 代表双通道
-ar 44100 指定采样率,这里是 44100 Hz
在转换时要根据原文件的采样率和声道数进行转换,否则转换后的pcm文件播放声音不对,下面用ffplay播放一下。

ffplay -ar 44100 -channels 2 -f s16le -i NorwayForest-500.pcm

二.SDL音频播放

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数&#

基于FFmpeg的视频播放器之九:使用SDL2播放音频相关推荐

  1. 基于FFmpeg的视频播放器之十五:录像

    一.效果 1.录制视频 2.播放录制的视频 二.原理 将上一篇基于FFmpeg的视频播放器之十四:remuxing中的代码直接用于录像是行不通的,会存在下列问题. 1.因为可以从任意时间点开始录制,此 ...

  2. 基于FFmpeg的视频播放器之十一:倍速播放

    倍速播放通常有两种方式:一种是变速变调,另一种是变速不变调 一.变速变调 这种方法的原理就是音频重采样.比如说44100Hz采样率的音频,每秒钟有44100个采样点,如果我们要加速为200%播放,最简 ...

  3. 基于FFmpeg的视频播放器之十六:完结

    学习FFmpeg个人认为是不需要买书的,只需利用好下面四种资源 1.优秀的博客,比如雷神的博客:https://blog.csdn.net/leixiaohua1020 2.FFmppeg的exanm ...

  4. 基于FFmpeg的视频播放器之十二:seek

    seek是播放器的常用操作,也是衡量播放器好坏的重要标志之一. 一.效果 下面是对正在播放的4K视频执行seek操作 二.原理 1.av_seek_frame FFmpeg提供了av_seek_fra ...

  5. 基于FFmpeg的视频播放器之十三:抓图

    抓图的话当然可以用QImage来实现,但是得先把yuv图像转成图像再通过QImage保持,比较麻烦.这里直接通过ffmpeg从视频流中抓取图片,也就是在yuv渲染之前抓取. 整个takeSnapsho ...

  6. 基于libVLC的视频播放器之九:添加抓图和录像功能

    一.效果 抓图和录像的路径或文件名都可以设置.这里为了测试方便,都用的固定值. 如果编译出的源码提示: libvlc_media.h:368: error: C2065: "libvlc_m ...

  7. 从零开始学习音视频编程技术(七) FFMPEG Qt视频播放器之SDL的使用

    从零开始学习音视频编程技术(七) FFMPEG Qt视频播放器之SDL的使用 原文地址:http://blog.yundiantech.com/?log=blog&id=10 前面介绍了使用F ...

  8. 从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像

    从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像 原文地址:http://blog.yundiantech.com/?log=blog&id=9 前面讲解了如何用FFM ...

  9. 基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

    此篇是 使用VLC浏览器插件播放RTSP流的姊妹篇. 一.直接使用libVLC libVLC是VLC media player多媒体框架的核心引擎和接口,开发者使用它能轻松的创建大量具有VLC特性的应 ...

  10. QT软件开发-基于FFMPEG设计视频播放器-解码音频(三)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

最新文章

  1. python元类编程_python元类编程
  2. Sicily 6768. Log Books 解题报告
  3. 【MyBatis框架】查询缓存-一级缓存原理
  4. c++读取文件夹下特定文件
  5. 安卓seekbar 怎么判断正负_如果没有万用表,我们要怎么区分电源DC线的正负极呢...
  6. C++Primer第5版学习笔记(一)
  7. 在idea或eclipse软件下配置Tomcat
  8. K3CLOUD表关联
  9. android7.0电话录音,芒果录音手机版-芒果通话录音app(电话通话录音软件)下载7.3.2官方安卓版-西西软件下载...
  10. 基于Sobel算法的边缘检测简介
  11. ionic的用法和作用
  12. Glide使用心得——加载图片出现浅绿色背景问题和Glide加载完成的监听设置
  13. 从MWC到AWE,中国柔性黑科技为消费电子产业撒下蒲公英的种子
  14. 三角形周长最短问题_最短路径问题之三角形的周长最小
  15. python对图片颜色校正,使用Python PIL更改图像色调
  16. Apple Silicon M1 MacBook Air上手详细评测M1的强大!
  17. 抖音头条小程序常见的问题
  18. 通信信号处理的一些基本常识
  19. spring cloud gateway实现https访问
  20. Elasticsearch(022):es常见的字段映射类型之地理形状类型(geo_shape、多边的复杂的地址形状)

热门文章

  1. Debian 10 使用 rz sz 命令
  2. Spring中注解实现原理
  3. 持续交付+springboot+k8s
  4. 快手短视频去水印方法
  5. 简约却不简单的科学原理闲谈(A Talk:Principles with simplicity but complicacy)
  6. 微型计算机任务名称,任务五微型计算机的硬件组成.ppt
  7. 【Xilinx FPGA】vivado工具下载安装
  8. zabbix mysql安装配置_Zabbix安装图解教程 | 系统运维
  9. 点云应用——三维空间边界点排序+机器人轨迹引导(1)
  10. linux下载m3u8工具,m3u8命令行下载工具