ffmpeg7.1.2-官方示例demo预览
目录
一、整体学习顺序建议(从简单到复杂)
二、逐个示例说明(重点 + 场景)
1. 基础解码 / 编码
decode_audio.c
decode_video.c
encode_audio.c
encode_video.c
2. 解复用 / 复用 / 转码
demux_decode.c
mux.c
remux.c
transcode.c
transcode_aac.c
3. 音视频变换(缩放、重采样、滤镜)
resample_audio.c
scale_video.c
filter_audio.c
decode_filter_audio.c
decode_filter_video.c
4. 硬件加速 / 特殊功能
hw_decode.c
qsv_decode.c
qsv_transcode.c
vaapi_encode.c
vaapi_transcode.c
extract_mvs.c
5. 元数据 / IO / 目录操作
show_metadata.c
avio_list_dir.c
avio_read_callback.c
avio_http_serve_files.c
6. 其它辅助示例
filter_audio.c(上面已讲)
show_metadata.c(上面已讲)
README
Makefile / Makefile.example
三、如何配合这些示例来学(给你一个固定模板)
一、整体学习顺序建议(从简单到复杂)
推荐顺序:
-
decode_audio.c/decode_video.c -
demux_decode.c -
encode_audio.c/encode_video.c -
resample_audio.c、scale_video.c -
filter_audio.c、decode_filter_audio.c、decode_filter_video.c -
mux.c、remux.c、transcode.c、transcode_aac.c -
show_metadata.c、extract_mvs.c -
硬件相关:
hw_decode.c、qsv_*、vaapi_* -
进阶 IO:
avio_list_dir.c、avio_read_callback.c、avio_http_serve_files.c
二、逐个示例说明(重点 + 场景)
1. 基础解码 / 编码
decode_audio.c
-
学什么:打开音频文件 → 解码成原始 PCM 数据。
-
典型场景:做一个“音频可视化”、波形分析、语音识别前处理。
-
适合等级:⭐ 入门必看。
decode_video.c
-
学什么:打开视频 → 解码出一帧帧原始 YUV 图像。
-
典型场景:截图、做视频缩略图、后续送到 Qt 显示。
-
适合等级:⭐ 入门必看(配合你将来 Qt 显示用)。
encode_audio.c
-
学什么:把原始 PCM 音频编码成压缩格式(如 AAC)。
-
典型场景:录音之后导出 mp3/aac,或者把处理后的音频重新压缩。
-
适合等级:中级,可在掌握解码后再看。
encode_video.c
-
学什么:把原始视频帧编码成压缩视频(如 H.264)。
-
典型场景:屏幕录制、摄像头采集之后编码成文件或推流。
-
适合等级:中级。
2. 解复用 / 复用 / 转码
demux_decode.c
-
学什么:从容器(mp4、mkv…)中拆出音视频流并解码。
-
典型场景:播放器的核心逻辑:读文件 → 分离音视频 → 解码。
-
适合等级:⭐ 非常关键,建议认真啃一遍、做流程图。
mux.c
-
学什么:把编码后的音频、视频打包进容器(mp4、flv…)。
-
典型场景:你已经有编码好的数据,想输出成标准文件。
-
适合等级:中级,和
encode_*搭配理解。
remux.c
-
学什么:不解码,只是把原有的音视频流搬到新的容器里。
-
典型场景:
input.mkv → output.mp4这种“无损封装转换”(前提格式兼容)。 -
适合等级:较容易,理解“容器”和“编码格式”的区别很有帮助。
