多媒體 (Multimedia)
基本概念、格式
- 基本觀念
Video
Audio
Codec
Container
- Operations
Transcoding
Transmuxing
Transrating
Transsizing
Adaptive Streaming
- Audio
- No Compression
PCM
LPCM
- Lossless Compression
FLAC
ALAC
MLP/Dolby TrueHD
DTS-HD
- Lossy Compression
MP3
WMA
Vorbis
Opus
AAC
AC-3
DTS
- Video
MPEG-1
MPEG-2
MPEG-4 (A)SP
H.264/MPEG-4 AVC
H.265/HEVC
VC-1/WMV
Real Video
Theora
Microsoft MPEG4 V2
VP8
VP9
MVC
AV1
- Media Container
AVI
FLV
QuickTime
MP4
MPEG-TS
Ogg
Matroska
I-frame/P-frame/B-frame
Synchronization
應用
架構、工具
ALSA
JACK
- GStreamer
基本介紹、設計概念
內部溝通機制
撰寫 Plugin
Bus
Pad Probe
Signal
Transcoding
Transmuxing
Transrating
Transsizing
Adaptive Streaming
File Repair
- 其他程式語言 Binding
gobject-introspection
typelibs
- Python
PyGObject
gst-python
GStreamer + asyncio
Signal/Promise/Callback
Rust
WebRTC
UPnP streaming
DLNA
Miracast
Google Cast
Bluetooth
Player
Server
Filter
上字幕
Mixing
GStreamer 相關公司
- FFmpeg
CLI 參數使用
Transcoding
Transmuxing
Transrating
Transsizing
Adaptive Streaming
File Repair
Filter
上字幕
Mixing
- 架構設計
Encoder
Decoder
Muxer/Demuxer
- 元件用途
libavutil
libavcodec
libavformat
libavdevice
libavfilter
libavresample
libswscale
libswresample
libpostproc
C API
其他程式語言 Binding
硬體加速
Player
Server
AudioFlinger
給 End User 的軟體
- 播放器
- 影片播放器
VLC
mplayer
mpv
GStreamer (gst-play-1.0)
FFmpeg (ffplay)
- 音樂播放器 (Music Player)
cmus
moc
MPD
Mopidy
Ardour