音视频基础理论
1. 音频基础
1.1 音频基本概念
1.1 频率:声波的频率,即声音的音调,人类听觉的频率(音调)范围为20Hz--20KHz
1.2 振幅:即声波的响度,通俗的讲就是声音的高低,一般男生的声音振幅(响度)大于女生。
1.3 波形:即声音的音色
采样就是只在时间轴上对信号进行数字化。如图:
1.3 采样和采样率:采样是把连续的时间信号,变成离散的数字信号采样率是指每秒钟采集多少个样本。采样频率为44.1kHz,44.1kHz就是代表1秒会采样44100次。
1.4 量化:量化就是采样的表示。量化是指在幅度轴上对信号进行数字化。
整个过程如图所示:
1.5 编码:按照一定的格式记录采样和量化后的数字数据。
音频裸数据格式就是脉冲编码调制(PCM)数据。
1.2 音频处理基础
1.1 噪声抑制
1.2 回声消除
1.3 自动增益控制
1.4 静音检测
1.5 舒适噪音产生
1.3 常见音频格式
1.wav格式:是最早的数字音频格式,被 Windows 平台及其应用程序广泛支持,压缩率低。
2.MP3格式:MP3 能够以 高音质、低采样率对数字音频文件进行压缩。应用最普遍。
3.RealAudio:可以实时传输音频信息,尤其是在网速较慢的情况下,仍然可以较为流畅地传送数据,因此RealAudio 主要适用于网络上的在线播放 。
4.AAC:更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。AAC 可以在比 MP3 文件缩小 30%的前提下提供更好的音质。
5.APE :种无损压缩音频格式,在音质不降低的前提下,大小压缩到传统无损格式WAV 文件的一半。
1.4 混音技术
混音,顾名思义,就是把两路或者多路音频流混合在一起,形成一路音频流。
混流,则是指音视频流的混合,也就是视频画面和声音的对齐,也称混流。
音频重采样,重采样即是将音频进行重新采样得到新的采样率的音频。
比如在播放音乐的过程中,来了一个提示音,就需要把音乐和提示音都混合到 codec 输
出,音乐的原始采样率和提示音的原始采样率可能是不一致的。
问题来了,如果 codec 的采样率设置为音乐的原始采样率的话,那么提示音就会失真。
因此最简单见效的解决方法是:codec 的采样率固定一个值(44.1KHz/48KHz),所有
音轨都重采样到这个采样率,然后才送到 codec,保证所有音轨听起来都不失真。
2. 音频编码
2.1 音频编码
1.压缩编码 :压缩掉冗余的信号,冗余信号是指不能被人耳感知到的信号,包括人耳听觉范围之外的音频信号以及被掩蔽掉的音频信号。
量化的过程被称之为编码,根据不同的量化策略,产生了许多不同的编码方式,常见的编码方式有:PCM 和 ADPCM,这些数据代表着无损的原始数字音频信号。
音频编解码常用的三种实现方案:
1采用专用的音频芯片对语音信号进行采集和处理,音频编解码算法集成在硬件内部,如 MP3 编解码芯片、语音合成分析芯片等。使用这种方案的优点就是处理速度块,设计周期短;缺点是局限性比较大,不灵活,难以进行系统升级。
2是利用 A/D 采集卡加上计算机组成硬件平台,音频编解码算法由计算机上的软件来实现。使用这种方案的优点是价格便宜,开发灵活并且利于系统的升级;缺点是处理速度较慢,开发难度较大。
3使用高精度、高速度的 A/D 采集芯片来完成语音信号的采集,使用可编程的数据处理能力强的芯片来实现语音信号处理的算法,然后用 ARM 进行控制。采用这种方案的优点是系统升级能力强,可以兼容多种音频压缩格式甚至未来的音频压缩格式,系统成本较低;缺点是开发难度较大,设计者需要移植音频的解码算法到相应的 ARM 芯片中去。
2.2 音频编码三类方法
1.波形编码是尽量保持输入波形不变,即重建的语音信号基本上与原始语音信号波形相同,压缩比较低;
2.参数编码是要求重建的信号听起来与输入语音一样,但其波形可以不同,它是以语音信号所产生的数学模型为基础的一种编码方法,压缩比较高;
3.混合编码是综合了波形编码的高质量潜力和参数编码的高压缩效率的混合编码的方法,这类方法也是目前低码率编码的方向。
3. 视频基础
3.1 视频基础概念
图像,是由很多“带有颜色的点”组成的。这个点,就是“像素点”。
像素是图像显示的基本单位。
我们说一幅图片的大小例如是 1920×1080,就是宽度为 1920 个像素点,高度为1080 个像素点。
1. 视频文件格式
常见的视频文件格式如 1.avi,2.mpg 这些都叫做视频的文件格式。
2. 视频封装格式
AVI,MPEG,VOB 是一种视频封装格式,相当于一种储存视频信息的容器。
3. 视频编码方式
(1)H26X系列,MPEG系列
4.ffmpeg使用
1.查版本号
2.显示 可用复用器/可用解复用器/可用编解码器/可用解码器/可用编码器
-muxers/ -demuxers/ -codecs/ -decoders/ -encoders
3.ffplay使用
q 退出 ,空格 暂停, m 静音, s 逐帧播放
-an 禁用音频(不播放声音) -vn 禁用视频(不播放视频) -sn 禁用字幕(不显示字幕)
-acodec codec_name 强制使用设置的音频解码器进行音频解码
-vcodec codec_name 强制使用设置的视频解码器进行视频解码
禁用音频:ffplay test.mp4 -an
禁用视频:ffplay test.mp4 -vn
强制解码器:h264解码器:ffplay -vcodec h264 test.mp4
保留封装格式
ffmpeg -i test.mp4 -acodec copy -vn audio.mp4
ffmpeg -i test.mp4 -vcodec copy -an video.mp4
提取视频
保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264
提取音频
保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
强制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3