java支持html5视频流技术Pseudostreaming – Roden的专栏 – CSDN博客
- java支持html5视频流技术Pseudostreaming
写博客 消息 登录注册
java支持html5视频流技术Pseudostreaming
Roden
阅读数 5377
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010605082/article/details/50896685
伪流技术是一种能在常见HTTP服务器如APACHE、tomcat、IIS或lighttpd上安装提供的一种协议。它使用服务端脚本来提供客户端到服务器的视频交互。播放器在URL上携带start time的参数发送HTTP请求到服务端,服务端的脚本处理视频流并且给予回复,保证提供的视频流起始位置与START TIME参数所对应。这个start time的参数通常命名为“start”,这个技术同样被风靡全球的youtube所使用,它使用的是lighttpd WEB服务器。
对于播放器来说,使用伪流或其他流式的解决方案最大的好处是:能跳转到尚未下载到的视频部分。这种情况在很符合大文件播放需求,比如2个小时的视频,用户想立刻跳转到它的后面部分开始播放,(这样不需要下载中间用户不关心的部分了)。好处如下:
- 能够随机跳转到视频的任意时间
- 从视频的中间开始播放
- 提供客户方流媒体服务器和服务端脚本集成的可能
- 支持FLV和H.264的视频
直到现在,仍然不存在一项旨在网页上显示视频的标准。
今天,大多数视频是通过插件(比如 Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。
HTML5 规定了一种通过 video 元素来包含视频的标准方法。
Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件
MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件
WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件
package com.roden.video;import java.io.IOException;
import java.io.OutputStream;
import java.net.URLDecoder;
import java.nio.ByteBuffer;
import java.nio.channels.SeekableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import static java.nio.file.StandardOpenOption.READ;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public final class PseudostreamingServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final int BUFFER_LENGTH = 1024 * 16;private static final long EXPIRE_TIME = 1000 * 60 * 60 * 24;private static final Pattern RANGE_PATTERN = Pattern.compile("bytes=(?<start>\d*)-(?<end>\d*)");private String videoPath;@Overridepublic void init() throws ServletException {videoPath = getInitParameter("videoPath");}@Overrideprotected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {processRequest(request, response);}private void processRequest(final HttpServletRequest request, final HttpServletResponse response) throws IOException {String videoFilename = URLDecoder.decode(request.getParameter("video"), "UTF-8");Path video = Paths.get(videoPath, videoFilename);int length = (int) Files.size(video);int start = 0;int end = length - 1;String range = request.getHeader("Range");range=range==null?"":range;Matcher matcher = RANGE_PATTERN.matcher(range);if (matcher.matches()) {String startGroup = matcher.group("start");start = startGroup.isEmpty() ? start : Integer.valueOf(startGroup);start = start < 0 ? 0 : start;String endGroup = matcher.group("end");end = endGroup.isEmpty() ? end : Integer.valueOf(endGroup);end = end > length - 1 ? length - 1 : end;}int contentLength = end - start + 1;response.reset();response.setBufferSize(BUFFER_LENGTH);response.setHeader("Content-Disposition", String.format("inline;filename="%s"", videoFilename));response.setHeader("Accept-Ranges", "bytes");response.setDateHeader("Last-Modified", Files.getLastModifiedTime(video).toMillis());response.setDateHeader("Expires", System.currentTimeMillis() + EXPIRE_TIME);response.setContentType(Files.probeContentType(video));response.setHeader("Content-Range", String.format("bytes %s-%s/%s", start, end, length));response.setHeader("Content-Length", String.format("%s", contentLength));response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);int bytesRead;int bytesLeft = contentLength;ByteBuffer buffer = ByteBuffer.allocate(BUFFER_LENGTH);try (SeekableByteChannel input = Files.newByteChannel(video, READ);OutputStream output = response.getOutputStream()) {input.position(start);while ((bytesRead = input.read(buffer)) != -1 && bytesLeft > 0) {buffer.clear();output.write(buffer.array(), 0, bytesLeft < bytesRead ? bytesLeft : bytesRead);bytesLeft -= bytesRead;}}}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
由于使用了Nio请使用jdk7以上版本
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"><servlet><servlet-name>stream</servlet-name><servlet-class>com.roden.video.PseudostreamingServlet</servlet-class><init-param><param-name>videoPath</param-name><param-value>F:/BaiduYunDownload/</param-value></init-param></servlet><servlet-mapping><servlet-name>stream</servlet-name><url-pattern>/stream</url-pattern></servlet-mapping><session-config><session-timeout>30</session-timeout></session-config>
</web-app>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
注意此处配置了视频文件的保存目录,需要根据实际情况进行修改
<!DOCTYPE html>
<html><head><title>HTML5 Video Pseudostreaming</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="//code.jquery.com/jquery-1.12.0.min.js"></script><script>$(document).ready(function(){ var video = $('#myvideo');$("#play").click(function(){ video[0].play(); }); $("#pause").click(function(){ video[0].pause(); });$("#go10").click(function(){ video[0].currentTime+=10; });$("#back10").click(function(){ video[0].currentTime-=10; });$("#rate1").click(function(){ video[0].playbackRate+=2; });$("#rate0").click(function(){ video[0].playbackRate-=2; });$("#volume1").click(function(){ video[0].volume+=0.1; });$("#volume0").click(function(){ video[0].volume-=0.1; });$("#muted1").click(function(){ video[0].muted=true; });$("#muted0").click(function(){ video[0].muted=false; });$("#full").click(function(){ video[0].webkitEnterFullscreen(); // webkit类型的浏览器video[0].mozRequestFullScreen(); // FireFox浏览器});});</script>
</head>
<body>
<video id="myvideo" width="80%" height="80%" controls="controls"><source src="stream?video=美丽的风景.mp4" /><!--<source src="stream?video=美丽的风景.mp4" type="video/mp4" /><source src="stream?video=美丽的风景.mp4" type="video/webM" /><source src="stream?video=美丽的风景.mp4" type="video/ogg" />-->你的浏览器不支持html5
</video>
<hr>
<button id="play">播放</button>
<button id="pause">暂停</button>
<button id="go10">快进10秒</button>
<button id="back10">快退10秒</button>
<button id="rate1">播放速度+</button>
<button id="rate0">播放速度-</button>
<button id="volume1">声音+</button>
<button id="volume0">声音-</button>
<button id="muted1">静音</button>
<button id="muted0">解除静音</button>
<button id="full">全屏</button>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
注意根据目录下的文件修改请求文件名 示例中为美丽的风景
由于IE对html5的兼容性较差,ie9以上才支持mp4格式,其它版本可以使用flash进行播放
2、3年经验的切图仔,如何把开发思维提前 5 年?
每个前端开发都想面试大厂、带团队,可是大厂技术思维领先你至少5年,想要进击,就得把眼光放到前方,工程化正是你需要的!快狗打车Leader王超力作,58沈剑首次站台,学完直接落地
-
冷日刺眸: 请问range是个什么参数,前台如何传到后台的?(1年前#2楼)查看回复(1)
-
qq_21509529: 好像不行啊(2年前#1楼)
serlvet实现简单的伪流传输推送视频网站
阅读数
571
servlet简单的视频传输
博文
来自: baidu_27952463的博客
java实现摄像头调用,处理视频流
阅读数
1万+
packagecom.fx;importjava.awt.BorderLayout;importjava.awt.Toolkit;importjavafx.application.Platform;i…
博文
来自: 随风飘扬的尘土
如何捕捉视频流并保存到文件(Capture video to File)
阅读数
4496
1将视频流保存到AVI文件AVIMuxfilter接收从capturepin过来的视频流,然后将其打包成AVI流。音频流也可以连接到AVIMuxFilter上,这样muxfilter就将视频流和视频流…
博文
来自: Simon、的专栏
实时监控、直播流、流媒体、视频网站开发方案设计简要
阅读数
3万+
欢迎大家积极开心的加入讨论群群号:371249677(点击这里进群)一、本地推送端1、本地:采用javaCV(安卓和java平台推荐javaCV)、ffmpeg、openCV或者jmf可以很方便的获取…
博文
来自: 博客内容将迁移至博客园、掘金和SegmentFault!-eguid
JAVA-IO之读取媒体文件(图片、音频、视频)
阅读数
4969
在JAVA中使用字节流处理媒体文件。关键词:FileInputStreamFileOutputStreamBufferedInputStreamBufferedOutputStream下面代码演示复制…
博文
来自: 薛定谔的猫窝
Java后台对前台H5的video如何控制播放
–
问答
java输出视频流
阅读数
6164
@RequestMapping(value="/imageView1",method={RequestMethod.GET})publicvoidimageView1(Http…
博文
来自: Fisher_yu01的博客
java如何实现流媒体在线直播功能?
简单介绍一下java实现流媒体在线直播功能,比较好用的第三方工具和工具实现教程。
论坛
java 视频流读写
03-15
下载
java支持html5视频流技术Pseudostreaming – Roden的专栏 – CSDN博客
10-23
java支持html5视频流技术Pseudostreaming2016年03月15日 15:13:57 Roden 阅读…伪流技术是一种能在常见HTTP服务器如APACHE、tomcat、IIS或lighttpd上安装提供的…
java输出视频流 – Fisher_yu01的博客 – CSDN博客
7-21
Java web 几种实现在网页页面里播放视频的 插件及方法
阅读数
1万+
第一种使用jQuery库的video.js (1)首先我们要下载video.js 网址:http://www.jq22.com/jquery-info404(2)然后在要播放的html/jsp页面引…
博文
来自: www_worf的博客
使用html5实现rstp视频流播放 – altermanzhu的专栏 – CSDN博客
6-25
java支持html5视频流技术Pseudostreaming 03-15 阅读数 5263 伪流技术是一种…博文 来自: Roden的专栏 HTML5中video标签可用的流媒体服务器是什么 04-26…
html5实现视频播放<video> – andrewleeeeee的专栏 – CSDN博客
11-18
html5 video 手机端全屏显示 废话不多说上代码 html video 不支持video…java支持html5视频流技术Pseudostreaming – Roden的专栏 03-15 4569 伪流…
java怎么处理视频流的
–
问答
关于对html5播放实时视频流的预研 – lianghui_zhang的…_CSDN博客
5-24
java支持html5视频流技术Pseudostreaming 03-15 阅读数 5189 伪流技术是一种…博文 来自: Roden的专栏 web无插件解码播放H264/H265(js解码HTML5播放) 09…
HTML5 – 使用<video>播放视频 – CSDN博客
7-9
关于java视频流获取与播放的操作
我是学习java的,我准备做一个基于java的视频会话系统,但是对于如何获取视频流和将视频流数据在播放器里播放没有思路,大家有没有什么好的建议??非常感谢
论坛
HTML5视频流和音频流与后台交互的问题
现在因业务需求,需要通过使用HTML5的多媒体捕获技术,当用户的pc端访问时,获取用户的摄像头和麦克风的视屏流和音频流,然后发送到后台。后台需要同步的将视频流和音频流发送到用户的移动端如手机等进行展示
论坛
用java实现视频截帧的方法 – weibin_6388的专栏 – CSDN博客
6-14
…视频流播放 之 调试视频源 – H5Stream/HTML5 Streaming – CSDN…
3-28
java支持html5视频流技术Pseudostreaming 03-15 阅读数 5042 伪流技术是一种…博文 来自: Roden的专栏 用HTML5播放IPCamera视频 04-28 阅读数 1万+ …
java制作视频播放器
阅读数
1万+
前言国庆前几天,无意中看到关于VLCJ包的文章,可以导入java工程制作自己的java视频播放器,感觉有意思,就自己捣鼓几天,做出了个功能较为齐全的跨平台的视频播放器,高级功能之后有时间再弄,我把项目…
博文
来自: gannyee
java web项目 处理视频流问题
这几天一直在考虑怎么实现在web界面播放视频的问题。 其实直接在html里写video标签 src属性指定成localhost:8080/upload/1.mp4就直接可以播放的,但是因为需求需要把s
论坛
软件工业的JIT宣言
阅读数
747
JIT起源于二十世纪初期,兴盛于日本。在工业化大生产的机械时代,它在各行各业中被采用并改进,更是广泛应用于制造业。无疑,在这一阶段,JIT管理对于生产行业,特别是制造业的贡献,功不可抹;它使机械…
博文
来自: shtonyhu的专栏
java BufferedReader 读取的视频文件总是不完整
初学java 实验的BufferedReader实验程序: import java.io.*; public class TestFilewriter { public static void mai
论坛
java处理视频文件,读取视频的时长
阅读数
2万+
最近需要用java处理视频文件,读取视频的时长,在网上查,没找到合适的方法,用JMF吧,支持的格式太少,用JNI去读取其他语言写的API,但比较麻烦。无意中找到了jave这个开源的项目,看了看介绍,是…
博文
来自: sivyer123的专栏
Java 处理视频 、音频文件(读取视频时长等) – JAVE
阅读数
1万+
简介 TheJAVE(JavaAudioVideoEncoder)libraryisJavawrapperontheffmpegproject.Developerscantaketakeadva…
博文
来自: jerome_s的博客
Java中使用Opencv从视频文件中获取帧
阅读数
7823
实现功能:使用Java获取mp4、mov、avi等视频文件中的图像帧,每秒获取一帧图像,并保存环境要求:需要安装Opencv,安装FFmpeg,下载javacv包操作系统:本次实验使用的Ubuntu系…
博文
来自: Fang的博客
用java实现视频截帧的方法
阅读数
1万+
在软件系统中有时在wed端、移动端显示视频时,如果同时显示多个视频,有可能会将多个视频的数据全部装入内存,在一定程度上回影响系统性能。比较好的一中解决方案是显示视频的一帧图片,点击图片之后即可播放视频…
博文
来自: weibin_6388的专栏
【Java】Red5服务器搭建(实现在线直播,流媒体视频播放)
阅读数
1万+
引言流媒体文件是目前非常流行的网络媒体格式之一,这种文件允许用户一边下载一边播放,从而大大减少了用户等待播放的时间。另外通过网络播放流媒体文件时,文件本身不会在本地磁盘中存储,这样就节省了大量的磁盘空…
博文
来自: 小帅丶的专栏
通过视频流实现视频的播放
09-08
下载
javaweb怎么实现在线视频播放?
要做一个视频在线播放的功能,但是没有思路,请高人指点!
论坛
急!!!视频在线播放?在jsp里通过传入一个流实现播放本地视频?怎么边加载边播放啊?
在后台的action 写了一个这个 并且把一个流传到了前台 InputStream fis = new FileInputStream(video); byte buffer = new byte;
论坛
java返回H5视频流能够在IOS中播放
阅读数
1780
在IOS中,H5页面中,video标签下,视频源必须满足range的要求,如果视频比如快进或者后退,实际上是再次发送了视频源的请求只不过range的范围不同。不说了,上代码:publicvoidret…
博文
来自: LeoHan163的博客
JAVA播放视频流 200分 求解,顶也有分
需求是这样的,对方有一个设想头监控现场信息,然后想把数据嵌入到JAVA中播放 有经验的兄弟们指导下,需要社么开源.对于这种流的操作涉及到哪些类?
论坛
JAVA 解码rtsp视频流
阅读数
4532
packagecom.aast.test;importjava.io.*;importjava.text.SimpleDateFormat;importjava.util.Date;importorg…
博文
来自: douzi949389的博客
html5 video标签播放视频流解决方案
阅读数
7199
项目要求从文件服务器读取音视频文件,以流的方式传给前台,并能够播放视频。做了一个demo,用html5的video,audio标签实现。后台实现代码:@GetMapping(value="/…
博文
来自: weixin_37781081的博客
h264 rtp打包 java版本
07-12
下载
java处理苹果浏览器safari无法播放视频流(Accept-Ranges)
阅读数
5438
最近在做一个在线播放视频流的程序,安卓和电脑上都可以正常的播放。可以唯独ios上无法正常播放。开始在网上找了很多资料觉得不是很到位,所以在这里记录一下。刚开始时代码返回的视频流是在一个请求里全部返回的…
博文
来自: u010120886的博客
屏蔽百家号 -(baijiahao)
阅读数
1万+
快过年了,回家了,发个非技术博客吧。最近被百家号恶心到不行,搜了下屏蔽方法,在家懒得翻墙用谷歌,又懒得装插件设置屏蔽,找到了一个简单有效的方法,直接在搜索内容后边加-(baijiahao),效果还不错…
博文
来自: 慢慢积累
ARM上Linux的TCP通信实例 – ZYNQ7020学习
阅读数
1289
这是在接触一段时间的Linux网络通信后回过来给自己重新熟悉一些基本函数功能,所以,这里不做任何代码注释,自己慢慢去查看每一个函数的原型、参数含义、返回值以及调用方式,这样才能真正学到东…
博文
来自: 逸璞丷昊的博客
linux下的C语言开发(定时器)
阅读数
94
定时器是我们需要经常处理的一种资源。那linux下面的定时器又是怎么一回事呢?其实,在linux里面有一种进程中信息传递的方法,那就是信号。这里的定时器就相当于系统每隔一段时间给进程发一个定时信号,我…
博文
来自: weixin_34347651的博客
安装 win7+ubuntu16.0 双系统
阅读数
464
电脑配置:1,双硬盘:SSD120G+HDD500G;2,电脑没有EFI模式,只能用GRUB模式;3,电脑boot只能识别主硬盘位的SSD,光驱位HHD开机时不识别;(导致按教程安装不成功,折腾了三天…
博文
来自: 独钓寒江雪
Win7+Ubuntu16.04双系统安装
阅读数
8711
1、安装前准备1.1下载Ubuntu16.04镜像(32位或64位)1.2使用ultraISO制作U盘启动盘1.3安装Ubuntu系统1.4用EasyBCD创建启动系统启动引导1.5启动系统2、划分系…
博文
来自: Asia-Lee的博客
Ajax与Struts2的action之间的数据交互
阅读数
9648
本文将主要说明Ajax与Action数据交互的实现过程,前端使用JQuery中Ajax的相关方法,get或者post,将数据以Json格式传回到业务调度Action中,Action中处理后,再讲数据以…
博文
来自: 正在加载中
tensorflow-android 官方demo源码分析
阅读数
4739
1引言目前深度学习模型已经应用到了各个领域,将TensorFlow训练模型部署到终端上也逐步变为了现实。特别是mobileNet等体积小,占用内存少的模型出现后,将深度学习应用到终端上逐渐变得火热起来…
博文
来自: 谢杨易的博客
无需备份!!!动态磁盘转换为基本磁盘!!!绝对可用!!!
阅读数
9850
刚刚换了固态硬盘,替换下来的机械硬盘,买了移动硬盘盒,组装成了移动硬盘,但是,因为这个硬盘之前在我的电脑里设置过,插上后是动态的,磁盘管理识别无效。百度一番,说是要备份后,在磁盘管理中转换为基本磁盘,…
博文
来自: 不努力的人不配谈理想
css3实现旋转相册效果
阅读数
2616
&lt;!doctypehtml&gt;&lt;htmllang="en"&gt;&lt;head&gt;&lt;metac…
博文
来自: scarsun的博客
spring boot spring security 自定义 filter FilterSecurityInterceptor 访问资源 静态资源 和 不需要权限访问都失效了
阅读数
6411
问题:spring boot security 中,filters="none" 对应哪个?自定义AbstractSecurityInterceptor后 静态资源也进入拦截器,登…
博文
来自: laokaizzz的专栏
VS2017必备的插件扩展
阅读数
7215
“工具善其事,必先利其器!装好这些插件让vs更上一层楼”ReSharper : 首先的是Resharper,这个基本是目前是我开发过程中必备的工具集,唯一的缺点就是吃内存,所以你的内存要是低于8G,…
博文
来自: ethan1121的博客
软考中级网络工程师学习笔记(知识点汇总)单点详细版
阅读数
2853
线路交换1、线路交换进行通信:是指在两个站之间有一个实际的物理连接,这种连接是结点之间线路的连接序列。2、线路通信三种状态:线路建立、数据传送、线路拆除3、线路交换缺点:典型的用户/主机数据连接状态,…
博文
来自: 华农老林的博客
使用inno setup做打包的时候,如何检测系统是否已安装了.net 4.0 以上的版本?
.net framework 能否打包到安装程序里面? 如何没有安装,系统帮自动安装. 有没相关的例子代码?
论坛
springboot后台接收集合(对象集合)
阅读数
235
最近在工作中遇到一个问题,发现直接用集合去接收前台传过来的集合,会报如下图的错然后百度了很多种方法,百度的过程中看到的有比如在接收的参数前面加入@RequestBody但是我试过之后好像没什么用也有说…
博文
来自: weixin_43009990的博客
任务计划,选中“不管用户是否登录都要运行”后,为什么脚本失去了查询目录的权限
我是域用户,我写了一个PowerShell脚本,查询某个文件夹下的文件数,并记录到文件中。 运行这个PowerShell脚本,结果正常。现在把这个脚本加到“任务计划”中自动执行,我发现只有当我在任务计
论坛
vmware的命令行参数
阅读数
7244
vmrun命令行工具:对于自动化测试有如下实用命令行(-T代表目标类型,后更参数ws代表Workstation):lPowerCommands:开启、停止、重启、挂起虚拟机vmrun-Twsstart…
博文
来自: 我是guyue,guyue就是我O(∩_∩)O
Unexpected token o in JSON at position 1 报错原因
阅读数
2万+
欢迎访问我的个人博客http://xiaolongwu.cn/写在前面的话这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使…
博文
来自: 积少成多
iOSTAT 命令的详解 (可以用作Solaris 查看内存、CPU和磁盘读写速度)
阅读数
6128
iostat-报告I/O统计信息用法概要/usr/bin/iostat[-cCdDeEiImMnpPrstxXYz][-ln][-Tu|d][disk]…[interval[count]]描述io…
博文
来自: Booooom
Eclipse 4.4(luna) 安装fatjar插件时报错的问题
阅读数
5287
原文地址:http://blog.csdn.net/genghaihua/article/details/44726523[plain] viewplaincopyprint?An error occ…
博文
来自: 思考的智慧,知识源于思考
机器学习教程
Objective-C培训
交互设计视频教程
颜色模型
设计制作学习
mysql关联查询两次本表
native底部 react
extjs glyph 图标
java 视频流的学习
ios开发上传视频流
java支持html5视频流技术Pseudostreaming – Roden的专栏 – CSDN博客相关推荐
- java支持html5视频流技术Pseudostreaming
伪流技术是一种能在常见HTTP服务器如APACHE.tomcat.IIS或lighttpd上安装提供的一种协议.它使用服务端脚本来提供客户端到服务器的视频交互.播放器在URL上携带start time ...
- Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...
Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...
- 【小工具】CSDN博客导出工具-Java集成Maven开发
CSDN博客导出工具 之前一直想把CSDN的博客导入到自己的网站中,可是由于博客比较多,后面受朋友老郭启发,就找了个时间用Java开发了这款小工具. 转载请注明出处:http://chenhaoxia ...
- 怎么禁止/开启Ubuntu自动更新升级_豆豆技术派的博客-CSDN博客_ubuntu 自动更新
怎么禁止/开启Ubuntu自动更新升级_豆豆技术派的博客-CSDN博客_ubuntu 自动更新
- 让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET
让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET 让 QtWebkit 支持跨域CROS 2013-05-23 22:05 450人阅读 评论 ...
- 蛙蛙推荐:一个程序员2012年技术学习总结 - 蛙蛙王子 - 博客园
蛙蛙推荐:一个程序员2012年技术学习总结 - 蛙蛙王子 - 博客园 蛙蛙推荐:一个程序员2012年技术学习总结 - 蛙蛙王子 - 博客园 俗一吧,也总结一下,程序员,代码说话. posted on ...
- java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母
import java.util.regex.Matcher; import java.util.regex.Pattern;public class StrValidate {// 纯数字priva ...
- 网页制作期末大作业成品 HTML5+CSS大作业——简约个性高逼格博客(5页) web网页制作期末大作业模板
HTML5+CSS大作业--简约个性高逼格博客(5页) web网页制作期末大作业模板 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞 ...
- 最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础...
最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础,加油吧 距离去北京还有23天 转载于:https://www.cnblogs.com/AceIsSunsh ...
最新文章
- Java并发编程之——BlockingQueue(队列)
- Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送
- 【负载均衡】揭开F5 BIG-IP的神秘面纱(一)
- 实战SSM_O2O商铺_04自下而上逐步整合SSM
- java 参数传递_java中方法的参数传递机制
- ad20如何导入库_脱水防锈油如何使用才正确?
- java仿qq gui_Java仿QQ登入页面
- Spring Bean装配
- 人生没有理想,只有目标
- 看看什么样的人适合网上开店( 转载)
- [转] 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 在linux系统下观看和转码m3u8视频文件
- 如何搭建个人服务器(网站/游戏)?
- mysql 1114错误_mysql出现错误编码1114怎么办
- 分享收集网络上的免费0元虚拟主机
- ClassNotFoundException,某种类的缺失
- 美团前端组件化开发实践
- traceroute命令(unix)/tracert命令(windows)
- MapReduce学习1:MapReduce基本概念
- fiddler监控手机端https请求显示tunnel to ......443