基于CSDN完成TEASOFT的MOOC编辑整理
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于CSDN完成TEASOFT的MOOC编辑整理相关的知识,希望对你有一定的参考价值。
简 介: CSDN平台中的Markdown编辑器具有多媒体(很可惜没有音频,视频存储)的存储编辑能力。这样对于TEASOFT软件制作视频所需要的文字、图片、多媒体等文件,在CSDN的Markdown文件以及Nutdisk中的MicroVideo目录的联合存储。便可以对视频文档的准备进行网络联合制作,加速制作过程。
关键词
: csdn,teasoft,mooc
§00 背景介绍
利用TEASOFT教学软件可以进行MOOC课程视频拍摄资源整理。一方面可以利用CSDN的Markdown编辑将所需要制作视频的脚本资源进行规划,同时也将所需要的资源进行汇总存储。
下面就利用CSDN文档完成TEASOFT 慕课视频拍摄资源汇总相关的方法进行整理。
0.1 录制所需要的资源
根据 微视频制作方法与要素 对于需要准备的资料包括有以下种类:
- 内容的逻辑层,显示了内部逻辑关联 与 因果关系;
- 文字和语言:除了多数的标题之外,就是视频中的Caption。
- 用于细节展示所使用到的多媒体资源:
- 图片;
- 动图;
- 视频;
- 音效;
0.2 资源存储于应用
0.2.1 资源的存储
关于内容的逻辑,通过利用关系图、思维导图、表格、图形、公式以及标题文字组成。这部分内容主要承载在TEASOFT的DOP文件中。最终在Markdown中进行集中展示;
对于文字和解说语言则使用Markdown内的注释语言进行。
这是用于视频内语言文本对应的存在的格式。
关于图片、动图(尺寸小于5M字节)可以存储于Markdown文档中。关于视频、音效等则存储在:
- D盘下的Nutdisk的 MicroVideo子目录
除此之外,可以将搜索到的所用的资源在网络上的连接进行存储。在正式合成的过程中再进行下载。
0.2.2 资源的导入
文件的导数包括:
- 将文本设置TEASOFT的每一步的解说备注中;
- 将图片、动图、AVI导入TEASOFT的背景图片和动图;
- 将音乐盗图TEASOFT的音乐打开指令中。
§01 资源汇总
资源汇总包括有如何将资源进行存储以及如何将存储资源导入TEASOFT两方面内容。
1.1 文字资源
1.1.1 文本存储
文本,作为解说词的文本存储在Markdown文档中,与正常的编辑过程是一致的。
这是一个测试的解说词的文本,存储于一个Action中的解说词。
产生一个新的NULLAction,完成解说词的定义。
可能带来的问题是什么? 这应该是自然过渡到下一个Action的解说磁。
1.1.2 文本的使用
也就是将编辑CSDN中的文档添加到Action的注解中。使用MemoForm中的命令:
- Record - PasteClipboard - WMF-PY-HELP
- 使用 dopaste命令
修改:现在TEASOFT软件还存在一定的问题:
- 自动过滤">"
- 按照相邻 > 产生NULL, 不相邻的 > 则自动过渡到下一个HELP中。
- 当第一个ActionPoint==-1的时候,好像是增加的NULL,
1.1.3 清除所有帮助信息
利用AcitonForm中的 Help按钮,使用 CONTROL+SHIFT 点击HELP 按钮(右上角第二个),便可以清除所有帮助信息以及NULLAction。
1.2 图片、动图资源
1.2.1 图片、动图存储
将所需要的图片存储在Markdown只要使用正常的 cdpp,csdnpp指令即可,便可以将图片存储Markdown中。
注意: 在粘贴这在图片的过程中不能够添加图片注释。也就是只能够添加图片的尺寸。
1.2.2 图片、动图使用
这里有三种方法,分别如下。
(1)图片、动图拷贝
使用鼠标右键,获得图片拷贝,然后TEASOFT粘贴剪切板最终加入Action的背景图片。
(2)图片地址拷贝
使用鼠标右键,获得图片的地址。然后使用命令csdnpp * ,便可以将图片加入Action背景图片。
(3)利用dopaste粘贴
这个命令可以将文字、图片,动图,视频都进行粘贴。这是一个直接从Markdown编辑器中将资源粘贴到TEASOFT中的Action方法。
1.3 多媒体资源
1.3.1 多媒体存储
多媒体资源包括有:MPEG(相当于GIF),AVI,MP3,WAV,它们无法直接存储在
利用指令: gif2mpg 将录制的GIF转换成MPEG,并拷贝到 MicroVideo中备用。
- gif2mpg * : 转换完之后,将第一张图片添加到 Markdown中;
- gif2mpg + : 只是将MicroVideo中的文件名称添加到Markdown中;
- gif2mpg . : 将 d:\\temp中的 1.avi, 1.MP3, 2.wav 移动到 MicroVideo中,并将文件名称添加到Markdown中。
(1)按照文字截取动图
根据解说词语的长度,截取对应的动图。通过以下两步:
- 将解说文字拷贝到剪切板;或者拷贝到ClearClipboardBackupString中。
- 利用Record命令中的 GIF-》Freeze完成图片的截取。
或者利用 Screen 中的 Capture GIF 命令。
- 直接执行:采集GIF;
- CONTROL: 采集GIF,并运行 gif2mpeg
- MENU:copy CSDN中的选择字符,采集GIF 并运行 gif2mpeg.
修改:在CaptureGIF中,对于Shift 命令,直接返回。
1.3.2 多媒体使用
(1)形成Action
将Markdown中的资源进行拷贝。利用 dopaste 命令完成资源到TEASOFT的转换。
将Markdown中的资源进行拷贝。利用 dopaste 命令完成资源到TEASOFT的转换。
(2)解压缩MPEG
对于所有的MPEG文件,在使用前利用 mpeg2gif 进行解压缩,生成BMP文件,便可以在播放的时候形成快速播放。
§02 相关命令
下面给出进行整理和编辑过程中所用到一些命令。
2.1 gif2mpg
将采集到的gif2文件转换成mpeg,并进行存储。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# GIF2MPG.PY -- by Dr. ZhuoQing 2020-02-21
#
# gif2mpg * # Change to microvideo
# gif2mgp + #
# gif2mpg . # Move d:\\temp\\1.avi to MicroVideo
# # move 1.wav, 1.mp3 to MicroVideo
#
#
# Note:
#============================================================
from head import *
import shutil
import cv2
import numpy as np
import glob
from io import BytesIO
import win32clipboard
#------------------------------------------------------------
csdn_title = '写文章-CSDN博客'
#------------------------------------------------------------
microvideo_dir = r'd:\\Nutdisk\\MicroVideo'
microvideo_flag = 0
numstr = 'GM%d'%(int(time.time()))
#------------------------------------------------------------
def send_to_clipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
#------------------------------------------------------------
img_array = []
size = (100, 100)
mpegfile = []
microvideo_flag = 0
avimove_flag = 0
#------------------------------------------------------------
if len(sys.argv) > 1:
if sys.argv[1] == '*':
microvideo_flag = 1
if sys.argv[1] == '+':
microvideo_flag = 2
if sys.argv[1] == '.':
avimove_flag = 1
#------------------------------------------------------------
if microvideo_flag > 0:
gifiddim = tspgetgifid()
if len(gifiddim) == 0:
printf('DOP has no GIF dop .\\a')
exit()
#------------------------------------------------------------
outfile = numstr
frameps = 25
#------------------------------------------------------------
for gifid in gifiddim:
filedir = tspgetdoppath(gifid)
gifpage = tspgetgifpage(gifid)
filename = tspgetdopfile(gifid)
nameonly, ext = os.path.splitext(filename)
for i in range(gifpage):
filename = os.path.join(filedir, '%04d%s'%(i, ext))
img = cv2.imread(filename)
mpegfile.append(filename)
height,width,layers=img.shape
size = (width, height)
img_array.append(img)
tspdeletedop(gifiddim)
tsprv(-1)
#--------------------------------------------------------
filename = '%s_%d_%d.MPG'%(outfile, width, height)
outfilename = os.path.join(microvideo_dir, filename)
out = cv2.VideoWriter(outfilename, cv2.VideoWriter_fourcc(*'MPEG'), frameps, size, True)
for id,img in enumerate(img_array):
out.write(img)
tspshowinfor('%d '%id)
out.release()
if microvideo_flag == 2:
clipboard.copy(filename + '\\n')
tspsendwindowkey(csdn_title, "v", control=1, noreturn=1)
else:
tspsendwindowkey(csdn_title,"c", control=1, noreturn=1)
originstr = clipboard.paste()
if len(originstr) > 0:
tspsendwindowkey(csdn_title, " ")
#----------------------------------------------------
image = Image.open(mpegfile[0])
output = BytesIO()
image.convert('RGB').save(output, 'BMP')
data = output.getvalue()[14:]
output.close()
send_to_clipboard(win32clipboard.CF_DIB, data)
tspsendwindowkey(csdn_title, 'v', control=1, noreturn=1)
for i in range(40):
time.sleep(.5)
readdata = tspread()
if readdata[2] == 1: break
if readdata[7] != 0: break
if readdata[8] != 0: exit()
if readdata[9] != 0: exit()
tspsendwindowkey(csdn_title, 'c', control=1, noreturn=1)
if clipboard.paste().find('在这里插入图片描述') >= 0:
tspbeep(1500, 200)
time.sleep(.25)
break
printf('\\a')
for i in range(20):
readdata = tspread()
if readdata[7] == 0 and readdata[8] == 0 and readdata[9] == 0: break
tspbeep(2500, 15)
time.sleep(.25)
tspsendwindowkey(csdn_title, 'ac', control=1, noreturn=1)
pastestr = clipboard.paste().split('![在这里插入图片描述](')
if len(pastestr) < 2:
printf("Can not find the ![Insert picture] discriptor !\\a")
exit()
tspsendwindowkey(csdn_title, 'z', control=1)
pastestr = pastestr[1].split(')')[0]
pastestr = pastestr.split('?')[0]
insertstr = '![%s](%s#pic_center =320x)'%(filename,pastestr)
clipboard.copy(insertstr+'\\n'+originstr)
tspsendwindowkey(csdn_title, "v", control=1, noreturn=1)
# printf(pastestr)
clipboard.copy("")
exit()
#------------------------------------------------------------
def avi2csdn(filename, newfile):
cam = cv2.VideoCapture(filename)
ret, frame = cam.read()
cv2.imwrite(r'd:\\temp\\1.bmp', frame)
image = Image.open(r'd:\\temp\\1.bmp')
output = BytesIO()
image.convert('RGB').save(output, 'BMP')
data = output.getvalue()[14:]
output.close()
send_to_clipboard(win32clipboard.CF_DIB, data)
tspsendwindowkey(csdn_title, 'v', control=1)
cam.release()
for i in range(40):
time.sleep(.5)
readdata = tspread()
if readdata[2] == 1: break
if readdata[7] != 0: break
if readdata[8] != 0: exit()
if readdata[9] != 0: exit()
tspsendwindowkey(csdn_title, 'c', control=1, noreturn=1)
if clipboard.paste().find('在这里插入图片描述') >= 0:
tspbeep(1500, 200)
time.sleep(.25)
break
printf('\\a')
for i in range(20):
readdata = tspread()
if readdata[7] == 0 and readdata[8] == 0 and readdata[9] == 0: break
tspbeep(2500以上是关于基于CSDN完成TEASOFT的MOOC编辑整理的主要内容,如果未能解决你的问题,请参考以下文章