{"id":21499633,"url":"https://github.com/jackeylea/ffmpeg_beginner","last_synced_at":"2025-04-06T08:15:34.757Z","repository":{"id":37461998,"uuid":"308646605","full_name":"JackeyLea/ffmpeg_beginner","owner":"JackeyLea","description":"食铁兽 ffmpeg4/5/6入门系列教程代码","archived":false,"fork":false,"pushed_at":"2023-11-30T13:26:32.000Z","size":918,"stargazers_count":308,"open_issues_count":5,"forks_count":112,"subscribers_count":6,"default_branch":"4.x","last_synced_at":"2025-03-30T07:09:08.009Z","etag":null,"topics":["audio","codec","decode","demuxer","encode","ffmpeg","ffmpeg4","ffmpeg5","ffmpeg6","filters","h264","muxer","qt5","video","yuv"],"latest_commit_sha":null,"homepage":"https://blog.jackeylea.com/ffmpeg/ffmpeg-learning-indexes","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JackeyLea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-30T13:59:49.000Z","updated_at":"2025-03-28T06:29:18.000Z","dependencies_parsed_at":"2023-11-30T13:46:10.705Z","dependency_job_id":"bb462a74-2050-47c3-b52a-5871af2aca5e","html_url":"https://github.com/JackeyLea/ffmpeg_beginner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackeyLea%2Fffmpeg_beginner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackeyLea%2Fffmpeg_beginner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackeyLea%2Fffmpeg_beginner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackeyLea%2Fffmpeg_beginner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JackeyLea","download_url":"https://codeload.github.com/JackeyLea/ffmpeg_beginner/tar.gz/refs/heads/4.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451667,"owners_count":20940944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","codec","decode","demuxer","encode","ffmpeg","ffmpeg4","ffmpeg5","ffmpeg6","filters","h264","muxer","qt5","video","yuv"],"created_at":"2024-11-23T17:17:14.727Z","updated_at":"2025-04-06T08:15:34.738Z","avatar_url":"https://github.com/JackeyLea.png","language":"C++","readme":"# ffmpeg_beginner\n\n\u003ca href=\"https://feater.top/ffmpeg/ffmpeg-learning-indexes\" target=\"_blank\"\u003eFFmpeg4入门系列教程\u003c/a\u003e代码\n\nFFmpeg5/6对应代码见其他分支\n\n## 编译说明\n\n- 使用\u003ca href=\"https://github.com/BtbN/FFmpeg-Builds/releases\" target=\"_blank\"\u003eFFmpeg-Builds\u003c/a\u003eLatest Auto-Build (2023-09-04 12:49) 15d0b26 测试\n- 尽量保证编译结果没有错误、没有警告、没有deprecated方法调用\n- 如果提示系统没有mfx头文件，可以从\u003ca href=\"https://github.com/Intel-Media-SDK/MediaSDK/releases/tag/intel-mediasdk-22.5.4\" target=\"_blank\"\u003eIntel Media SDK\u003c/a\u003e下载，下载后把api/include目录重命名为mfx，然后复制到include目录中\n\n## 源码说明\n\n### 10.02.get_lib_version\n\n获取库版本信息并解析输出可读信息\n\n### 10.03.get_stream_info\n\n输出视频的基本信息（时长、码率、编码方式等等）\n\n### 10.04.video_decode_flow\n\n视频解码的基本流程\n\n### 10.05.video_decode_frame_save\n\n解码视频并保存其中的50帧画面为ppm格式图片\n\n### 10.06.video_decode_mp42yuv\n\n视频解码的基本流程并输出视频信息，将解码后的视频数据保存为YUV格式文件\n\n分别解码为YUV420P/YUV420SP\n\n### 10.07.video_decode_by_cpu_display_by_qwidget \n\n使用CPU解码视频，然后使用Qt的QWidget显示画面\n\n### 10.08.video_decode_by_cpu_display_by_qopengl\n\n使用CPU解码视频，然后使用Qt的QOpenGL显示画面\n\n两种方法仅供参考\n\n### 10.09.video_decode_by_cpu_display_by_qml\n\n使用CPU解码视频，然后使用QML显示画面\n\n### 10.10.video_decode_by_cuda_display_by_qt\n\n使用CUDA解码视频并使用Qt的QWidget/QOpenGL/QML显示视频\n\n### 10.11.video_encode_yuv2h264\n\n将yuv源视频文件编码为h264格式的文件\n\n### 10.12.video_encode_h2642mp4\n\n将h264编码为mp4格式文件\n\n### 10.13.video_encode_camera2h264\n\n将摄像头捕获的视频直接编码为H264格式\n\n### 10.14.audio_decode_mp32pcm\n\n将mp3文件解码为pcm文件\n\n### 10.15.audio_decode_swr_mp32pcm\n\n将mp3音频重采样解码为pcm\n\n### 10.16.audio_player_decode_by_ffmpeg_play_by_qt\n\n使用FFmpeg解码音频，使用Qt播放音频\n\n### 10.17.audio_player_decode_from_mem_play_by_qt\n\n解码内存中的mp3数据并使用Qt播放\n\n### 10.18.audio_encode_pcm2mp3\n\n将pcm格式文件编码为mp3格式\n\n### 10.19.audio_video_sync\n\nQt简单视频播放器，带音视频同步\n\n### 10.20.video_decode_add_filter_display_by_qwidget\n\n使用CPU解码视频，并添加滤镜，然后使用QWidget显示画面\n\n### 10.21.video_demuxer_mp42h264mp3\n\n将mp4分解为h264和mp3\n\n### 10.22.video_demuxer_mp42yuvpcm\n\n将mp4分解为h264和mp3，并在此基础上将h264解码为yuv，将mp3解码为pcm\n\n### 10.23.video_muxer_mp3h2642mp4\n\n将h264和mp3合并为mp4\n\n### RTSParser\n\n收RTSP流，并解析流中的H264数据\n\n### 待添加\n\n本系列的目的就是将雷霄华同志的教程进行新版本适配，其在CSDN发布的所有文章涉及的代码都会进行适配","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackeylea%2Fffmpeg_beginner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackeylea%2Fffmpeg_beginner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackeylea%2Fffmpeg_beginner/lists"}