文档章节

PHP、golang 如何播放mp4文件

zhangzhihai
 zhangzhihai
发布于 2017/05/16 14:32
字数 105
阅读 75
收藏 0

 

<?php
function PutMovie($file) {
    header("Content-type: video/mp4");
    header("Accept-Ranges: bytes");
     
    $size = filesize($file);
    if(isset($_SERVER['HTTP_RANGE'])){
        header("HTTP/1.1 206 Partial Content");
        list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']);
        list($begin, $end) =explode("-", $range);
        if($end == 0) $end = $size - 1;
    }
    else {
        $begin = 0; $end = $size - 1;
    }
    header("Content-Length: " . ($end - $begin + 1));
    header("Content-Disposition: filename=".basename($file));
    header("Content-Range: bytes ".$begin."-".$end."/".$size);
 
    $fp = fopen($file, 'rb');
    fseek($fp, $begin);
    while(!feof($fp)) {
        $p = min(1024, $end - $begin + 1);
        $begin += $p;
        echo fread($fp, $p);
    }
    fclose($fp);
}
PutMovie("1.mp4");
?>
http.ServeFile(w, r, "/webserver/1.mp4")

 

本文转载自:

共有 人打赏支持
zhangzhihai
粉丝 2
博文 18
码字总数 2207
作品 0
浦东
高级程序员
私信 提问
[译] 优化 MP4 视频以获得更快的流传输速度

原文地址:Optimizing MP4 Video for Fast Streaming 原文作者:BILLY HOFFMAN 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:HaoChuan9421 校对者:coolseaman、h...

郑昊川
2018/08/15
0
0
如何判断文件格式,即文件真正的后缀名

例如一个视频文件,我可以把后缀名改成rmvb,或者mp4,或者不要后缀,只要拖到播放器里都可以播放;图片也是同样。那么一个文件的格式到底是如何确定的?这些个软件是如何知道打开的文件是可...

有云天空
2014/12/12
3.4K
7
Android HTTP边下边播

本文简单地分享一下在Android平台做HTTP边下载边播放的一些经验,希望对初学者有所帮助。 为什么播放器在播放视频文件的时候,都知道该怎么去解码、该以怎样的时间间隔去显示每一帧呢? 因为...

乐搏学院
2016/11/07
62
0
Mp4编码全介绍

什么是MP4?听闻它是一种“容器格式”,那是什么? 容器格式允许你将不同种类的多媒体数据流(多为视频流和音频流)合并在一个单一的文件内。 多媒体容器格式,就是我们熟知的AVI(.avi), MP...

AlphaJay
2010/05/07
8.9K
0
洞察 video 超能力系列——玩转 mp4

用技术提升美好事物发生的概率 Technologically, for greater probability to be happy. 前言 只要在 HTML5 中使用过视频播放的同学对 video 标签一定不会陌生,不过很多同学只使用了 video ...

2018/07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
2
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0
《万历十五年》的读后感作文4000字

《万历十五年》的读后感作文4000字: 万历十五年,即1587年,距今已过去432年。在明朝276的历史中,这一年很平淡,并没有什么特别之处。黄仁宇的《万历十五年》一书,有别于其他的历史叙述方...

原创小博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部