一、ffmpeg是什么?
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
二、推荐使用的学习工具
1.文件信息查看 mediainfo
MediaInfo 用来分析视频和音频文件的编码和内容信息。
下载官网:https://mediaarea.net/en/MediaInfo/Download
MediaInfo 的主要功能特点:
支持众多视频和音频文件格式
多种查看方式:文本,表格,树形图,网页……
自定义查看方式
信息导出:文本,CSV,HTML……
三种发布版本:图形界面,命令行,DLL (动态链接库)
与 Windows 资源管理器整合:拖放,右键菜单
国际化:有多种界面语言供选择
(软件界面) 轻松实现本地化 (需要志愿者翻译语言文件)
2.封装格式:Elecard Format Analyer
工具共享下载链接:https://pan.baidu.com/s/1qQLdRU7W5lEsLznAUwjpmQ
提取码:75q5
这个工具在分析图像运动适量的时候常用的,视频格式分析工具,将一个视频里面的块结构,已经头里面的信息,都会展示出来,非常清晰,非常方便。MediaInfo_GUI。也是可以查看一些头文件信息但是 它没有Elecard 的好,可以将结果打印出来。
3.编解码数据:Elecard Stream Eye
lecard StreamEye是一款视频分析工具。
可以从不同的角度分析视频:TS级,ES级和实际的视频级。
方便分析视频源,查找视频源相关问题。
通过检查和分析视频流,以调整编码器,比较不同厂商的编码器。
4.视频 YUV player
YUVPlayer播放器是一款非常好用的音频播放工具,专门为喜欢看电影的伙伴们打造的播放器,可以播放各种类型的电视电影。支持多种文件类型,可以自己设置参数播放控制YUV文件。这款软件可用于播放和编辑,操作相当简单。
5.音频Adobe Audition
Adobe Audition (前身是Cool Edit Pro) 是Adobe公司开发的一款功能强大、效果出色的多轨录音和音频处理软件。它是一个非常出色的数字音乐编辑器和MP3制作软件。不少人把它形容为音频“绘画”程序。
6.协议查看数据和跨平台数据:VIc和ffplay
VIC(VideoconferencingTool)是一个组播视频工具,主要用于组播视频会议系统。
FFmpeg 框架由命令行工具和函数库组成, ffplay 是其中的一种命令行工具,提供了播放音视频文件的功能,不仅可以播放本地多媒体文件,还可以播放网络流媒体文件。
三、播放器在播放媒体文件时的工作流程。
解协议:媒体文件在网络上传输时,需要经过流媒体协议将媒体数据分段成若干个数据包,这样就可以满足用户一边下载一边观看的需求,而不需要等整个媒体文件都下载完成才能观看。常见的流媒体协议有 RTMP、HTTP、HLS、MPEG-DASH、MSS、HDS 等。由于流媒体协议中不仅仅包含媒体数据,还包含控制播放的信令数据。因此,解协议是移除协议中的信令数据,输出音视频封装格式数据。
解封装:封装格式也叫容器,就是将已经编码压缩好的视频流和音频流按照一定的格式放到一个文件中,常见的封装格式有 MP4、FLV、MPEG2-TS、AVI、MKV、MOV 等。解封装是将封装格式数据中的音频流压缩编码数据和视频流压缩编码数据分离,方便在解码阶段使用不同的解码器解码。
解码:压缩编码数据是在原始数据基础上采用不同的编码压缩得到的数据,而解码阶段就是编码的逆向操作。常见的视频压缩编码标准有 H.264/H.265 、MPEG-2 、AV1 、V8/9 等,音频压缩编码标准有 AAC 、MP3 等。解压后得到的视频图像数据是 YUV 或 RGB ,音频采样数据是 PCM 。
音视频同步:解码后的视频数据和音频数据是独立的,在送给显卡和声卡播放前,需要将视频和音频同步,避免播放进度不一致。