参考资料: ffmpeg.org/ffmpeg-code…
采集音频:
ffmpeg -f avfoundation -i :0 out.wav
-f 使用哪个框架: mac:avfoundation / windows:dshow / linux:alsa/oss
-i 采集什么数据, mac的写法:冒号分割, 前面是视频设备名称或索引, 冒号后面是音频设备名称或索引, “0:”表示从视频设备上采集, “:0”表示从音频设备上采集.
播放音频:
ffplay out.wav
抽取AAC数据 :
ffmpeg -i /Users/.../1.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he audio.aac
-
-i /Users/.../1.mp4 // 输入的多媒体文件
-
-vn // video no : 过滤视频
-
-c:a libfdk_aac // 指定编码器 :a 音频编码器
-
-ar 44100 // 音频采样率
-
-channels 2 // 通道数 声道数
-
-profile:a aac_he // 参数 音频参数: aac_low(lc 编码方式) / aac_he(v1编码方式) / aac_he_v2
-
audio.aac // 输出文件的名字
使用opus编码器格式抽取数据
ffmpeg -i /Users/.../1.mp4 -vn -c:a libopus 1.opus
播放pcm 音频文件
ffplay -ar 44100 -ac 2 -f f32le audio.pcm
-
-f f32le : 采样大小32位
生成YUV
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
-
-i input.mp4 // 输入的包含视频数据的文件
-
-an // 过滤音频
-
-c:v rawvideo // 视频编码器: rawvideo
-
-pix_fmt yuv420p // 格式:yuv420p
ffmpeg -i input.mp4 -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.yuv -map '[u]' u.yuv -map '[v]' v.yuv
-
-filter_complex // 复杂的滤波器
-
y+u+v[y][u][v] // 中括号表示前面分量的别名
播放YUV
ffplay -pix_fmt yuv420p -s 1280x720 -vf extractplanes='y' out.yuv
-
-pix_fmt yuv420p // 格式 yuv420p (默认格式 可以省略)
-
-s 1280x720 // 分辨率
-
-vf extractplanes='y' // vf : 简单滤波 ,指定播放的分量