README.md
💯 2022年,最新 ffmpeg 资料整理,项目(调试可用),命令手册,文章,编解码论文,视频讲解,面试题全套资料
本repo搜集整理全网ffmpeg学习资料。
所有数据来源于互联网。所谓取之于互联网,用之于互联网。
如果涉及版权侵犯,请邮件至 wchao_isvip@163.com ,我们将第一时间处理。
如果您对我们的项目表示赞同与支持,欢迎您 lssues 我们,或者邮件 wchao_isvip@163.com 我们,更加欢迎您 pull requests 加入我们。
感谢您的支持!
🏗 开源项目
-
bilibili/ijkplayer: 基于FFmpeg n3.4的Android/iOS视频播放器,支持MediaCodec, VideoToolbox。
-
befovy/fijkplayer: ijkplayer for flutter. ijkplayer 的 flutter 封装。 Flutter video/audio player. Flutter media player plugin for android/iOS based on ijkplayer. fijkplayer 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayer
-
mpv-player/mpv: 命令行视频播放器
-
CarGuo/GSYVideoPlayer: 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
-
mpenkov/ffmpeg-tutorial: 教程,演示如何编写一个基于FFmpeg的视频播放器
-
imoreapps/ffmpeg-avplayer-for-ios-tvos: 一个微小但强大的iOS和Apple TV OS的av播放器框架,是基于FFmpeg库。
-
unosquare/ffmediaelement: FFME:高级WPF MediaElement(基于FFmpeg)
-
microshow/RxFFmpeg:RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
-
wang-bin/QtAV: 基于Qt和FFmpeg的跨平台多媒体框架,高性能。用户和开发人员友好。支持Android, iOS, Windows商店和桌面。基于Qt和FFmpeg的跨平台高性能音视频播放框架
-
xufuji456/FFmpegAndroid: android端基于FFmpeg实现音频剪切、拼接、转码、编解码;视频剪切、水印、截图、转码、编解码、转Gif动图;音视频合成与分离,配音;音视频解码、同步与播放;FFmpeg本地推流、H264与RTMP实时推流直播;FFmpeg滤镜:素描、色彩平衡、hue、lut、模糊、九宫格等;歌词解析与显示
-
Zhaoss/WeiXinRecordedDemo: 仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑
-
yangjie10930/EpMedia: Android上基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,变速,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频
-
goldvideo/h265player: 一套完整的Web版H.265播放器解决方案,非常适合学习交流和实际应用。基于JS码流解封装、WebAssembly(FFmpeg)视频解码,利用Canvas画布投影、AudioContext播放音频。
-
wanliyang1990/wlmusic: 基于FFmpeg + OpenSL ES的音频播放SDK。可循环不间断播放短音频;播放raw和assets音频文件;可独立设置音量大小;可实时现在音量分贝大小(用于绘制波形图);可改变音频播放速度和音调(变速不变调、变调不变速、变速又变调);可设置播放声道(左声道、右声道和立体声);可边播边录留住美好音乐;可裁剪指定时间段的音频,制作自己的彩铃;还可以从中获取音频原始PCM数据(可指定采样率),方便二次开发等。
-
Jackarain/avplayer: 一个基于FFmpeg、libtorrent的P2P播放器实现
-
tsingsee/EasyPlayerPro-Win: EasyPlayerPro是一款免费的全功能流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!
-
yangfeng1994/FFmpeg-Android: FFmpeg-Android 是基于ffmpeg n4.0-39-gda39990编译运行在android平台的音视频的处理框架, 使用的是ProcessBuilder执行命令行操作, 可实现视频字幕添加、尺寸剪切、添加或去除水印、时长截取、转GIF动图、涂鸦、音频提取、拼接、质量压缩、加减速、涂鸦、 倒放、素描、色彩平衡、模糊、九宫格、添加贴纸、滤镜、分屏、图片合成视频等,音视频合成、截取、拼接,混音、音视频解码,视频特效等等音视频处理...
-
yangjie10930/EpMediaDemo: 基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频。简单的Demo,后面逐渐完善各类功能的使用。
-
qingkouwei/oarplayer: Android Rtmp播放器,基于MediaCodec与srs-librtmp,不依赖ffmpeg
-
goldvideo/decoder_wasm: 借助于WebAssembly技术,基于ffmpeg的H.265解码器。
-
HeZhang1994/video-audio-tools: To process/edit video and audio with Python+FFmpeg. [简单实用] 基于Python+FFmpeg的视频和音频的处理/剪辑。
-
jordiwang/web-capture: 基于 ffmpeg + Webassembly 实现前端视频帧提取
-
ccj659/NDK-FFmpeg-master: Video and audio decoding based with FFmpeg 基于ffmpeg的 视频解码 音频解码.播放等
-
kolyvan/kxmovie:iOS电影播放器使用ffmpeg
-
CainKernel/CainCamera:一个关于美容相机、图像和短视频开发的Android项目
-
mifi/lossless-cut: 一个基于FFmpeg的无损剪辑软件
📂 典藏文档
- AAC解码算法原理详解
- FFMPEG教程完美排版
- FFMpeg-SDK-开发手册
- FFmpeg Basics
- ffmpeg(libav)解码全解析(带书签)
- ffmpeg的tutorial中文版
- ffmpeg中文文档
- 详解FFMPEG API
- ffmpeg常用命令参数详解
- ffmepg整体分析
📃 文章
- FFmpeg 学习(一):FFmpeg 简介
- FFmpeg 学习(二):Mac下安装FFmpepg
- FFmpeg 学习(三):将 FFmpeg 移植到 Android平台
- FFmpeg 学习(四):FFmpeg API 介绍与通用 API 分析
- FFmpeg 学习(五):FFmpeg 编解码 API 分析
- FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析
- FFmpeg 学习(七):FFmpeg 学习整理总结
- FFmpeg 结构体学习(一): AVFormatContext 分析
- FFmpeg 结构体学习(二): AVStream 分析
- FFmpeg 结构体学习(三): AVPacket 分析
- FFmpeg 结构体学习(四): AVFrame 分析
- FFmpeg 结构体学习(五): AVCodec 分析
- FFmpeg 结构体学习(六): AVCodecContext 分析
- FFmpeg 结构体学习(七): AVIOContext 分析
- FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
🌅 面试题
1. 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
2. 怎么做到直播秒开优化?
3. 直方图在图像处理里面最重要的作用是什么?
4. 数字图像滤波有哪些方法?
5. 图像可以提取的特征有哪些?
6. 衡量图像重建好坏的标准有哪些?怎样计算?
7. AAC和PCM的区别?
8. H264存储的两个形态?
9. FFMPEG:图片如何合成视频?
10. 常见的音视频格式有哪些?
11. 请指出“1080p”的意义?
12. 请解释颜色的本质及其数字记录原理,并说出几个你所知道的色域。
13. 请解释“矢量图”和“位图”的区别?
14. 请从“光圈”“快门速度”“感光度”“白平衡”“景深”中任选2个进行叙述?
15. 视频分量YUV的意义及数字化格式?
16. 在MPEG标准中图像类型有哪些?
17. 列举一些音频编解码常用的实现方案?
18. 请叙述MPEG视频基本码流结构?
19. sps和pps的区别?
20. 请叙述AMR基本码流结构?
21. 预测编码的基本原理是什么?
22. 说一说ffmpeg的数据结构?
23. 说一说AVFormatContext 和 AVInputFormat之间的关系?
24. 说一说AVFormatContext, AVStream和AVCodecContext之间的关系?
25. 说一说视频拼接处理步骤?(细节处理,比如分辨率大小不一,时间处理等等)
26. NV21如何转换成I420?
27. DTS与PTS共同点?
28. 影响视频清晰度的指标有哪些?
29. 编解码处理时遇到什么困难?
30. 如何秒开视频?什么是秒开视频?
31. 如何降低延迟?如何保证流畅性?如何解决卡顿?解决网络抖动?
32. 需要把网络上一段视频存储下来(比如作为mp4 ), 请实现并说出方法(第一个视频需要翻墙才能进)?
33. 需要把网络上一段语音存储下来(比如作为mp3 ), 请实现并说出方法?
34. 为什么要有YUV这种数据出来?(YUV相比RGB来说的优点)
35. H264/H265有什么区别?
36. 视频或者音频传输,你会选择TCP协议还是UDP协议?为什么?
37. 平时说的软解和硬解,具体是什么?
38. 何为直播?何为点播?
39. 简述推流、拉流的工作流程?
40. 如何在直播中I帧间隔设置、与帧率分辨率选定?
41. 直播推流中推I帧与推非I帧区别是什么?
42. 常见的直播协议有哪些?之间有什么区别?
43. 点播中常见的数据传输协议主要有哪些?
44. RTMP、HLS协议各自的默认端口号是?
45. 简述RTMP协议,如何封装RTMP包?
46. m3u8构成是?直播中m3u8、ts如何实时更新?
47. 何为音视频同步,音视频同步是什么标准?
48. 播放器暂停、快进快退、seek、逐帧、变速怎么实现?
49. 说说你平时在播放过程中做的优化工作?
50. 你研究过哪些具体的流媒体服务器,是否做过二次开发?
51. 什么是GOP?
52. 音频测试的测试点,音频时延如何测试?
53. 美颜的实现原理,具体实现步骤?
54. 如何直播APP抓包过来的文件,如何过滤上行,下行,总码率?
55. 如何测试一个美颜挂件?
56. 为什么要用FLV?
57. 如何测试一个美颜挂件?
58. 平常的视频格式?
59. 何为homebrew?你用它安装过什么?常用命令有哪些?
60. RTMP、HLS协议各自的默认端口号是?
🧿 视频
国外大神
国内大佬
No. | title | 地址 |
---|---|---|
26 | windows ffmpeg命令行环境搭建 | 百度网盘 提取码:i3f2 |
27 | FFMPEG如何查询命令帮助文档 | 百度网盘 提取码:9mqk |
28 | ffmpeg音视频处理流程 | 百度网盘 提取码:azx3 |
29 | ffmpeg命令分类查询 | 百度网盘 提取码:odhc |
30 | ffplay播放控制 | 百度网盘 提取码:e51s |
31 | ffplay命令选项(上) | 百度网盘 提取码:n1zx |
32 | ffplay命令选项(下) | 百度网盘 提取码:rtn0 |
33 | ffplay命令播放媒体 | 百度网盘 提取码:bs9s |
34 | ffplay简单过滤器 | 百度网盘 提取码:r4rk |
35 | ffmpeg命令参数说明 | 百度网盘 提取码:5q18 |
36 | ffmpeg命令提取音视频数据 | 百度网盘 提取码:v807 |
37 | ffmpeg命令提取像素格式和PCM数据 | 百度网盘 提取码:az9x |
38 | ffmpeg命令转封装 | 百度网盘 提取码:s7ez |
39 | fmpeg命令裁剪和合并视频 | 百度网盘 提取码:6g0g |
40 | fmpeg命令图片与视频互转 | 百度网盘 提取码:a3p5 |
41 | ffmpeg命令视频录制 | 百度网盘 提取码:em7b |
42 | ffmpeg命令直播(上) | 百度网盘 提取码:ilxz |
43 | ffmpeg命令直播(下) | 百度网盘 提取码:akyr |
44 | ffmpeg过滤器-裁剪 | 百度网盘 提取码:toii |
45 | ffmpeg过滤器-文字水印 | 百度网盘 提取码:unuu |
46 | ffmpeg过滤器-图片水印 | 百度网盘 提取码:mw4v |
47 | ffmpeg过滤器-画中画 | 百度网盘 提取码:c6fc |
48 | ffmpeg过滤器-多宫格 | 百度网盘 提取码:aioi |
49 | SRS流媒体服务器实战(上) | 百度网盘 提取码:4134 |
50 | SRS流媒体服务器实战(下) | 百度网盘 提取码:g4be |
51 | 音视频开发-ffplay.iikplayer、vlc的播放器设计实现 | 百度网盘 提取码:1img |
52 | 音视频成长之路-进阶三部曲 | 百度网盘 提取码:4nw3 |
53 | 为什么直播领域也要搞WebRTC-srs4.0 | 百度网盘 提取码:m47a |
54 | 腾讯课堂直播如何做到低延迟 | 百度网盘 提取码:jruh |
55 | rtmp2webrtc提出问题-灵魂拷问 | 百度网盘 提取码:pupp |