Overview
Preface
Audio and Video Basics
Video
RGB and BMP
Introduction to YUV
YUV Sampling Modes
Converting Between RGB and YUV
Audio
Introduction to PCM
Introduction to the WAV Format
Encoding and Container Formats
Introduction to Encoding and Compression
Introduction to Container Formats
FLV Container Format
MP4 Container Format
MPEG-TS Container Format
Summary
Introduction to FFmpeg
What Is FFmpeg?
How to Install FFmpeg
Introduction to the ffmpeg Command
Converting Container Formats with ffmpeg
Converting Codec Formats with ffmpeg
FFmpeg Command Parameter Types
Introduction to the ffplay Command
Setting the ffplay Playback Window Size
Where Is ffplay's Progress Bar?
Introduction to the ffprobe Command
Viewing Stream Information with ffprobe
How to Learn the FFmpeg Command Line
Into the World of C: Compilation and Linking
How I Learned the C Language
Linux Environment
Compiling a Single C Program File in Linux
Compiling Multiple C Program Files in Linux
Compiling a Static Library in Linux
Packaging a Static Library in Linux
Compiling a Dynamic Library in Linux
Explicitly Using a Dynamic Library in Linux
Packaging a Static Library as a Dynamic Library in Linux
Using Static and Dynamic Libraries Together in Linux
Windows Environment
Introduction to the MSVC Compilation Environment
Compiling Multiple C Program Files with MSVC
Compiling a Static Library with MSVC
Quick Start with VS2019
Packaging a Static Library with MSVC
Compiling a Dynamic Library with MSVC
Using a Static Library with VS2019
Using a Dynamic Library with VS2019
MinGW Environment
Installing MinGW
Compiling a Single C File with MinGW
Compiling a Static Library with MinGW
Advantages of MinGW
Compiling a Dynamic Library with MinGW
What Is ABI Binary Compatibility?
MSYS2 Environment
Installing MSYS2
What Is a Package Manager?
The pacman Package Manager
Compiling a Single C File with MSYS2
FFmpeg Compilation and Debugging
Linux Environment
Compiling FFmpeg on Linux
Debugging ffmpeg with gdb
Remote Debugging of ffmpeg with gdb
Debugging ffmpeg with CLion
Remote Debugging of ffmpeg with CLion
Debugging Fundamentals and Principles
Windows Environment
Introduction to MSYS2
What Is a Package Manager
Introduction to the pacman Package Manager
Compiling C/C++ Programs with MSYS2
Compiling FFmpeg with MSYS2 and MinGW
Compiling FFmpeg with MSYS2 and MSVC
Breakpoint Debugging of FFmpeg with VsDebug
Breakpoint Debugging of FFmpeg with WinDbg
ShiftMediaProject Open-Source Project
Introduction to the ShiftMediaProject Project
Using ShiftMediaProject
Android Environment
Building an Android App
Debugging an Android App
Using FFmpeg's Dynamic Library in an Android App
Debugging FFmpeg's Dynamic Library in an Android App
macOS Environment
Introduction to macOS Desktop Development
Xcode Quick Start
Using x264's Dynamic Library in a macOS App
Using FFmpeg's Dynamic Library in a macOS App
gas-preprocessor Source Code Analysis
iOS Environment
Using Swift to Call Objective-C: A Practical Guide
Calling Objective-C from a Swift App: A Practical Guide
Advanced FFmpeg Compilation
Adding SDL Support to FFmpeg
Adding x264 Support to FFmpeg
Adding Text Watermark Support to FFmpeg
Adding NVIDIA Hardware Codec Support to FFmpeg - Windows
Adding NVIDIA Hardware Codec Support to FFmpeg - Linux
Static Compilation of FFmpeg
How to Trim FFmpeg
Calling FFmpeg from Other Languages
Java
Go
C#
Python
Closing Remarks
References
Software Downloads
本书使用 GitBook 发布
Video
视频
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
人类是视觉动物,抖音快手的崛起更加证明了这一点。
results matching "
"
No results matching "
"