个人弹幕站

这是弹幕播放器个人版的说明页面

本版本由于存在太多垃圾代码,并且机制有一定缺陷,已废弃,源码保留于1.0Tag,请移步功能较为相近的简易弹幕站

一般来说想用它做大型站点的都可以放弃了,这是它的结构决定的,支撑不起大型站点(但是可以参考哦)。

在这里还要再三强调,这是个人弹幕站,不要妄图让我加上什么账号系统。一般用处就是个人摆自己视频用的。不对其他用途提供技术支持。

安装

你的环境需要符合以下条件:

  • PHP版本>=5.4    (不符合会无法加载视频和弹幕)

不支持.htaccess文件的服禁搭,否则会有严重后果。 请给backup文件夹设置620权限或保证此文件夹不会被他人访问到。

获取

你可以随时从上面版本说明中的两个Github地址(谁敢用第二个)获取最新的站点代码。 通过点击旁边的“下载zip”按钮可以下载到完整的源码,然后上传到你的服务器部署好。 或者直接使用`git clone` 命令把源码克隆到服务器上,如果你有能力的话,还可以直接用git命令来更新站点。(反正我是没这能力,不管怎么样都会冲突)

配置

安顿好所有文件以后就可以开始配置了,你需要在安顿站点的目录(目前已经支持放在网站子目录里了)创建一个config.php,内容像下面这样

<?php
	define("user","用来管理的用户名");//不要使用什么奇怪的字符,我不保证那样可以正常使用
	define("pass","密码");//同上
	define("sqlUser","数据库用户");
	define("sqlPass","数据库密码");//请定义成字符串
	define("sqlAddress","数据库地址");//如"localhost"
	define("dbname","数据库名");
?>

这是最基本的配置,目前还可以加入以下配置来实现特殊功能

	define("domainname","此站点的域名(或ip)");//这是用来阻止从其他站点直接向这里发起的请求,删除此行表示不阻止
	define("ErrorLog",true);//开启错误记录,把错误记录到文件
	define("WarnLog",true);//开启警告记录,警告通常是不会影响程序外观但实际运行不会获得正确结果时产生的

 

使用

管理

由于博主不想花太多时间来做UI,所以后台就花了半小时做了个命令界面作为管理界面,这也正好利用了命令框架使用命令的特点。如果你从来没使用过任何平台的命令,这个站点可能不适合你,或者你需要花点时间来了解命令的组成。 要进入管理界面,你需要一个浏览器,然后在地址栏输入

你的弹幕站在网络的访问位置/admin/
如我的http://danmaku.luojia.me/admin/

进入以后你就可以看到我说的命令界面,它分为两部分,上面很大一块是命令和结果显示区,下面一条输入框是命令输入框。输入命令以后按回车发送命令,如果你没有回车,那就。。。。。别用了。。。

命令简介

由于我自己也不是非常了解各平台的命令,所以我是按照自己喜好做的命令格式,感觉和大部分地方的命令相差也不大,下面简单说一下这里命令的组成。

命令 参数 [参数 参数 ...]//命令和参数
命令 -参数名 被前面命名的参数//带有名字的参数
命令 --标记//会立flag的标记
命令 -参数名 被前面命名的参数 一个独立的参数 --标记//各种混搭

我这的命令大概就上面这样简单的格式,除了普通参数以外在参数前面加个-参数名可以给他起个名字,这样后台好处理一点,到了后台会被以键=>值的形式存到args数组。 前面是–的参数会被识别成flag,并存入flags数组,具体服务器接到了什么命令可见`teststr` 命令. 大部分命令我都已经写了help,只要输入`命令 –help`就可以查看帮助(不过都很简短。。) 首次使用前请仔细阅读help命令里的`号使用说明,即使现在`号的意义已经被减弱了。 在这里特别提醒一下,如果参数里有空格或者&符号,就需要给这一个参数围上 %60; 符号用来转义,这样到服务器才能正确识别(建议只要参数不是纯英文就加上)。

登录

使用命令前你需要先登录登录方法如下

login -u 用户名 -p 你的密码

login命令默认不会返回任何东西,如果你想知道登录是否成功,可以在最后加上`–return` 标记,或者登录后发个`help` 命令看看会不会显示帮助文档。

初始化

在使用之前你必须要运行一遍初始化命令,它会创建用来存放视频信息和弹幕的数据表

initdb

如果你看到了三个绿色的成功,那就可以接着做下一步了。 如果出现了红色的失败,那你可以再试一次或者找我。

命令列表

控制台内置命令

echo

echo 要输出的内容

echo命令用来输出后面跟着的内容,当然这完全没意义。主要作用是用来输出转义结果(发送到服务器的命令都是经过转义的,否则会有很多问题),比如下面这么用

echo findvideo `喵吖`

把想发送的命令跟在echo后面,命令不会发送出去,而是在控制台里显示它会被转义成什么样子 实例:

echo转义演示
echo转义演示

 

clear

clear

当你控制台里东西过多的时候可以用这个命令清空。

服务器端命令

添加弹幕

adddanmu 视频id 弹幕类型 内容 所在时间 颜色 大小 播放器获取的id

这个命令是给播放器用的,不过在这里也可以用,不过不建议在这里使用,因为你写的可能不是播放器能识别的格式。

添加视频

addvideo -t 视频标题 -url 视频地址

#建议这么写
addvideo -t `视频标题` -url `视频地址` -des `视频描述(可选项)` -cv `封面图片地址(可选项)`

实例:

addvideo演示
addvideo演示

添加视频成功后会获得视频id,id在各种调用视频和弹幕的场合会用到。 视频说明:由于目前浏览器的解码限制,建议使用H264编码的mp4视频做视频源,视频可以是自己上传到自己服务器的,也可以是从视频网站盗链的(如果你可以的话)(当然欢迎提供盗链源码。。。) 盗链视频

刷新插件缓存

cacheplugins

这个命令用来把插件文件夹里的js都合并到一个缓存文件(./player/plugins.cache.js)里去,删除文件再访问同样会自动生成缓存文件。 此命令是弹幕播放器主体专用的

清零某视频的播放数

clearplaycount 视频id

虽然我觉得这个命令没什么实际用处,不过我还是做出来了。。。

清空某视频的弹幕

cleardanmu 视频id

这个命令会把指定id的视频的所有弹幕都删掉 ,谨慎使用。

删除指定id的弹幕

deldanmu 弹幕id

删除多弹幕↓

deldanmu 弹幕id 弹幕id 弹幕id 弹幕id .....

专治问题弹幕,加上 `-v 视频id`可以限制搜索指定视频的弹幕

删除指定id视频

delvideo 视频id

删除视频的同时也会删除视频所有的弹幕(其实我复制了cleardanmu的代码23333),所以三思后行。

修改视频信息

editvideo -id 视频id [-t 视频标题] [-url 视频地址]

t参数和url参数至少要有一个,或者两个都有,用来修改手滑写错信息的视频。 例:

editvideo -id 12 -t `新的标题`
editvideo -id 12 -url `http://新的地址`
editvideo -id 12 -t `新的标题` -url `新的地址`

 

使用正则按标题查找视频

findvideo 正则表达式

说是正则表达式但如果你不知道是什么的话可以直接用标题,或者标题的一部分。 常用方法演示

findvideo `.+`                       #列出所有视频(视频必须有标题)
findvideo `^【osu】`                 #列出所有【osu】开头的视频
findvideo `我是一个视频标题`         #直接使用标题找视频
findvideo `标题一部分`               #找包含这段字的视频

 

列出全部视频例子
列出全部视频例子

 

使用正则按弹幕内容查找弹幕

finddanmu 正则表达式

常用方法

finddanmu `.*`                          #列出所有弹幕(弹幕很多时慎用)
finddanmu `^整条弹幕内容$`              #找出完全符合的弹幕
finddanmu `部分内容`                    #找到包含此内容的弹幕
finddanmu `233+`                        #找到包含233...3(大于等于2个3)的弹幕

例:

查找所有233
查找所有233

 

播放器获取弹幕列表

getDanmu 视频id

这个命令是给播放器用的。

播放器获取视频信息

getVideoAddress 视频id

播放器用,此命令返回一个包含视频地址、视频播放数的json

查看帮助

help

 

初始化数据库

initdb

见上面的安装部分

登录

login -u 用户名 -p 密码

如果在后面加个`–return`服务器会返回登录状态,完全形态:

login -u 用户名 -p 密码 --return

每次调用此命令都会把日志记录到log/login.log文件中,此目录已被.htaccess保护,不能直接访问。

获取视频信息框架iframe

vinfoframe 视频id

获取视频iframe用于嵌入页面

>> vinfoframe 4
<iframe src="http://localhost/videoinfo.php?id=4" style="height:650px;width:700px;" allowfullscreen></iframe>

然后就可以把这个iframe贴到要放播放器的地方啦。 如果你不需要显示视频信息页面而是直接加载播放器,就把`videoinfo.php`替换成`miniplayer/player.php`或`player/`,这也就是点了加载按钮以后跳转到的页面。

测试参数

teststr 各种参数

把你要发送的命令换成`teststr` 可以知道服务器最终解析出来的参数序列是什么(其实是给我开发用的。。。) 例:

#原本
login -u `用户名` -p 123456 --return
#用teststr测试
teststr -u `用户名` -p 123456 --return

结果:

参数表Array
(
    [0] => -u
    [1] => 用户名
    [2] => -p
    [3] => 123456
    [4] => --return
)
命名参数Array
(
    [u] => 用户名
    [p] => 123456
)
标记Array
(
    [0] => return
)

 

更新数据库

updateDB

用于某些更新增加需要的数据表

视频相关

约定的视频地址格式

视频地址(`addvideo` 命令里`-t` 的参数)的内容目前包括:源名称,段地址 数据库中的视频地址可分行,每一行会被识别成一个源 其中每一个源的格式可如下其一

地址							//直接就是一个地址
分段1;分段2						//分号分隔同一视频的不同段
"源名称":分段1;分段2				//给视频源命名

注:分段视频还需要不少时间来实现,目前的分段视频会只加载第一段。 注2:源名称将来可能会用在自选源时用来显示,没有命名的话会被命名成默认名 如何输入分行命令:找个支持utf8的编辑器把命令打好了复制到命令框即可输入分行命令

视频解析地址规则↓

如果写入的视频需要解析再输出给浏览器,请写成以下格式

解析识别名:地址

需要自行添加解析的话可以在outlinkresolve文件夹里增加(前提是你的会php)(最好推荐给我咯,我会官方推的) 解析文件只需满足下列条件: 1.以解析前缀为标题(如youku:XNnio2u4HXBIWUk2j3n的youku.php) 2.解析步骤会调用文件里的`resolveVideo` 函数,并从之获取返回的结果 3.返回的地址格式可如下

返回格式:array
(
	源1注释:[分段1,分段2....]
	源2注释:[同上]
)
或
地址

 



本文发布于 https://luojia.me

本站文章未经文下加注授权不得拷贝发布。

0 0 投票数
打分
订阅评论
提醒
guest
46 评论
内联反馈
查看所有评论
Dion
游客
Dion
6 年 前

导入数据库时MySQL 返回:
#1142 – TRIGGER command denied to user ‘danmu’@’localhost’ for table ‘danmaku’
是权限的问题么?

佳佳菌
游客
6 年 前
回复给  Dion

是。
另外此页面已经过时,请移步顶部菜单的简易弹幕站

Yandex Jim
游客
Yandex Jim
7 年 前

请问能在PHP虚拟主机上使用吗?(如果初始化需要VPS环境我可以先在VPS上初始化)

佳佳菌
游客
7 年 前
回复给  Yandex Jim

理论上可以用,初始化只有个数据库的建立过程。不过这个项目已经没有进一步发展下去的计划了,以后只会阶段性修收集到的bug。

T.Get
游客
T.Get
8 年 前

PHP5.4,加载视频总是错误ORZ

Alex
游客
Alex
9 年 前

创建数据一直失败啊。

meow
游客
meow
9 年 前

有demo吗?

musy
游客
musy
9 年 前

全部都是地址获取错误直接使用mp4地址都不能放

聚知网
游客
9 年 前
回复给  musy

升级php

狱血阿修罗
游客
9 年 前

你的弹幕是根据id来获取保存的吧,弹幕获取与保存可以和原来一样啊

狱血阿修罗
游客
9 年 前

参数可以多传啊http://danmaku.luojia.me/miniplayer/player.php?url=http://***.mp4&img=http://***.jpg当然这样子的话,播放数弹幕数确实获取不到了。但是这样播放器的动态性就更强了。

狱血阿修罗
游客
9 年 前

在弹幕播放器页面后加个视频源地址的参数就可以形成一个可弹幕视频,比如:http://danmaku.luojia.me/miniplayer/player.php?url=http://***.mp4你原本传的参数是id吧。把他换成外部url就好了。就好像多说,把组件嵌入页面就可以形成不同页面的评论区,弹幕道理一样。还是希望有个可以这样的弹幕播放器。

打佳佳的熊猫
游客
打佳佳的熊猫
9 年 前

我用nginx是可以播放视频的,但是lightted不可以。。。

打佳佳的熊猫
游客
打佳佳的熊猫
9 年 前

佳佳,请问一下优酷的视频怎么添加,能否举一个具体的例子?中文不好,没太看懂最后这个。

崔崔
游客
崔崔
9 年 前

你好佳佳,我想问一下,这个播放器在移动端能否使用。为什么我测试playkof.com/geren在桌面搜狗浏览器可以观看,而手机端用的是UC不可以。

上海论坛
游客
9 年 前

initdb 卡在这部了,唉

上海论坛
游客
9 年 前

//请定义成字符串 是什么意思,明文密码不可用吗

yuban'mei
游客
10 年 前

为何优酷盗链都报错,xiaomi和直链没问题然后还有弹幕有的会走一段时间就停在屏幕上的问题,刷新无解

yuban'mei
游客
10 年 前
回复给  罗佳(博主)

我在本地测试的,果然本地不行嘛;环境是php5.5+nginx/apache弹幕停止在上面,后面的弹幕也不走,视频在播放;出现次数不是很多

yuban'mei
游客
10 年 前
回复给  罗佳(博主)

一直开着日志,没东西貌似==浏览器用的cherome/ie11,现在貌似没问题了;我换了下php版本,php5.6/php5.3都没这问题,不明情况

编谈
游客
10 年 前

为什么不论发什么都没有任何反应2333

编谈
游客
10 年 前
回复给  罗佳(博主)

admin

编谈
游客
10 年 前
回复给  罗佳(博主)

为什么都是视频错误

46
0
希望看到您的想法,请您发表评论x