2022 年,最新 ffmpeg 资料,项目(调试可用),命令手册,文章,编解论文,视频讲解,面试题全套资料

本项目Github地址:https://github.com/0voice/ffmpeg_develop_doc
有需要的可以前去下载,或者觉得还不错,请给我Star,感谢支持!

目录
@ 开源项目
@ 典藏文档
@ 系列文章
@ 面试题
@ 教学视频
@ 学术论文
@ 资料下载

开源项目

  • 基于FFmpeg n3.4的Android/iOS视频播放器,支持MediaCodec, VideoToolbox。

bilibili/ijkplayer

  • ijkplayer for flutter. ijkplayer 的 flutter 封装。 Flutter video/audio player. Flutter media player plugin for android/iOS based on ijkplayer. fijkplayer 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayer

befovy/fijkplayer**

  • 命令行视频播放器

mpv-player/mpv

  • 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。

CarGuo/GSYVideoPlayer**

  • 教程,演示如何编写一个基于FFmpeg的视频播放器

mpenkov/ffmpeg-tutorial

  • 一个微小但强大的iOS和Apple TV OS的av播放器框架,是基于FFmpeg库。

imoreapps/ffmpeg-avplayer-for-ios-tvos

  • FFME:高级WPF MediaElement(基于FFmpeg)

unosquare/ffmediaelement

  • RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能

microshow/RxFFmpeg

  • 基于Qt和FFmpeg的跨平台多媒体框架,高性能。用户和开发人员友好。支持Android, iOS, Windows商店和桌面。基于Qt和FFmpeg的跨平台高性能音视频播放框架

wang-bin/QtAV

  • android端基于FFmpeg实现音频剪切、拼接、转码、编解码;视频剪切、水印、截图、转码、编解码、转Gif动图;音视频合成与分离,配音;音视频解码、同步与播放;FFmpeg本地推流、H264与RTMP实时推流直播;FFmpeg滤镜:素描、色彩平衡、hue、lut、模糊、九宫格等;歌词解析与显示

xufuji456/FFmpegAndroid

  • 仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑

Zhaoss/WeiXinRecordedDemo

  • Android上基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,变速,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频

yangjie10930/EpMedia

  • 一套完整的Web版H.265播放器解决方案,非常适合学习交流和实际应用。基于JS码流解封装、WebAssembly(FFmpeg)视频解码,利用Canvas画布投影、AudioContext播放音频。

goldvideo/h265player

  • 基于FFmpeg + OpenSL ES的音频播放SDK。可循环不间断播放短音频;播放raw和assets音频文件;可独立设置音量大小;可实时现在音量分贝大小(用于绘制波形图);可改变音频播放速度和音调(变速不变调、变调不变速、变速又变调);可设置播放声道(左声道、右声道和立体声);可边播边录留住美好音乐;可裁剪指定时间段的音频,制作自己的彩铃;还可以从中获取音频原始PCM数据(可指定采样率),方便二次开发等。

wanliyang1990/wlmusic

  • 一个基于FFmpeg、libtorrent的P2P播放器实现

Jackarain/avplayer

  • EasyPlayerPro是一款免费的全功能流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!

tsingsee/EasyPlayerPro-Win

  • FFmpeg-Android 是基于ffmpeg n4.0-39-gda39990编译运行在android平台的音视频的处理框架, 使用的是ProcessBuilder执行命令行操作, 可实现视频字幕添加、尺寸剪切、添加或去除水印、时长截取、转GIF动图、涂鸦、音频提取、拼接、质量压缩、加减速、涂鸦、 倒放、素描、色彩平衡、模糊、九宫格、添加贴纸、滤镜、分屏、图片合成视频等,音视频合成、截取、拼接,混音、音视频解码,视频特效等等音视频处理...

yangfeng1994/FFmpeg-Android

  • 基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频。简单的Demo,后面逐渐完善各类功能的使用。

yangjie10930/EpMediaDemo

  • Android Rtmp播放器,基于MediaCodec与srs-librtmp,不依赖ffmpeg

qingkouwei/oarplayer

  • 借助于WebAssembly技术,基于ffmpeg的H.265解码器。

goldvideo/decoder_wasm

  • To process/edit video and audio with Python+FFmpeg. [简单实用] 基于Python+FFmpeg的视频和音频的处理/剪辑。

HeZhang1994/video-audio-tools

  • 基于 ffmpeg + Webassembly 实现前端视频帧提取

jordiwang/web-capture

  • Video and audio decoding based with FFmpeg 基于ffmpeg的 视频解码 音频解码.播放等

ccj659/NDK-FFmpeg-master

  • iOS电影播放器使用ffmpeg

kolyvan/kxmovie

  • 一个关于美容相机、图像和短视频开发的Android项目

CainKernel/CainCamera

  • 一个基于FFmpeg的无损剪辑软件

mifi/lossless-cut

典藏文档

AAC解码算法原理详解
FFMPEG教程完美排版
FFMpeg-SDK-开发手册
FFmpeg Basics
ffmpeg(libav)解码全解析(带书签)
ffmpeg的tutorial中文版
ffmpeg中文文档
详解FFMPEG API
ffmpeg常用命令参数详解

文章

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中重要结构体之间的关系

Linux上的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协议各自的默认端口号是?

视频

论文

  • 分布式视频处理系统设计与实现
  • 基于Android的H.264_AVC解码器的设计与实现
  • 基于FFMPEG的视频转换系统
  • 基于FFMPEG的跨平台视频编解码研究
  • 基于FFMPEG解码的音视频同步实现
  • 基于FFMpeg的稳定应用层组播流媒体直播系统研究
  • 基于FFmpeg和SDL的智能录屏及播放系统
  • 基于FFmpeg和SDL的视频流播放存储研究综述
  • 基于FFmpeg的H.264解码器实现
  • 基于FFmpeg的网络视频监控系统的设计与实现
  • 基于FFmpeg的视频转码与保护系统的设计与实现
  • 基于FFmpeg的高清实时直播系统设计与实现
  • 基于H.264与H.265的低延时视频监控系统的设计与实现
  • 基于H.265的无线视频监控系统设计与实现
  • 基于H.265的视频教育系统的设计与实现
  • 基于Hadoop的视频转码优化的研究
  • 基于RTMP协议的流媒体系统的设计实现
  • 基于RTMP的高清流媒体直播点播封装技术的研究与实现
  • 基于RTSP协议的iOS视频播放器的设计与实现
  • 基于RTSP协议的多源视音频实时直播系统的设计与实现
  • 基于RTSP的H.264实时流媒体传输方案的研究与实现
  • 基于RTSP的音视频传输系统研究与实现
  • 基于TCP传输的嵌入式流媒体播放系统
  • 基于ffmpeg的高性能高清流媒体播放器软件设计
  • 基于流媒体技术的移动视频直播系统的设计与实现
  • 直播聚合平台的设计与实现
  • 音视频信号采集压缩及传输系统的设计与实现

资源福利

【免费】FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发

ffmpeg学习资料包:ffmpeg入门系列教程