通过音视频设备采集的、没有经过任何加工的数据叫原始数据,而像我们平时播放的比如mp4文件是压缩后的数据。视频原始数据是YUV格式,音频原始数据是PCM格式。FFmpeg可以从封装格式数据中抽取出PUV和PCM格式的原始数据,并对原始数据进行格式转换等处理。
1. 提取YUV数据
将2.mp4文件中YUV数据提取出来存为2-5.yuv
ffmpeg -i 2.mp4 -an -c:v rawvideo -pixel_format yuv420p 2-5.yuv
参数说明:
-an:a 代表音频,n 代表 no 也就是没有音频的意思。
-c:v 指对视频格式进行编码,编码格式是rawvideo,也就是用原始数据格式进行编码。
-pixel_format yuv420p 指定转换像素格式为yuv420p。
播放提取出来的yuv:
ffplay -s 320x240 -pix_fmt yuv420p 2-5.yuv
2. 提取PCM数据
将2.mp4文件中PCM数据提取出来存为2-6.pcm
ffmpeg -i 2.mp4 -vn -ar 44100 -ac 2 -f s16le 2-6.pcm
参数说明:
-vn:v 代表视频,n 代表 no 也就是没有视频的意思。
-ar a指音频,r指采样率。
-ac a指音频,c指channel也就是声道,设置为2也就是双声道(左声道和右声道)。
-f s16le 是抽取出来的音频的存储方式,s表示有符号的,16表示每个数值都是用16bit表示,l是little,e是end,s16le就是一种存储方式。
播放提取出来的pcm:
ffplay -ar 44100 -f s16le -ac 2 test.pcm
网友评论