You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ffmpeg_develop_doc/README.md

40 KiB

💯 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的无损剪辑软件

📂 典藏文档

📃 文章



🌅 面试题

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
1 如何使用FFMPEG将MP4视频文件转换为GIF
2 FFMPEG Introduction & Examples
3 Live Streaming with Nginx and FFmpeg
4 Ep2 Ffmpeg Nginx & Nginx-Rtmp-Module Streaming to Server
5 Streaming an IP Camera to a Web Browser using FFmpeg
6 Easy Screencasting and Webcamming with ffmpeg in Linux
7 Streaming an IP Camera to a Web Browser using FFmpeg
8 FFMPEG Advanced Techniques Pt2 - Filtergraphs & Timeline
9 Convert HEVCh265 mkv video to AVCh264 mp4 with ffmpeg
10 How to add soft subtitles( srt subrip) to mp4 video using ffmpeg
11 FFmpeg Processing multiple video files by using.bat file
12 Opensource Multimedia Framework -- FFmpeg
13 rtsp streaming node js ip camera jsmpeg
14 H.265 RTSP Streaming to VLC + NewTek NDI Integration
15 IP camera stream using RTSP and openCV python
16 NAT Traversal & RTSP
17 Simple client et serveur de Streaming RTSP MJPEG(JAVA SE)
18 Build Your First WebRTC Video Chat App
19 P2P Video Chat with JavaScript/WebRTC
20 Building a WebRTC app - LIVE
21 Zoom vs WebRTC
22 Architectures for a kickass WebRTC application
23 (REACT NATIVE) - integrate webRTC
24 How to build Serverless Video Chat App using Firebase and WebRTC in React
25 Implementation Lessons using WebRTC in Asterisk

国内大佬

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

📰 论文

分布式视频处理系统设计与实现

基于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、webrtc、rtmp、SRS、Android、iOS等资料。本repo内容来源于互联网,本repo仅限于整理总结。
音视频交流群: 994289133, 偶遇技术大佬交流,不定期书籍红包福利,每晚技术直播通知!
点击进入 每晚八点技术直播