前言

最近有点迷茫,所以将自己用过的东西写个Demo记录一下,复习复习。

具体实现:

Easydarwin 一个开源的好用的流媒体平台框架。

FFMPEG  一个视频音频处理神器,就是用起来有点麻烦,必须保证命令正确。

FFMPEG将视频或者视频地址(Rtsp,Rtmp)转码推流到EasyDarwin做转发,FFMPEG将EasyDarwin视频做切片成M3U8文件。

网站直接访问M3U8文件,实现HLS点播。算是一个粗糙的Demo,具体可以根据需求更改。

参考:

FFMPEG:

EasyDarwin:

实现过程

EasyDarwin 下载解压之后如下:

现在这个已经很完善了,最开始用的使用bat文件启动,而且没有这个简洁,

Easydarwin.ini 配置项和注意事项可以自己配置也可以使用默认配置。

单击 ServiceInstall-EasyDarwin.exe 等待安装完成如下:

打开浏览器,输入 http://127.0.0.1:10008 可以看到设备当前运行状态和推流拉流的列表,效果界面如下:

测试视频地址:  rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

这个地址公开的,算是比较稳定的,以前测试可以用现在还是可以,有些地址就没办法访问了。

使用cmd输入  ffmpeg.exe -i "RTSP地址" -vcodec copy -acodec copy  -rtsp_transport tcp -f rtsp "推流地址"

Rtsp默认为554端口,RTSP地址为最后实际使用的地址,推流为 rtsp://127.0.0.1/test.hls 127.0.0.1本地测试,远程为推流服务IP

例子: ffmpeg.exe -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -vcodec copy -acodec copy  -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test.hls

具体命令行参数详解参考:官网参考

每次使用。。。都是头大,用过之后吧命令记下来,需要更改就一个个看。

推流成功,cmd窗口如下会不停的刷新当前参数:

此时EasyDarwin网站推流列表会显示对应地址和可以拉流的地址如下:

验证该播放地址是否可以播放,可以使用VLC输入该地址测试。

此时推流和接收部分完成,只需要用FFMPEG获取播放地址的数据进行切片获取M3U8,网站播放。

在打开一个cmd,命令如下:

ffmpeg.exe -i rtsp://127.0.0.1/test.hls -fflags flush_packets -max_delay 2 -hls_flags delete_segments -hls_time 2 -g 30 ********live.m3u8

红色部分,第一个为EasyDarwin转发的播放地址,第二个为live.m3u8文件的保存路径,成功之后效果图如下:

此时在网站中访问这个地址,就可以实现HLS点播。

网站实现:

首先下载一个 hls.js的库文件:地址

代码实现:

//下载的hls.js 文件路径

htmlvideo.controls= true;var hls = newHls();

hls.loadSource("/live.m3u8");//m3u8文件路径

hls.attachMedia(htmlvideo);

hls.on(Hls.Events.MANIFEST_PARSED, function () {

htmlvideo.play();

});

}

打开HLS视频

总结

很多时候我们站在了巨人的肩膀上,很多东西发现了才知道自己渺小。

第一次接触FFMPEG内心就一句话:“卧槽,这个东西好方便,写这个东西的人好牛逼”。

第一次使用EasyDarwin感觉很麻烦,后面发现真的好用简单了很多。

给自己加个油,努力,奋斗~~~~~~~

java实现hls_Easydarwin加FFMPEG实现HLS流视频点播相关推荐

  1. ffmpeg生成hls直播流

    ffmpeg生成hls流 1.nginx搭建Http服务器 配置nginx-win-rtmp.conf文件:这个配置可以进行推rtmp流,也可以推hls的流.配置中追加 rtmp {applicati ...

  2. 使用FFmpeg、HLS和Nginx搭建在线视频流媒体播放系统

    目录 1.综述 2.安装nginx 3.安装ffmpeg 4.安装m3u8-segmenter 5.制作m3u8文件与ts文件 6.VLC播放器中测试 7.web网页中的播放测试 本文简单介绍一下如何 ...

  3. 使用ffmpeg搭建HLS直播系统

    [时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg,live,直播,点播, nginx, ssegment] 0 引言 本文作为HLS综述的后续文章. ...

  4. 这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析

    前言 package com.jvm.classloader;class Father2{public static String strFather="HelloJVM_Father&qu ...

  5. Java从入门到精通十一(javaIO流)

    Java从入门到精通十一(javaIO流) IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据? 字节流说明 字节输入流读数据的方法 ...

  6. Java学习day08--方法引用和Stream流

    Java学习day08--方法引用和Stream流 方法引用和Stream流 方法引用 获取Collection.Map.数组流 Stream流的常用操作方法 方法引用和Stream流 1).流思想: ...

  7. ffmpeg 之 hls

    前言 与其他博客不同,本文不是讲解HLS 协议本身,而是讲解在FFMPEG 中是如何解析HLS的,当然FFMPEG 也是按照HLS 协议去封装/解析 HLS 流的,因此读完本文不但能了解HLS 协议本 ...

  8. Java学习笔记---Lambda表达式及Stream流Api

    Lambda 特性: 允许把函数作为参数传递进方法. 前置条件: 必须是函数式接口---------->[函数式接口:满足以下三条1.接口中只有一个抽象方法.2.可以有默认实现的方法.3.可以有 ...

  9. java(十)【属性集,缓冲流、转换流、序列化流】

    day10[缓冲流.转换流.序列化流] 今日目标 IO资源的处理. finnally释放资源 jdk 1.7开始的新技术 try-with-resources 缓冲流 提高字节流和字符流读写数据的性能 ...

最新文章

  1. 我在51cto微职位学软考——宝妈一次性通过高项的学习经历
  2. Sublime Text 3 python 配置
  3. retain和copy还有assign的区别
  4. FPGA机器学习之stanford机器学习第三堂2
  5. kettle大于0的转换成1_第一期实训周:基于Python+MySQL+Kettle+R的某网站数据采集分析...
  6. null和undefined相等
  7. layui 单选项 点击显示与隐藏 很实用
  8. 构建模式--Adapter模式(JAVA)
  9. 阿里-优酷视频增强和超分辨率挑战赛冠军方案:VESR-Net
  10. linuxpython安装_Linux安装python3.6
  11. Active Directory 域服务(AD DS)
  12. 图形数字化工具 - getData
  13. Java实现微信聊天记录生成器
  14. 使用john破解密码
  15. SCAU高级语言程序设计OJ
  16. 36岁大数据人被中台问倒,没点架构思维,连面试都过不了?
  17. BlockingQueue 使用
  18. 彻底了解DVD:从入门到精通(二)[转]
  19. mac安装配置zsh
  20. 仙童传奇-半导体的奇迹

热门文章

  1. 思科路由器交换机常用命令
  2. Mysql 添加字段或者创建表SQL语句
  3. Apache Pulsar的consume的各种subscription mode订阅模式、consume消费者的消费规则
  4. 2013.4.8早会
  5. [31期] 写给Lamp兄弟连31期我的兄弟姐妹们
  6. 聚星Note02- 后台管理环境搭建(2)
  7. 【资源下载】超级好用的几款免费图床
  8. 4套海外精品样机合集,让设计更简单【59】
  9. Python通过smtplib发送邮件(2020最新最全版)
  10. SWI-prolog工具开发小案例