這里的原始數(shù)據(jù)指的是FFmpeg解碼后的數(shù)據(jù),對于音頻就是PCM數(shù)據(jù)玩荠,對于視頻就是YUV數(shù)據(jù)漆腌。
FFmpeg提取YUV數(shù)據(jù)
// 提取
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmts yuv420p out.yuv
// 播放
ffplay -s 624x1160 out.yuv
參數(shù)說明:
-i : 表示要處理的文件
-a : audio ; n : no // 要輸出的結果里不包含音頻
-c:v : 與-vcodec一樣阶冈,表示視頻編碼器闷尿, c是codec的縮寫,v是video的縮寫 // rawvideo 表示原始視頻流(未經(jīng)混合 - 只含一視頻流)
-pix_fmt : 像素格式女坑, 音視頻處理中比較常用的像素格式為yuv420
常用的YUV格式
為節(jié)省帶寬起見填具,大多數(shù)YUV格式平均使用的每像素位數(shù)都少于24位。主要的抽樣(subsample)格式有YCbCr4:2:0匆骗、YCbCr4:2:2劳景、YCbCr4:1:1和YCbCr4:4:4。YUV的表示法稱為A:B:C表示法:4:4:4表示完全取樣碉就。
4:2:2表示2:1的水平取樣盟广,垂直完全采樣。
4:2:0表示2:1的水平取樣瓮钥,垂直2:1采樣筋量。
4:1:1表示4:1的水平取樣烹吵,垂直完全采樣。
YUV詳情參看
FFmpeg提取PCM數(shù)據(jù)
// 提取
ffmpeg -i out.mp4 -vn -ar 44100 -ac2 -f s16le out.pcm
// 播放
ffplay -ar 44100 -ac 2 -f s16le out.pcm
參數(shù)說明:
-ar: 指定采樣率;
-ac: 指定聲道數(shù)桨武;
-f s16le: 表示每個采樣點用16位浮點數(shù)來表示(le表示小端肋拔,be表示大端)