用户:
治愈绾兮查看:1 回复:4 评论:1 创建时间:2023-08-23T10:51:19
方法1:
首先,排除视频拓展,因为它只支持播放一个20MB一下的视频,并且无法调节进度
方法2:
提取视频每一帧,并保存为图片,然后命好名,批量导入库k4。
不过一年前我就尝试过,当时导入了6000张图片,一半的时候就崩溃了。
所以这个办法最多播放一分钟一下的视频,并且打开作品耗时很久。
方法3:
把视频每一帧都提取出来,然后对每一帧的图片遍历,把每个像素记录下来,然后拼接在一起变成k4可以处理的数据,然后用画笔依次绘制像素,由于k4列表超级长也不会卡,并且有一步执行,所以可以尝试。
方法3,开整!
1.下载一个网络视频,我选用的是吴恩达的机器学习教程,因为每个视频都不是很长,8分钟左右,并且没有B站版权。然后利用ACG助手下载最不清晰的那个,省的自己修改清晰度。
链接:https://www.bilibili.com/video/BV1Hm4y1i71t
ACG助手的官网也给你们吧:acghelper.com
2.下载的视频分辨率是638*360,FPS是30,刚刚一个16:9的屏幕就够用了。FPS有点高,需要后期降到10左右,不然k4运行速度不够。

3.用py处理视频,代码如下,主要功能是把像素提取出来,格式如下:
r,g,b|r,g,b|r,g,b&r,g,b|r,g,b|r,g,b&r,g,b|r,g,b|r,g,b
代码:
from PIL import Image
import numpy as np
import cv2
videoCapture = cv2.VideoCapture()
videoCapture.open('1.1什么是机器学习.mp4')
frames = videoCapture.get(cv2.CAP_PROP_FRAME_COUNT)
string = ""
for i in range(0, frames, 3):
ret, frame = videoCapture.read()
img_array = np.array(Image.fromarray(frame).resize((喵0, 360)))
for h in range(0, 360):
for w in range(0, 喵0):
b, g, r = img_array[h, w]
string += ",".join([str(r), str(g), str(b)])+"|"
print(h)
string = string[:-1]+"&"
with open("1.1什么是机器学习.txt", "w") as f:
f.write(string)
4.代码很简单,不过运行之后很久都没有结束,于是我只运行了第一帧查看效果,运行耗时15秒左右,我迫不及待地打开了输出文件,不出意料,卡住了。

文件内容长这样,仅仅第一帧就有2.53MB,简直不可理喻!喵(划掉)
5.我随后把它导入了k4,并且效果还可以,不过即使有一步执行,也不是光速绘制,所以FPS还要再次降低,那就要卡成PPT了。并且导入列表的时候卡了一下
6.虽然文件很大,但是还可以压缩,采用压缩率最高的7z压缩文档后大小只有106KB,不过整个视频的数据依旧很大,k4无法导入。并且k4中很难用超级复杂的压缩方式。
至此,此方法播放视频宣布失败。
省流:一个大屑的失败尝试()