5月29日 00:25
FFmpeg支持哪些常见的音视频格式?
FFmpeg支持100+容器格式和200+编解码器,需区分容器和编码两层。容器层主流格式:MP4(兼容性最广)、MKV(多音轨/字幕)、WebM(Web优化)、MOV(Apple生态)、FLV(直播推流)、TS(HLS切片)。视频编码:H.264/AVC(最通用)、H.265/HEVC(同质量体积减半)、VP9(WebM默认)、AV1(开源下一代,FFmpeg 5.0+支持)。音频编码:AAC(流媒体标配)、Opus(低延迟实时通信最优)、MP3(兼容旧设备)、FLAC(无损)。关键认知:容器决定封装结构,编码决定压缩算法,同一容器可装不同编码(如MP4可装H.264或H.265)。用ffmpeg -encoders查看本地支持的编码器列表。
追问
- H.264和H.265在FFmpeg中用什么编码器?libx264和h264_nvenc性能差多少?
- MP4容器能装VP9视频吗?为什么WebM比MP4更适合Web场景?
- Opus相比AAC在延迟和码率上有什么优势?为什么WebRTC选Opus?
- FLV容器为什么逐步被淘汰?HLS的TS切片方案解决了FLV的什么问题?
ffmpeg -codecs和ffmpeg -encoders输出有什么区别?
写段代码
bash# 查看本地支持的所有H.265编码器 ffmpeg -encoders 2>/dev/null | grep 265 # MP4转WebM(VP9+Opus) ffmpeg -i in.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus out.webm