Project1

标题: 搬运YSP_VideoPlayer,彻底解决视频播放卡死的问题 [打印本页]

作者: qq983378065    时间: 2021-7-29 11:04
标题: 搬运YSP_VideoPlayer,彻底解决视频播放卡死的问题
本帖最后由 qq983378065 于 2022-1-7 15:51 编辑

几个月没上论坛,没想到原来传的版本有问题。

先说一下这个插件的来源,我首先是在一个不可说名字的游戏里发现了这个插件,但是插件里并没有留下任何所有权的声名,也没有任何使用授权相关的文字。
所以我又接着在外网的RM论坛上找到了这个插件。javascript:;

原贴https://forums.rpgmakerweb.com/i ... _videoplayer.83758/

我之前上传的版本是从原贴直接下载的版本,会出现无法使用的问题我也没有想到。

这次重新上传的是从不可明说游戏里找到的插件,这个插件是确定可以使用的,但是插件里面的代码格式和原贴下载的版本略有不同,所以我不确定这个版本是不是他人二次修改的版本,如果侵权请给我留言,我会第一时间删除。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maker mv,包括mz使用的是边加载边播放的技术,也就是一边读取你的视频进入内存,同时从内存中播放视频。
但是因为各种莫名其妙的原因,读取视频进入内存的过程可能会中断,所以视频就会播放到一半卡主。

以下内容纯猜测,我不是专业的技术人员并不太了解其中的具体细节,但感觉应该猜的八九不离十。

YSP_VideoPlayer改变了这个机制,他使用预加载的方式,先将视频读取进入内存,然后再播放,可以说是彻底解决了视频卡死的毛病。
经过测试,最高8300kbps的vp9格式的webm视频完全可以做到正常播放。
不过要注意播放完之后要手动释放内存,否则后果很严重

以下为作者的案例
Comment:This will preload the video
:       :----------------------------------------------
◆Script:ysp.VideoPlayer.loadVideo('mirror.webm')
◆Comment:This will check if the video is already in memory.
:       :----------------------------------------------
◆Loop
  ◆If:Script:ysp.VideoPlayer.isReady()
    ◆Comment:This will stop the loop.
    :       :----------------------------------------------
    ◆Break Loop
    ◆
  :End
  ◆
:Repeat Above
◆Fadeout Screen
◆Comment:This will set the following
:       :Video ID #1 : mirror.webm'
:       :Play video ID #1
:       :Loop video ID #1
:       :----------------------------------------------
◆Script:ysp.VideoPlayer.newVideo('mirror.webm', 1)
:      :ysp.VideoPlayer.playVideoById(1)
:      :ysp.VideoPlayer.setLoopById(1)
◆Fadein Screen
◆Text:None, Window, Bottom
:    :Wow! We have looping videos!
:    :And the text is showing!
:    :\}So\{ freaking \{cool!
◆Fadeout Screen
◆Comment:Stop the video
:       :----------------------------------------------
◆Script:ysp.VideoPlayer.stopVideoById(1)
◆Fadein Screen
我英语也不好,使用的时候也是百度翻译的,所以就不翻译了,


简单示例

原贴下载的版本
(原下载链接,为了避免混淆删除,有人需要请去原贴下载)
不可明说游戏中找到的版本
YSP_VideoPlayer(测试可用 不明来源).zip (3.54 KB, 下载次数: 65)

PS,文件名不需要添加.webm,
PS2,该插件只能播放webm格式的视频,安卓版也可以使用。
作者: RyanYe    时间: 2021-7-29 12:25
还是不要翻译原文的比较好
楼主辛苦喽

作者: play337    时间: 2021-10-10 11:33
這個插件無法工作....
作者: pohuai456    时间: 2021-10-11 18:03
感谢分享
作者: dumpiel    时间: 2021-12-12 15:09
我一直显示错误···不知道为什么···大佬能讲下用法吗···
Use script call:
  ysp.VideoPlayer.loadVideo(videoName) - Preload Video
  ysp.VideoPlayer.releaseVideo(videoName) - Release memory for a Video
  ysp.VideoPlayer.newVideo(videoName, id) - Create new Video object with id
  ysp.VideoPlayer.playVideoById(id) - Play a Video object by id
  ysp.VideoPlayer.stopVideoById(id) - Stop a Video object by id
  ysp.VideoPlayer.setLoopById(id) - Make a Video object playing loop by id
  ysp.VideoPlayer.getVideoById(id) - Get Video object by id
  ysp.VideoPlayer.isReady() - Check if all videos have been loaded

Video Object is a PIXI.Sprite object, can be re-position by modifying x and y props
To preload a (or many) video(s), use loadVideo(videoName) followed by a loop in
an event, break the loop when isReady() returns true

使用脚本调用:
ysp。录像机。加载视频(videoName)-预加载视频
ysp。录像机。释放视频(videoName)-释放视频的内存
ysp。录像机。newVideo(videoName,id)-创建id为的新视频对象
ysp。录像机。playVideoById(id)-按id播放视频对象
ysp。录像机。stopVideoById(id)-按id停止视频对象
ysp。录像机。setLoopById(id)-使视频对象按id播放循
ysp。录像机。getVideoById(id)-按id获取视频对象
ysp。录像机。isReady()-检查是否已加载所有视频

视频对象是PIXI。精灵对象,可以通过修改x和y道具重新定位
要预加载一个(或多个)视频,请使用loadVideo(videoName),然后在
事件,在isReady()返回true时中断循环
作者: dumpiel    时间: 2021-12-12 15:52
不调错误了···但是黑屏···视频不出现···
作者: qq983378065    时间: 2021-12-14 13:35
dumpiel 发表于 2021-12-12 15:09
我一直显示错误···不知道为什么···大佬能讲下用法吗···
Use script call:
  ysp.VideoPlayer.load ...

不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看
作者: dumpiel    时间: 2021-12-14 16:18
qq983378065 发表于 2021-12-14 13:35
不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看 ...

换了个插件!现在弄好了!
作者: dumpiel    时间: 2021-12-17 13:57
qq983378065 发表于 2021-12-14 13:35
不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看 ...

纳蒂亚的作者用的这个···用的事MP4的视频···估计还有个别的插件···可以弄MP4···
作者: dumpiel    时间: 2021-12-17 17:20
大佬有测试演示项目么···发我研究下···我弄来弄去···就是只是出对话···视频不出来···
作者: dumpiel    时间: 2021-12-17 20:48
qq983378065 发表于 2021-12-14 13:35
不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看 ...

我去原帖上看完了···最后看见有人说和我出现的问题一样···视频不出现·····但是他们最后解决的办法说的是···缺少PrinPrin_BugFixes.js这个插件就不能正常运行···大佬知道PrinPrin_BugFixes.js这个插件哪里有下载吗?
作者: dumpiel    时间: 2021-12-17 23:24
qq983378065 发表于 2021-12-14 13:35
不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看 ...

大佬···不用回了!已经找到PrinPrin_BugFixes.js了···感谢!
作者: dumpiel    时间: 2021-12-18 00:36
qq983378065 发表于 2021-12-14 13:35
不太清楚,原贴上下载的版本格式有一些乱,也不清楚是什么回事,重新传了一个版本,你再看看 ...

插件现在运行正常···仔细看了下···做了个对比···插件作者的原插件文件里和不可说名字的游戏里的插件文件里不一样···不可说名字的游戏里的作者对插件进行了修改···插件源代码几乎快到后面的时候···发现代码里面有后缀mp4的出现···好像还运行了另一个插件···我自己把另一个插件放进去··还是无法运行mp4格式的视频···可能不可说名字的游戏的作者在脚本调用也进行了修改···不能用插件原作者的脚本调用方法了···最主要的是我看不懂代码···只是做了对比···
作者: qq983378065    时间: 2021-12-18 09:21
本帖最后由 qq983378065 于 2021-12-18 09:23 编辑
dumpiel 发表于 2021-12-18 00:36
插件现在运行正常···仔细看了下···做了个对比···插件作者的原插件文件里和不可说名字的游戏里的 ...


这个插件好像就是不支持mp4的,原版是需要在文件名字后面添加后缀名。
不可说版本里的那个不是后缀mp4吧,是后缀webm,其实这里和原贴版本没什么区别,只是让你运行脚本的时候少写一个webm。
如果要播放mp4的话可能要搭配别的插件,我个人是比较喜欢webm的。
同样码率下清晰度h.264<vp8<vp9≈h.265
作者: dumpiel    时间: 2021-12-18 15:50
qq983378065 发表于 2021-12-18 09:21
这个插件好像就是不支持mp4的,原版是需要在文件名字后面添加后缀名。
不可说版本里的那个不是后缀mp4吧 ...

webm也不错···弄得好也很清晰!
作者: dumpiel    时间: 2021-12-29 16:06
本帖最后由 dumpiel 于 2021-12-29 17:03 编辑
qq983378065 发表于 2021-12-18 09:21
这个插件好像就是不支持mp4的,原版是需要在文件名字后面添加后缀名。
不可说版本里的那个不是后缀mp4吧 ...


大佬···弄懂了···可以播放MP4了···我把那个不可说名字的游戏他用的所有插件都看了一遍···最后不知道怎么弄得···现在能播MP4文件了···
下面是测试视频:https://pan.baidu.com/play/video#/video?path=%2Fceshichajian%2Fceshichajian.mp4&t=-1
作者: qq983378065    时间: 2021-12-29 17:11
dumpiel 发表于 2021-12-29 16:06
大佬···弄懂了···可以播放MP4了···我把那个不可说名字的游戏他用的所有插件都看了一遍···最 ...

打不开,盲猜一个AXY_Video
作者: dumpiel    时间: 2021-12-29 17:15
本帖最后由 dumpiel 于 2021-12-30 01:36 编辑
qq983378065 发表于 2021-12-29 17:11
打不开,盲猜一个AXY_Video


我刚发了帖子分享了下···
https://rpg.blue/thread-488203-1-1.html
发你度盘地址···你下载下来看!
链接:https://pan.baidu.com/s/10W33A-JWHDqyxdo0OdGd0Q   提取码:jbgh
作者: dumpiel    时间: 2021-12-29 17:26
qq983378065 发表于 2021-12-29 17:11
打不开,盲猜一个AXY_Video

但是不能用原版的YSP插件,要用那个不能说名字的游戏的YSP插件,原版的不支持MP4只能用WEBM
作者: qq983378065    时间: 2021-12-29 17:40
dumpiel 发表于 2021-12-29 17:26
但是不能用原版的YSP插件,要用那个不能说名字的游戏的YSP插件,原版的不支持MP4只能用WEBM ...

看到是不必了,因为看了我也看不懂,我对代码完全一窍不通
作者: dumpiel    时间: 2021-12-30 01:34
本帖最后由 dumpiel 于 2021-12-30 01:36 编辑
qq983378065 发表于 2021-12-29 17:40
看到是不必了,因为看了我也看不懂,我对代码完全一窍不通


研究了下YSP的代码!改了下VPlayer的代码,VPlayer也可以用MP4了!
VPlayer虽然不能预加载,但是功能不错!度盘里我把演示视频和插件都添加了!需要可以去看下!
分享的帖子地址:https://rpg.blue/thread-488203-1-1.html
作者: 战术握把    时间: 2022-1-1 19:49
有示例吗,毫无头绪




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1