Показать сообщение отдельно
  #2 (permalink)  
Старый 15.03.2015, 18:18
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

5. Видео не воспроизвоится на некоторых платформах, если просто кинуть в директорию и вставить ссылку. Проблема решается сервером, на ноде вот пример

var http = require('http'),
    fs = require('fs'),
    pathUtil =require ( "path" ),
    util = require('util');

var path = pathUtil.join( __dirname, "/video/video3.mp4" );

var port = process.env.PORT || 8888;

http.createServer(function (req, res) {

    var stat = fs.statSync(path);
    var total = stat.size;

    if (req.headers.range) {   
        var range = req.headers.range;
        var parts = range.replace(/bytes=/, "").split("-");
        var partialstart = parts[0];
        var partialend = parts[1];

        var start = parseInt(partialstart, 10);
        var end = partialend ? parseInt(partialend, 10) : total-1;
        var chunksize = (end-start)+1;
        console.log('RANGE: ' + start + ' - ' + end + ' = ' + chunksize);

        var file = fs.createReadStream(path, {start: start, end: end});
        res.writeHead(206, { 'Content-Range': 'bytes ' + start + '-' + end + '/' + total, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4' });
        file.pipe(res);

    } else {

        console.log('ALL: ' + total);
        res.writeHead(200, { 'Content-Length': total, 'Content-Type': 'video/mp4' });
        fs.createReadStream(path).pipe(res);
    }
}).listen( port );
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.

Последний раз редактировалось cyber, 15.03.2015 в 18:23.
Ответить с цитированием