ffmpeg前端使用研究

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的使用。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

服务启动  node index.js

参考资料:@黎

      https://zhuanlan.zhihu.com/p/184960762

钻研不易,转载请注明出处。。。。。。

 

posted @   莫小龙  阅读(522)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示