🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 处理原始数据 ## 提取YUV数据 ~~~ ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv ffplay -s (wxh分辨率,stream中看) out.yuv ~~~ * -an: a代表audio,n代表no不包括音频的 * `-c:v rawvideo` 指定将视频转成原始数据 * `-pixel_format yuv420p` 指定转换格式为yuv420p(4:2:0) ## YUV转H264 ~~~ ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 30 -i out.yuv -c:v libx264 -f rawvideo out.h264 ~~~ ## 提取PCM数据 ~~~ ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm # 播放的时候参数也要和上面一样,因为不知道你用什么采样率和声道是啥 ffplay -ar 44100 -ac 2 -f s16le -i out.pcm ~~~ * `-vn`: v代表video,n代表不要视频 * `-ar`: a代表audio,r代表read,采样率44100 44.1k * `-ac`: a代表audio,c2代表双声道还有立体声,环绕立体声 * `-f`: 音频抽取出来的存取格式, s16 s代表有符号的,每一位16位表示 ## PCM转WAV ~~~ ffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wav ~~~