ffmpeg前端使用研究
ffmpeg本质上是一套可执行文件。可以运行在windows、linux环境中。
主要包含三部分(windows环境中讨论该问题):
ffmpeg.exe:主要用于编解码
ffplay.exe:播放器,可以作为测试工具进行使用
ffprobe.exe:多媒体分析工具,可以从媒体文件或者媒体流中获得你想要了解的媒体信息,比如音频的参数、视频的参数、媒体容器的参数信息等
其使用方式为命令行调用。
可以做到文件格式转换、视频流转换、视频流播放等操作。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
前端视频流播放技术方案:
TCP+RTMP:adobe的私有协议。
http+flv:将音视频数据封装成FLV格式,然后通过 HTTP 协议传输给客户端。前端通过flv.js播放流。
hls:一段视频流,分成一个个小的基于HTTP的文件来下载。
webRTC:是一项新的技术,零延时,响应快。对编码格式要求高,像是h.265格式兼容困难。对服务器、用户端的计算机资源消耗大。
在这里主要讨论使用较广的http+flv。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rtsp流:实时流传输协议
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ffmpeg的使用
将ffmpeg部署在服务器上,配好环境变量。
打开命令行,通过命令行运行数据流的格式转换,相当于将原来的数据流服务转换成一个新的服务。
前端通过flv.js接收新的数据流做展示。
这样如果实时转换的流多了会导致命令行复杂,不友好。这就出现了fluent-ffmpeg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fluent-ffmpeg:
fluent-ffmpeg是nodejs的一个模块。它其实依赖于ffmpeg。
当服务器安装好ffmpeg后,可以运行fluent-ffmpeg,通过fluent-ffmpeg的api编程,完成ffmpeg的使用。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参考资料:@黎
https://zhuanlan.zhihu.com/p/184960762
钻研不易,转载请注明出处。。。。。。
标签:ffmpeg,前端,视频流,flv,fluent,命令行,使用 From: https://www.cnblogs.com/s313139232/p/17147494.html