解决express video 手机无法播放的问题

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

extends layout

block content
  h1= title
  p Welcome to #{title}
  video(src="/video" controls="controls" type="video/mp4" width="320px" height="480px")

 express  routes/users.js

var express = require(‘express‘);
var router = express.Router();

/* GET users listing. */
router.get(‘/‘, function(req, res, next) {
  //res.send(‘respond with a resource‘);
  var fs = require("fs") ;

  //var video = fs.createReadStream(‘./public/images/sina.mp4‘);
  //res.set(‘Content-Type‘, ‘video/mp4‘);
  //video.pipe(res)

  var file = ‘./public/images/sina.mp4‘;
  fs.stat(file, function(err, stats) {
    if (err) {
      if (err.code === ‘ENOENT‘) {
        // 404 Error if file not found
        return res.sendStatus(404);
      }
      res.end(err);
    }
    var range = req.headers.range;
    if (!range) {
      // 416 Wrong range
      return res.sendStatus(416);
    }
    var positions = range.replace(/bytes=/, "").split("-");
    var start = parseInt(positions[0], 10);
    var total = stats.size;
    var end = positions[1] ? parseInt(positions[1], 10) : total - 1;
    var chunksize = (end - start) + 1;

    res.writeHead(206, {
      "Content-Range": "bytes " + start + "-" + end + "/" + total,
      "Accept-Ranges": "bytes",
      "Content-Length": chunksize,
      "Content-Type": "video/mp4"
    });

    var stream = fs.createReadStream(file, { start: start, end: end })
        .on("open", function() {
          stream.pipe(res);
        }).on("error", function(err) {
          res.end(err);
        });
  });

});

module.exports = router;

  

时间: 2024-10-05 17:00:32

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

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

mui实现简单的手机音乐播放器 最近先来无事,我用mui写了一个可以跨页面控制的音乐播放器.主要功能有上一曲,下一曲,播放,暂停,感兴趣的可以继续看下去. 说的总是不实在,直接上源码,有兴趣的可以读下注释. 1首页代码 ①首页的html代码 1 <a> 2 <i id="bofang" class="iconfont icon-play-o"></i> <!--就是一个播放按钮没啥特殊的--> 3 </a>

手机音乐播放器开发

<DOCTYPE html> <html> <head> <title>手机音乐播放器</title> <style> *{margin:0;padding:0;} body{ background:#000000; /*性能优化:一个优秀的开发工程师一定是为服务器,CPU考虑(提高代码的加载效率网站打开效率)*/ } #music{ position:relative; width:322px; height:635px; //ba

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

(1)魅族手机,播放音乐,无故暂停.不管是自带的音乐播放程序,还是下载的其他音乐播放器都是如此.而且,手机上有个Google服务耗电量非常高,会经常弹出登陆Google账号的弹出项. (2)Metro UI CSS tile中的字如何居中,看官方是示例是给了一个图片!而且holder.js要在支持html5的浏览器下才能有效.我是否可以使用SVG呢?! (3)tile小例子: <!DOCTYPE html> <html> <head> <meta charset=

安卓系统手机音乐播放器问题

我喜欢听歌,老歌.新歌.民歌.通俗歌都行,只要我认为好听就行了.除了在电脑上听歌外,还与时俱进的买了几个随身听和MP3,现在是手机和平板(Win8.1系统的),歌曲格式也由MP3升级为无损格式. 我现在有4条耳机,价格在120 - 568之间,分别是森海MX375,索尼XBA C10,爱科技K142HD和铁三角CKS77X,以前还有一条号称"女毒"的索尼E888,因时间太长(2004年儿子出差到日本花了7000多日元买的),去年终于寿终正寝了.对音乐发烧者来说,这些可能太低档了,价格没

Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题

最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: ? 1 express -t ejs microblog 可是执行后,仍旧创建的是jade项目. 原来,express3.x,express4.x中创建ejs命令更新为: express -e microblog //即ejs,-j(即jade)  当然,最直接的,你也可以修改package.json里的定义来实现安装ejs. PS:建立工程过程 1.必须得安装expre

Unity3D 如何在安卓手机上播放视频

以前只会在电脑上通过Unity3D播放视频,研究了下发现通过Unity3D在手机上播放视频也非常简单.现介绍如下. void OnGUI() { if (GUI.Button(new Rect(0,0,150,80),"播放/继续")) { Handheld.PlayFullScreenMovie("test.mp4", Color.blue, FullScreenMovieControlMode.Full); } } 简单吧 Unity3D 如何在安卓手机上播放视

关于html5 video的连续播放

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>关于html5 video的连续播放</title> </head> <body> <video id="video" autoplay="" controls="control

Chromium为视频标签&lt;video&gt;全屏播放的过程分析

在Chromium中,<video>标签有全屏和非全屏两种播放模式.在非全屏模式下,<video>标签播放的视频嵌入在网页中显示,也就是视频画面作为网页的一部分显示.在全屏模式下,我们是看不到网页其它内容的,因此<video>标签播放的视频可以在一个独立的全屏窗口中显示.这两种截然不同的播放模式,导致Chromium使用不同的方式渲染视频画面.本文接下来就详细分析<video>标签全屏播放的过程. 从前面Chromium为视频标签<video>渲

html5 video标签不能播放mp4的问题

最近项目中遇到的问题如下: 利用html5中的 video 标签去播放视频,但是发现有的mp4格式的视频可以播放,有的mp4格式的视频不能播放. 视频格式 首先 video 标签只支持MPEG4,Ogg,WebM 三种视频格式,浏览器支持情况如下: 但是,video标签对这三种视频格式是有具体要求的 Ogg = 带有 Theora 视频编码 + Vorbis 音频编码 MPEG4 = 带有 H.264 视频编码 + AAC 音频编码 WebM = 带有 VP8 视频编码 + Vorbis 音频编