首页 > 其他分享 >ffmpeg前端使用研究

ffmpeg前端使用研究

时间:2023-03-16 10:11:27浏览次数:33  
标签:ffmpeg 前端 视频流 flv fluent 命令行 使用

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

相关文章

  • 在linux下makefile的使用示例
    前言Makefile文件中的命令有一定规范,一旦该文件编写好以后在Linux命令行中执行一条make命令即可自动编译整个工程。不同厂家的make可能会稍有不同,并且语法上也有区别,不过......
  • Jenkins工具的使用
    1.建立一个新任务建立一个Iten名称,输入一个任务名称jmeter-demo,选择构建一个maven项目,点击确定     2.进行git的配置(1)在源码管理中选择Git,填入git地址:https://......
  • 使用 Filebeat 监听日志文件
    Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elastic......
  • VUE的setup、ref、reactive和代理数据的使用
    一.VUE的setup、ref、reactive和代理数据的使用1.1setup和ref先来实现一个简单的点击按钮,数字增加的案例:需求:页面打开后可以直接看到一个数据,点击按钮后,该数据可以发生......
  • unity GetComponent使用
    GetComponent得到单独一个对象或属性可用于获取:模型对象,对象的属性,对象悬挂脚本//获取模型对象脚本名(ScriptName)接收对象(Model)=GetComponent<脚本名(ScriptName)>......
  • 【小哥132】显示与隐藏网络名-Z-Copy命令使用-导入网表-放置封装-添加Mark点与非电气
    走线,焊盘,动态铜皮显示网络名称。静态铜皮与过孔不能显示网络名称  Z-copy复制一个RouterKeepin区域(允许布线)内缩20mil,拼板与使用过程不会损坏到线Z-copy命令使用,......
  • 抓包工具的使用
    抓包工具和PyExeJs模块我们在处理一些网站的时候,会遇到一些屏蔽F12,以及只要按出浏览器的开发者工具就会关闭甚至死机的现象.在遇到这类网站的时候.我们可以使用抓包......
  • JS当前时间(可直接复制使用)
    1<divclass="showTime"></div>2<script>3vart=null;4t=setTimeout(time,1000);//開始运行5functiontime(){6......
  • 前端笔试题
    前端高级软件工程师笔试题A卷一、选择题(每题4分,共20分)1.typeof[0,1]==_____AA.objectB.arrayC.numberD.string2.关于session和cookie描述不正确的是CA.s......
  • 【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看
    highlight:a11y-dark简介前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用。但由于原来OpenAI并没有支持官网的chatgpt模型,所以使用起来相对没有官网......