http://stackoverflow.com/questions/24976123/streaming-a-video-file-to-an-html5-video-player-with-node-js-so-that-the-video-c

项目地址  https://github.com/shenggen1987/mp4-demo

express  index.jade

  1. extends layout
  2.  
  3. block content
  4. h1= title
  5. p Welcome to #{title}
  6. video(src="/video" controls="controls" type="video/mp4" width="320px" height="480px")

 express  routes/users.js

  1. var express = require('express');
  2. var router = express.Router();
  3.  
  4. /* GET users listing. */
  5. router.get('/', function(req, res, next) {
  6. //res.send('respond with a resource');
  7. var fs = require("fs") ;
  8.  
  9. //var video = fs.createReadStream('./public/images/sina.mp4');
  10. //res.set('Content-Type', 'video/mp4');
  11. //video.pipe(res)
  12.  
  13. var file = './public/images/sina.mp4';
  14. fs.stat(file, function(err, stats) {
  15. if (err) {
  16. if (err.code === 'ENOENT') {
  17. // 404 Error if file not found
  18. return res.sendStatus(404);
  19. }
  20. res.end(err);
  21. }
  22. var range = req.headers.range;
  23. if (!range) {
  24. // 416 Wrong range
  25. return res.sendStatus(416);
  26. }
  27. var positions = range.replace(/bytes=/, "").split("-");
  28. var start = parseInt(positions[0], 10);
  29. var total = stats.size;
  30. var end = positions[1] ? parseInt(positions[1], 10) : total - 1;
  31. var chunksize = (end - start) + 1;
  32.  
  33. res.writeHead(206, {
  34. "Content-Range": "bytes " + start + "-" + end + "/" + total,
  35. "Accept-Ranges": "bytes",
  36. "Content-Length": chunksize,
  37. "Content-Type": "video/mp4"
  38. });
  39.  
  40. var stream = fs.createReadStream(file, { start: start, end: end })
  41. .on("open", function() {
  42. stream.pipe(res);
  43. }).on("error", function(err) {
  44. res.end(err);
  45. });
  46. });
  47.  
  48. });
  49.  
  50. module.exports = router;

  

解决express video 手机无法播放的问题的更多相关文章

  1. 解决html5中video标签无法播放mp4问题的办法

    这篇文章主要给大家介绍了关于解决html5中video标签无法播放mp4问题的办法,文中介绍的非常详细,相信会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 最近发现了一个 ...

  2. 10.14_魅族手机音乐播放无故暂停,MetroUICss-tile中的字如何居中

    (1)魅族手机,播放音乐,无故暂停.不管是自带的音乐播放程序,还是下载的其他音乐播放器都是如此.而且,手机上有个Google服务耗电量非常高,会经常弹出登陆Google账号的弹出项. (2)Metro ...

  3. 酷狗、QQ、天天动听——手机音乐播放器竞品对比

    如果说什么艺术与人们生活最贴近,那应该属音乐了,因此当代人不离身的手机里必然会有自己喜欢的音乐播放器APP存在. 在当今无论PC端还是手机端音乐播放器都越来越同质化,我们应该选择哪款手机音乐播放器?它 ...

  4. 【源码分享】mui实现简单的手机音乐播放器

    mui实现简单的手机音乐播放器 最近先来无事,我用mui写了一个可以跨页面控制的音乐播放器.主要功能有上一曲,下一曲,播放,暂停,感兴趣的可以继续看下去. 说的总是不实在,直接上源码,有兴趣的可以读下 ...

  5. 关于html5 video的连续播放

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  6. JS的video在手机上有些手机能播放,而有些不能原因

    一,一开始我video是这样写的,直接给地址,然后有很多手机却不能播放,或者说卡在一开始的页面,是什么原因呢? <video id='video' > <source src='xx ...

  7. 在微信端使用video标签,播放结束会出现QQ浏览器推荐视频的解决办法(vue)

    会出现播放结束显示QQ浏览器推荐视频的原因:(我是vue的项目,而且我是新手,只是单纯的给大家分享一个方法,代码比较low请自动忽略) 因为在x5(QQ浏览器)内核中,把video标签劫持了,只要是检 ...

  8. 解决微信video全屏的问题,不在本页面播放

    在微信浏览器中使用video标签,点击播放会跳出本页面,自动进行全屏播放,原因是自动跳转到手机微信内置的浏览器中去播放去了!!! 在video中加上连个属性就好了,反正最近的一个项目,我是这样做的就好 ...

  9. vivo 手机 video 标签无法播放视频解决方案

    1. 针对 vivo 手机单独设置 video 标签加上 controls 此时video 可以点击播放,但是有进度条存在. 2. 将 video 隐藏,用一张图片定位在在 video 所在的位置,点 ...

随机推荐

  1. react native ios启动指定模拟器

    react-native run-ios --simulator "iPhone 7 Plus” xcrun instruments -w 'iPhone X'

  2. 链表的排序 时间复杂度O(nlogn)

    思路:用归并排序.对一个链表采用递归进行二等分,直到每个部分有序,然后对其进行合并.其实就是两步,先分解,然后合并有序链表. 代码: //对链表采用递归排序 class Solution { publ ...

  3. idea没有subversion问题

    问题描述:idea导入svn项目,但点击项目文件右键没有找到subversion选项.同时,idea界面底部没有version control菜单. 解决方法:原因是idea没有启动版本控制.点击id ...

  4. java数据库连接池简单实现

    package cn.lmj.utils; import java.io.PrintWriter; import java.lang.reflect.InvocationHandler; import ...

  5. selector在手机上或浏览器显示各种姿势(虚拟下拉菜单)

    测试机型:小米.华为.苹果 测试浏览器:Chrome.Safari.Firefox 最后的结果就是你搞你的,我搞我的! 我认为这样漂亮,你认为那样漂亮(我认为你们都统一!) 因为项目时间紧,所以直接用 ...

  6. 最好的10个移动 Web 应用程序开发框架

    在近期几年里,移动互联网快速发展.市场潜力巨大. 继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架.帮助开发 ...

  7. 【iOS】UIWebView的HTML5扩展之canvas篇

    先前公布大那个所谓的"HTML5"扩展严格说来还算不是"HTML5".曲曲几行JS代码就自诩为HTML5扩展多少有些标题党的嫌疑. 而相比之下,本篇的主题can ...

  8. mysql手动停止无响应查询方法

    http://www.chenweionline.cn/archives/61.htm

  9. Plug and Play

    http://baike.baidu.com/view/33701.htm 即插即用 编辑   PNP是Plug-and-Play(即插即用)的缩写.它的作用是自动配置(低层)计算机中的板卡和其他设备 ...

  10. HDU 3564 Another LIS splay(水

    题意: 给定一个空序列 插入n个数(依次插入 1.2.3.4··n) 以下n个数表示i插在哪个位置. 每插入一个数后输出这个序列的lis 然后... 由于每次插入的数都是当前序列最大的数 所以不会影响 ...