【秒懂音视频开发】09 您所在的位置:网站首页 pcm视频怎么播放不出来声音 【秒懂音视频开发】09

【秒懂音视频开发】09

2024-05-29 04:42| 来源: 网络整理| 查看: 265

原文地址:

1. ffplay

可以使用ffplay播放《音频录制02_编程》中录制好的PCM文件,测试一下是否录制成功。

播放PCM需要指定相关参数:

ar:采样率ac:声道数f:采样格式 s16le:PCM signed 16-bit little-endian更多PCM的采样格式可以使用命令查看 Windows:ffmpeg -formats | findstr PCMMac:ffmpeg -formats | grep PCM ffplay -ar 44100 -ac 2 -f s16le out.pcm

接下来演示一下,如何通过编程的方式播放PCM数据。

2. SDL

ffplay是基于FFmpeg、SDL两个库实现的。通过编程的方式播放音视频,也是需要用到这2个库。FFmpeg大家都已经清楚了,比较陌生的是SDL。

SDL Logo

2.1 简介

SDL(Simple DirectMedia Layer),是一个跨平台的C语言多媒体开发库。

支持Windows、Mac OS X、Linux、iOS、Android提供对音频、键盘、鼠标、游戏操纵杆、图形硬件的底层访问很多的视频播放软件、模拟器、受欢迎的游戏都在使用它目前最新的稳定版是:2.0.14API文档:wiki 2.2 下载

SDL官网下载地址:download-sdl2。

SDL下载

2.2.1 Windows

由于我们使用的是MinGW编译器,所以选择下载SDL2-devel-2.0.14-mingw.tar.gz。

解压后的目录结构如下图所示,跟FFmpeg的目录结构类似,因此就不再赘述每个文件夹的作用。

Windows目录结构

2.2.2 Mac

从brew官网可以看得出来:之前执行brew install ffmpeg时,已经顺带安装了SDL,安装目录是:/usr/local/Cellar/sdl2。

Mac目录结构

如果没有这个目录,就执行brew install sdl2进行安装即可。

2.3 HelloWorld

来个简单的SDL HelloWorld吧,打印一下SDL的版本号。

2.3.1  .pro文件

win32 {FFMPEG_HOME = F:/Dev/ffmpeg-4.3.2SDL_HOME = F:/Dev/SDL2-2.0.14/x86_64-w64-mingw32}macx {FFMPEG_HOME = /usr/local/Cellar/ffmpeg/4.3.2SDL_HOME = /usr/local/Cellar/sdl2/2.0.14_1}INCLUDEPATH += $${FFMPEG_HOME}/includeLIBS += -L$${FFMPEG_HOME}/lib \-lavdevice \-lavcodec \-lavformat \-lavutilINCLUDEPATH += $${SDL_HOME}/includeLIBS += -L$${SDL_HOME}/lib \-lSDL2

在Windows环境中,还需要处理一下dll文件,参考:《dll文件处理》。

2.3.2 cpp代码

#include SDL_version v;SDL_VERSION(&v);// 2 0 14qDebug() pullLen;buffer->len -= buffer->pullLen;} 3.6 释放资源 // 关闭文件file.close();// 关闭音频设备SDL_CloseAudio();// 清理所有初始化的子系统SDL_Quit();


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有