封装格式,也叫容器,就是将已经编码好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。一般来说,视频文件的后缀就是它的封装格式。
音视频同步:
- DTS:解码时间戳(什么时间解码)
- PTS:显示时间戳(什么时间播放)(主要使用)
同步方式:
- AudioMaster:同步视频到音频
- VideoMaster:同步音频到视频
- External Clock Master:同步音频和视频到外部时钟
一般:AudioMaster->Exteral Clock Master->VideoMaster
开源项目:
- ffmpeg
- ijkplayer
- QMPlayer2
- ZLMediaKit
- easyDarwin
- SRS
- Nginx rtmp module
FFMPEG:
是一个集成了各种编码的库,可以说是一个全能型的工具,是视频采集,视频编码到视频传输(包括RTP,RTCP,RTMP,RTSP等等协议)都可以直接使用FFMPEG来完成,更重要的一点FFMPEG是跨平台的,Windows,Linux,MAC,Android,IOS这些主流平台都可以使用。
常用工具:
- MediaInfo:视频信息查看工具
- VLC Media Player:视频流播放工具
- wireshark:网络抓包工具
- cooledit pro2:音频编辑工具
- Elecard Stream Eye Tools:分析视频帧的工具
- e2eSoft VCam:虚拟摄像头软件
即时通信:
- teamtalk
- webrtc:janus服务器,信令服务器