# ffmpeg_beginner
**Repository Path**: wangdou2014/ffmpeg_beginner
## Basic Information
- **Project Name**: ffmpeg_beginner
- **Description**: 食铁兽(feater.top)ffmpeg4入门系列教程代码
- **Primary Language**: C++
- **License**: MIT
- **Default Branch**: 4.x
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2022-07-06
- **Last Updated**: 2024-10-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ffmpeg_beginner
FFmpeg4入门系列教程代码
FFmpeg5/6对应代码见其他分支
## 编译说明
- 使用FFmpeg-BuildsLatest Auto-Build (2023-09-04 12:49) 15d0b26 测试
- 尽量保证编译结果没有错误、没有警告、没有deprecated方法调用
- 如果提示系统没有mfx头文件,可以从Intel Media SDK下载,下载后把api/include目录重命名为mfx,然后复制到include目录中
## 源码说明
### 3.get_lib_version
获取库版本信息并解析输出可读信息
### 4.get_stream_info
输出视频的基本信息(时长、码率、编码方式等等)
### 5.video_decode_flow
视频解码的基本流程
### 6.video_decode_frame_save
解码视频并保存其中的50帧画面为ppm格式图片
### 7.video_decode_mp42yuv
视频解码的基本流程并输出视频信息,将解码后的视频数据保存为YUV格式文件
分别解码为YUV420P/YUV420SP
### 8.video_decode_by_cpu_display_by_qwidget
使用CPU解码视频,然后使用Qt的QWidget显示画面
### 9.video_decode_by_cpu_display_by_qopengl
使用CPU解码视频,然后使用Qt的QOpenGL显示画面
两种方法仅供参考
### 10.video_decode_by_cpu_display_by_qml
使用CPU解码视频,然后使用QML显示画面
### 11.video_decode_by_cuda_display_by_qt
使用CUDA解码视频并使用Qt的QWidget/QOpenGL/QML显示视频
### 12.video_encode_yuv2h264
将yuv源视频文件编码为h264格式的文件
### 13.video_encode_h2642mp4
将h264编码为mp4格式文件
### 14.video_encode_camera2h264
将摄像头捕获的视频直接编码为H264格式
### 15.audio_decode_mp32pcm
将mp3文件解码为pcm文件
### 16.audio_decode_swr_mp32pcm
将mp3音频重采样解码为pcm
### 17.audio_player_decode_by_ffmpeg_play_by_qt
使用FFmpeg解码音频,使用Qt播放音频
### 18.audio_player_decode_from_mem_play_by_qt
解码内存中的mp3数据并使用Qt播放
### 19.audio_encode_pcm2mp3
将pcm格式文件编码为mp3格式
### 20.audio_video_sync
Qt简单视频播放器,带音视频同步
### 21.video_decode_add_filter_display_by_qwidget
使用CPU解码视频,并添加滤镜,然后使用QWidget显示画面
### 22.video_demuxer_mp42h264mp3
将mp4分解为h264和mp3
### 23.video_demuxer_mp42yuvpcm
将mp4分解为h264和mp3,并在此基础上将h264解码为yuv,将mp3解码为pcm
### 24.video_muxer_mp3h2642mp4
将h264和mp3合并为mp4
### RTSParser
收RTSP流,并解析流中的H264数据
### 待添加
本系列的目的就是将雷霄华同志的教程进行新版本适配,其在CSDN发布的所有文章涉及的代码都会进行适配