侧边栏
首页代码

随笔分类 -  音视频基础学习

使用QT+FFmpeg 来学习音视频
摘要:本文将分别通过命令行、编程2种方式进行AAC编码实战,使用的编码库是libfdk_aac。 要求 fdk-aac对输入的PCM数据是有参数要求的,如果参数不对,就会出现以下错误: [libfdk_aac @ 0x7fa3db033000] Unable to initialize the encod 阅读全文
posted @ 2022-10-05 19:53 咸鱼Jay 阅读(275) 评论(0) 推荐(0) 编辑
摘要:本文来详细讲解一下:如何在Mac、Windows环境下成功编译FFmpeg。 目标 这里先提前说明一下,最后希望达到的效果: 编译出ffmpeg、ffprobe、ffplay三个命令行工具 只产生动态库,不产生静态库 将fdk-aac、x264、x265集成到FFmpeg中 x264、x265会在以 阅读全文
posted @ 2022-10-05 19:11 咸鱼Jay 阅读(336) 评论(0) 推荐(0) 编辑
摘要:AAC(Advanced Audio Coding,译为:高级音频编码),是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发的有损音频编码和文件格式。 对比MP3 AAC被设计为MP3格式的后继产品,通常在相同的比特率下可以获得比MP3更高的声音质量,是iPh 阅读全文
posted @ 2022-10-05 19:09 咸鱼Jay 阅读(354) 评论(0) 推荐(0) 编辑
摘要:采样格式 通过前面学习我们知道FFmpeg和SDL都有自己的采样格式的表达式,那么他们都表示什么意思呢? FFmpeg的采样格式的表达式: enum AVCodecID { ...... AV_CODEC_ID_PCM_S16LE = 0x10000, AV_CODEC_ID_PCM_S16BE, 阅读全文
posted @ 2022-10-05 17:58 咸鱼Jay 阅读(551) 评论(0) 推荐(0) 编辑
摘要:使用命令播放WAV 对于WAV文件来说,可以直接使用ffplay命令播放,而且不用像PCM那样增加额外的参数。因为WAV的文件头中已经包含了相关的音频参数信息。 ffplay in.wav 接下来演示一下如何使用SDL播放WAV文件。 初始化子系统 // 初始化Audio子系统 if (SDL_In 阅读全文
posted @ 2022-10-05 17:44 咸鱼Jay 阅读(157) 评论(0) 推荐(0) 编辑
摘要:播放器是无法直接播放PCM的,因为播放器并不知道PCM的采样率、声道数、位深度等参数。当PCM转成某种特定的音频文件格式后(比如转成WAV),就能够被播放器识别播放了。 本文通过2种方式(命令行、编程)演示一下:如何将PCM转成WAV。 WAV文件格式 在进行PCM转WAV之前,先再来认识一下WAV 阅读全文
posted @ 2022-10-05 13:43 咸鱼Jay 阅读(218) 评论(0) 推荐(0) 编辑
摘要:通过命令ffpay播放PCM 可以使用ffplay播放《08_音频录制02_编程》中录制好的PCM文件,测试一下是否录制成功。 播放PCM需要指定相关参数: ar:采样率 ac:声道数 f:采样格式,sample_fmts + le(小端)或者 be(大端) sample_fmts可以通过ffpla 阅读全文
posted @ 2022-10-05 13:34 咸鱼Jay 阅读(314) 评论(0) 推荐(0) 编辑
摘要:通过编程录音 开发录音功能的主要步骤是: 注册设备 获取输入格式对象 打开设备 采集数据 释放资源 需要用到的FFmpeg库有4个。 extern "C" { // 设备相关API #include <libavdevice/avdevice.h> // 格式相关API #include <liba 阅读全文
posted @ 2022-10-04 22:52 咸鱼Jay 阅读(81) 评论(0) 推荐(0) 编辑
摘要:终于要开始进行FFmpeg实战了,一起来感受一下FFmpeg的强大吧。 命令简介 FFmpeg的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用。 ffmpeg ffmpeg的主要作用:对音视频进行编解码。 # 将MP3文件转成WAV文件 ffmpeg -i xx.mp3 yy.wa 阅读全文
posted @ 2022-10-04 14:11 咸鱼Jay 阅读(141) 评论(0) 推荐(0) 编辑
摘要:.pro文件的配置 跨平台配置 之前我们分别在Windows、Mac环境的Qt项目中集成了FFmpeg。 可以发现在.pro文件的配置中,FFmpeg库在Mac、Windows上的位置是有所差异的。这样就会导致.pro文件无法跨平台使用。 # windows INCLUDEPATH += D:/So 阅读全文
posted @ 2022-10-04 14:08 咸鱼Jay 阅读(87) 评论(0) 推荐(0) 编辑
摘要:在不同的Mac环境下,实践出来的效果可能跟本教程会有所差异。我的Mac环境是:Intel CPU、macOS Moterey(12.4)。 FFmpeg 安装 在Mac环境中,直接使用Homebrew安装FFmpeg即可。还没有安装Homebrew,或者嫌Homebrew下载速度慢的童鞋,可以参考这 阅读全文
posted @ 2022-10-04 12:30 咸鱼Jay 阅读(260) 评论(0) 推荐(0) 编辑
摘要:FFmpeg 为什么选择FFmpeg? 每个主流平台基本都有自己的音视频开发库(API),用以处理音视频数据,比如: iOS:AVFoundation、AudioUnit等 Android:MediaPlayer、MediaCodec等 Windows:DirectShow等 ... 为了让所有平台 阅读全文
posted @ 2022-10-04 11:10 咸鱼Jay 阅读(487) 评论(0) 推荐(0) 编辑
摘要:我们平时在互联网上听到的声音,都是先经过录制后,再传输到互联网上的。比如歌曲、电影、主播等的声音。 PCM 录音的原理可以简单理解为:把声源的振动记录下来,需要时再让某个物体按照记录下来的振动规律去振动,就会产生与原来一样的声音。 如何把声音(声源的振动)记录下来呢?声音属于模拟信号,但更便于计算机 阅读全文
posted @ 2022-10-04 11:09 咸鱼Jay 阅读(245) 评论(0) 推荐(0) 编辑
摘要:关于声音的知识,记得没错的话,是属于初中物理的内容。为了学好音视频,我们有必要重新温习一下声音的相关知识。需要提醒的是:本文的GIF动态图比较多,建议选择在网络较好的环境中阅读。 产生 声音(Sound),是由物体的振动产生的。一切正在发声的物体都在振动。 我们说话的时候,是声带在振动。一边说话一边 阅读全文
posted @ 2022-10-04 11:07 咸鱼Jay 阅读(230) 评论(0) 推荐(0) 编辑
摘要:1 官方 Homebrew是Mac上非常优秀的软件包管理工具。 1.1 前提 Mac安装Homebrew的前提条件: 64bit Intel CPU或Apple Silicon CPU(M1) macOS Mojave(10.14)或更高版本 安装Xcode命令行工具(Command Line To 阅读全文
posted @ 2022-10-04 11:05 咸鱼Jay 阅读(265) 评论(0) 推荐(0) 编辑

页脚HTML代码
点击右上角即可分享
微信分享提示