很多站长朋友们都不太清楚PHP视频流媒体,今天小编就来给大家整理PHP视频流媒体,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 输出视频流怎样设置header 2、 现在想用php端做一个流媒体出来(m3u8),一点思路也没有,大家给点意见好吗? 3、 php 视频流处理问题! 4、 php 直播功能如何实现 php 输出视频流怎样设置headerheader 好像不识别变量吧
我这也有一个函数 但是只能播放mp4的文件 如果你的能播放其他的视频格式求分享
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 - 100;
}
else {
$begin = 0; $end = $size - 100;
}
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);exit;
}
现在想用php端做一个流媒体出来(m3u8),一点思路也没有,大家给点意见好吗?首先是要搞清m3u8文件头信息,然后可以用二进制字节数组来实现,如我用二进制做的图片程序:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Diagnostics;
namespace BMP
{
class Program
{
static void Main(string[] args)
{
int w = 800; int h =600;
//BMP文件头信息:
long s3 = w * h * 3;
byte[] b = new byte[s3 + 54]; //image.bmp图片文件总字节数;
putByte(18, w, b);
putByte(22, h, b);
putByte(34, s3, b);
putByte(2, s3 + 54, b);
putByte(0, 0x42, b);
putByte(1, 0x4d, b);
putByte(10, 0x36, b);
putByte(14, 0x28, b);
putByte(26, 0x01, b);
putByte(28, 0x18, b);
//查看BMP头文件:
//for (int i = 0; i < 0x36;i++ )
//{
//Console.Write("{1:X2},",b[i]);
// if ((i+1) % 16 == 0) Console.WriteLine();
//}
//对各像素颜色赋值(上背景色):
for (int i = 0; i < s3 - 2; i += 3)
{
long p = i + 0x36;
b[p] = (byte)(i/(10*h)); //blue
//b[p + 1] = 150; //green
b[p + 2] = (byte)(i/(10*h)); //red
}
//画n个渐变色的圆:
for (int r = 0; r <300; r++)
{
for (double q = 0; q < 36.28; q += .01)
{
int x0 = 400; int y0 = 100;
int x = (int)(x0 + r * Math.Sin(q*.5));
int y = (int)(y0 - .2*r* Math.Cos(q*2));
long p =(long)(3 * (w * y + x) + 0x36);
if (p <= s3-2 p >= 0) b[p] = (byte)(r *5); //blue
if (p <= s3-2 p >= 0) b[p + 1] = (byte)(r*3); //green
if (p <= s3-2 p >= 0) b[p + 2] = (byte)(255 - r); //red
}
}
//保存为二进制文件:
FileStream filesstream = new FileStream("image.bmp", FileMode.Create);
BinaryWriter objBinaryWriter = new BinaryWriter(filesstream);
foreach (byte index in b)
{
objBinaryWriter.Write(index);
}
objBinaryWriter.Close();
filesstream.Close();
//打开文件:
Process.Start("image.bmp");
//Console.ReadKey();
}
//转十六进制字节流:
static void putByte(long p, long v, byte[] b)
{
string hexString = Convert.ToString(v, 16);
if ((hexString.Length % 2) != 0)
hexString = "0" + hexString;
int gc = hexString.Length / 2;
for (int i = 0; i < gc; i++)
{
b[gc + p - i - 1] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
}
}
}
php 视频流处理问题!用fmpeg 好像在php下面已经有组件 了 你可以考虑自己编译 不管是解码、取图片等等啥子都能干 现在市面流行的播放器都用的它 比如QQ、暴风 等等
php 直播功能如何实现ppstream的调用: <% start="网络电视" call head() call menu() Dim log_Year,log_Month,log_Day log_Year=Trim(Request.QueryString("log_Year")) log_Month=Trim(Request.QueryString("log_Month")) log_Day=Trim(Request.QueryString("log_Day")) %> <table width="760" border=0 align=center cellpadding=0 cellspacing=0> <tr><td align=center>
请点击输入图片描述
如果您无法通过IE自动安装播放器,请点此安装 ppStream P2P流媒体播放器,才能正常观看. 全屏请点击视频右键,请等待缓冲.欢迎进入P2P电视在线直播,具有用户越多播放越稳定,支持数万人同时在线的大规模访问等特点.
请点击输入图片描述
<table border=0 align=center cellpadding=0 cellspacing=0> <tr> <td width="208"> </td> <td width="546"> </td> </tr> </table> 特别声名:本站电视台仅作为免费观看使用.如果本站有侵害到您权益的地方请告知。我们会立即删除 </td> </tr> </table>
请点击输入图片描述
我一般是用flash播放器的,因为速度比较快。现在流行的大部分也都是flash的。
请点击输入图片描述
其实不需要自己做的,现在的视频网站那么多,直接上传到优酷或者土豆什么的,然后引用代码就可以了。
请点击输入图片描述
关于PHP视频流媒体的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于PHP视频流媒体 php 视频播放的详细内容...