由于2020年后,谷歌浏览器将不再支持flashplay了,从而网页视频的播放,在谷歌浏览器上,不得不像其他办法,而hls是一个不错的方式,前端H5有现成的js标签,能直接支持苹果的hls,并且不用下载插件而能直接播放,所以hls就是一个不错的选择了。

hls是苹果公司开发一套流媒体协议,其实原理就是把一段连续的视频,切割成一个一个的ts小文件,用m3u8文件来管理这些文件,客户端直接访问这个m3u8文件,根据相关协议来连续下载这些ts文件,一个个的播放,从而实现视频连续播放,由于是一个个下载,一个个切割,所以hls一个大的缺陷就是视频有巨大的延迟,这个是一个硬伤。

目前nginx是支持H264和H264的hls协议的,但是nginx太庞大,为了实现跨平台,里面的自带nginx特色比较严重,移植不方便,但是可以参考里面的切割视频和封装成ts文件的方式。

实现思路:

1,参考nginx的hls封装H264和H265的ts文件方式

2,http服务器采用libevent库或者直接用nginx代理也可以,通过这个就可以实现客户端下载ts视频文件

基于上面这两点就可以实现一个纯C语言的简洁,方便移植的hls转发服务器了。

在写代码前学习:

1,ts封装协议格式

2,m3u8文件格式

C语言从头开始写一次hls视频转发服务器,支持H264和H265相关推荐

  1. php 直播服务器搭建,基于Nginx搭建RTMP/HLS视频直播服务器

    1.Nginx环境搭建(基于lnmp环境)//下载并安装lnmp环境 wget -c http://soft.vpser.net/lnmp/lnmp1.3.tar.gz && tar ...

  2. c语言中用qt写换肤,让Qt应用程序支持换肤(Skin)功能

    Qt程序一直给人的印象是正规的GUI程序的模样.在嵌入式Linux下,Qtopia的桌面看起来跟WinCE桌面没有什么两样.相对IPHONE那样的漂亮界面.实在没有什么吸引力. 因此很多嵌入式开发人员 ...

  3. 语言可读性可写性_如果您想谈论可访问性,那么我们需要谈论可读性问题。

    语言可读性可写性 by Code Girl 通过Code Girl 如果您想谈论可访问性,那么我们需要谈论可读性问题. (If you want to talk about Accessibility ...

  4. 从头开始写框架(一):浅谈JS模块化发展

    博客申请下来已经过去一个月了,一直不知道写点什么,毕竟我的文笔不是很好orz. 不过既然申请下来了,不写点什么总是觉得很可惜.正好最近在自己写框架,就把自己的进程和一些心得体会分享出来吧. 写在前面: ...

  5. 2016年,C语言该怎样写

    C语言的首要原则是--能不写C语言就不写.如果一定要写,请遵守现代规则. C语言诞生于20世纪70年代初.人们在其发展的各个阶段都在"学习C语言",但在学习C语言之后,知识往往停滞 ...

  6. c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...

    c语言从头开始(三:编译器工作原理) [[枫歌枫歌]c语言从头开始(三:编译器工作原理)]https://toutiao.com/group/6568056688174170628/?iid=1590 ...

  7. c语言每次堆的变化是1k,DSPXC语言+程序烧写讲述.ppt

    DSPXC语言程序烧写讲述 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...

  8. c语言服务器制作,C语言写的简易实用的web服务器

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Apache在码农界是比较知名的,它也是目前最接地气.使用最广泛的Web服务器 ...

  9. 智源AI日报(2022-09-02):我是如何从头开始写一篇顶级论文的

    [智源AI日报]每天速读5分钟,AI要事不错过!欢迎点击这里,关注并订阅智源AI日报. 经验 | 我是如何从头开始写一篇顶级论文的 看点:从一形成Routine的日常科研生活中挖掘到巧妙的论文产出攻略 ...

最新文章

  1. css媒体查询标准,CSS 媒体查询 - 实例
  2. shell学习(17)- shell中21的解释及输入输出重定向
  3. xgboost安装_Machine Learning Mastery 博客文章翻译:XGBoost
  4. Spark 数据挖掘 - 利用决策树预测森林覆盖类型
  5. 求解哈夫曼编码Java实现,用Java实现哈夫曼编码解决方法
  6. 在Java中衡量执行时间– Spring StopWatch示例
  7. C++设计模式-解释器模式
  8. 【caffe】caffe采用multistep,绘制loss曲线出错
  9. MongoDB学习记录:入门(一)——五叶草
  10. C# 通过一个控制台打开另一个控制台
  11. RDD文件读取与保存
  12. 书店计算机管理制度范文,书店管理制度
  13. mysql有关时间教程_MySQL教程21-日期和时间类型
  14. 贪心算法实例java,算法java实现--贪心算法--哈弗曼编码
  15. 【Unity实战100例】Unity数据导出Excel表格
  16. 用计算机实测技术研究声波和拍内容,大学物理实验
  17. 《东周列国志》第十二回 卫宣公筑台纳媳 高渠弥乘间易君
  18. SpringBoot基础
  19. 0基础如何自学软件编程开发
  20. 线性代数:行列法则Python计算AB矩阵乘法

热门文章

  1. mac OS 查看开机/关机/重启记录
  2. 我的第一篇html代码
  3. WPS批量打印的技巧
  4. 图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信
  5. IT项目管理个人报告
  6. marlin2.0.5.4配置详解
  7. 逻辑回归(Logistic regression)详解-并用scikit-learn训练逻辑回归拟合Iris数据集
  8. 第五届-双路模拟输出
  9. 使用蜻蜓映射实现外网访问内网金蝶软件服务
  10. dyld: Library not loaded: