主要代码:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | FF | FFMPEG_类 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 视频路径 | 文本型 | | | 输出路径 | 文本型 | | | ret | 文本型 | | | 视频名组 | 文本型 | | 0 | 视频名 | 文本型 | | |
如果真 (编辑框_文件路径.内容 = “”) 信息框 (“文件路径不能为空!”, 0, , ) 返回 () 如果真 (文件_取扩展名 (编辑框_文件路径.内容 ) ≠ “.ts”) 信息框 (“文件类型不对!”, 0, , ) 返回 () 编辑框_信息. 加入文本 (“开始转换......” + #换行符 )视频路径 = 文本替换 (编辑框_文件路径.内容, 寻找文本 (编辑框_文件路径.内容, “.ts”, , 假), 3, )视频名组 = 分割文本 (视频路径, “\”, )视频名 = 视频名组 [取数组成员数 (视频名组 )] 如果真 (文件是否存在 (取运行目录 () + “\video”) = 假) 创建目录 (取运行目录 () + “\video”) 文件_复制 (编辑框_文件路径.内容, 取运行目录 () + “\1.ts”, 0 )输出路径 = 取运行目录 () + “\video\” + 删全部空 (视频名 ) + “.mp4”ret = FF. 视频_视频转换 (取运行目录 () + “\1”, 输出路径, 1 )编辑框_信息. 加入文本 (编码_utf8到gb2312 (ret ) + #换行符 )编辑框_信息. 加入文本 (“转换完成,目标输出:” + 输出路径 + #换行符 )文件_删除 (取运行目录 () + “\1.ts”)通用对话框1.初始目录 = 取运行目录 () 如果真 (通用对话框1. 打开 ())  编辑框_文件路径.内容 = 通用对话框1.文件名  FF. FFMPEG_初始化 (取运行目录 ()) ffmpeg类代码:
窗口程序集名 | 保 留 | 保 留 | 备 注 | FFMPEG_类 | | | | 变量名 | 类 型 | 数组 | 备 注 | 集_路径 | 文本型 | |
集_路径 = 路径 |
视频_格式转换 | 文本型 | | |
源件路径 | 文本型 | | | | 输出路径 | 文本型 | | | | 是否ts转mp4 | 逻辑型 | | | |
如果 (是否ts转mp4 = 假) 返回 (系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 源件路径 + “.mp4” + “ -vcodec copy -acodec copy -vbsf h264_mp4toannexb ” + 输出路径 + “.ts -y”, )) 返回 (系统_取DOS执行结果 (集_路径 + “\ffmpeg -y -i ” + 源件路径 + “.ts” + “ -c:v libx264 -c:a copy -bsf:a aac_adtstoasc ” + 输出路径 + “.mp4 -y”, ))  |
视频_合并视频 | 文本型 | | |
合并路径 | 文本型 | | | | 输出路径 | 文本型 | | | | 返回 (系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + #引号 + “concat:” + 合并路径 + #引号 + “ -acodec copy -vcodec copy -absf aac_adtstoasc ” + 输出路径 + “ -y”, )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 执行结果 | 文本型 | | | 数组 | 文本型 | | 0 | 时 | 双精度小数型 | | | 分 | 双精度小数型 | | | 秒 | 双精度小数型 | | | 视频长度 | 双精度小数型 | | |
执行结果 = 系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 视频路径 + “ 2>&1”)执行结果 = 文本_取出中间文本 (执行结果, “Duration: ”, “, start”, )数组 = 分割文本 (执行结果, “:”, ) 如果 (取数组成员数 (数组 ) = 3 ) 时 = 到数值 (数组 [1 ]) × 60 × 60  分 = 到数值 (数组 [2 ]) × 60  秒 = 到数值 (数组 [3 ]) 视频长度 = 时 + 分 + 秒  视频长度 = 0 返回 (到整数 (视频长度))|
视频_视频转图 | 文本型 | | |
视频路径 | 文本型 | | | | 图片位数 | 文本型 | | | | 输出目录 | 文本型 | | | |
ret = 系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 视频路径 + “ -ss 1 -f image2 ” + 输出目录 + “\%” + 图片位数 + “d.jpeg”)返回 (编码_utf8到gb2312 (ret )) |
视频_提取音频 | 文本型 | | |
视频路径 | 文本型 | | | | 输出路径 | 文本型 | | | | 返回 (系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 视频路径 + “ -f mp3 ” + #引号 + 输出路径 + #引号, )) |
视频_置入音频 | 文本型 | | |
视频路径 | 文本型 | | | | 音频路径 | 文本型 | | | | 输出路径 | 文本型 | | | | 返回 (系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 视频路径 + “ -i ” + 音频路径 + “ -c copy ” + 输出路径, )) |
视频_图转视频 | 文本型 | | |
图片目录 | 文本型 | | | | 每秒帧数 | 文本型 | | | | 音频路径 | 文本型 | | | | 输出路径 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ret | 文本型 | | | 音频设置 | 文本型 | | | 如果真 (音频路径 ≠ “”) 音频设置 = “ -i ” + 音频路径 ret = 系统_取DOS执行结果 (集_路径 + “\ffmpeg -r ” + 每秒帧数 + 音频设置 + “ -f image2 -i ” + 图片目录 + “\%3d.jpeg -y -c:a aac -strict experimental ” + 输出路径)返回 (编码_utf8到gb2312 (ret )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | BMP图片宽度 | 整数型 | | | BMP图片高度 | 整数型 | | | BMP起始位置 | 整数型 | | | i | 整数型 | | | BMPY | 整数型 | | | BMPX | 整数型 | | | 当前x | 整数型 | | | 当前y | 整数型 | | | 平均R | 整数型 | | | 平均B | 整数型 | | | 平均G | 整数型 | | | 当前R | 整数型 | | | 当前G | 整数型 | | | 当前B | 整数型 | | | 当前N | 整数型 | | | Y | 整数型 | | | 输出BMP | 字节集 | | | 衰减_整数 | 整数型 | | |
输出BMP = BMP图片 BMP起始位置 = BMP图片 [3 ]BMP图片宽度 = BMP图片 [19 ] + BMP图片 [20 ] × 256 BMP图片高度 = BMP图片 [23 ] + BMP图片 [24 ] × 256 衰减_整数 = 0 如果真 (是否为空 (衰减 ) = 假) 衰减_整数 = 衰减 变量循环首 (0, BMP图片高度 - 1, 1, BMPY ) 变量循环首 (0, BMP图片宽度 - 1, 1, BMPX )  平均R = 0   平均G = 0   平均B = 0   当前N = 0   如果真 (取图片像素RGB (BMP图片, BMPX - 1, BMPY, 当前R, 当前G, 当前B ))    平均R = 平均R + 当前R    平均G = 平均G + 当前G    平均B = 平均B + 当前B    当前N = 当前N + 1   如果真 (取图片像素RGB (BMP图片, BMPX + 1, BMPY, 当前R, 当前G, 当前B ))    平均R = 平均R + 当前R    平均G = 平均G + 当前G    平均B = 平均B + 当前B    当前N = 当前N + 1   如果真 (取图片像素RGB (BMP图片, BMPX, BMPY + 1, 当前R, 当前G, 当前B ))    平均R = 平均R + 当前R    平均G = 平均G + 当前G    平均B = 平均B + 当前B    当前N = 当前N + 1   如果真 (取图片像素RGB (BMP图片, BMPX, BMPY - 1, 当前R, 当前G, 当前B ))    平均R = 平均R + 当前R    平均G = 平均G + 当前G    平均B = 平均B + 当前B    当前N = 当前N + 1  平均B = 取整 (平均B ÷ 当前N) - 衰减_整数  平均G = 取整 (平均G ÷ 当前N ) - 衰减_整数   平均R = 取整 (平均R ÷ 当前N ) - 衰减_整数   如果真 (平均B < 0 )   平均B = 0   如果真 (平均G < 0 )   平均G = 0   如果真 (平均R < 0 )   平均R = 0  输出BMP [BMP起始位置 (BMPY × BMP图片宽度 + BMPX) × 3 + 1] = 平均B  输出BMP [BMP起始位置 (BMPY × BMP图片宽度 + BMPX ) × 3 + 2 ] = 平均G   输出BMP [BMP起始位置 (BMPY × BMP图片宽度 + BMPX ) × 3 + 3 ] = 平均R  变量循环尾 () 变量循环尾 ()返回 (输出BMP )|
取图片像素RGB | 逻辑型 | | |
BMP图片 | 字节集 | | | | 图片X | 整数型 | | | | 图片Y | 整数型 | | | | 图片R | 整数型 | | | | 图片G | 整数型 | | | | 图片B | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | BMP图片宽度 | 整数型 | | | BMP图片高度 | 整数型 | | | BMP起始位置 | 整数型 | | |
BMP起始位置 = BMP图片 [3 ]BMP图片宽度 = BMP图片 [19 ] + BMP图片 [20 ] × 256 BMP图片高度 = BMP图片 [23 ] + BMP图片 [24 ] × 256 如果真 (图片X < 0 或 图片X ≥ BMP图片宽度 ) 返回 (假) 如果真 (图片Y < 0 或 图片Y ≥ BMP图片高度 ) 返回 (假)图片B = BMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X) × 3 + 1]图片G = BMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X ) × 3 + 2 ]图片R = BMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X ) × 3 + 3 ]返回 (真)|
置图片像素RGB | 逻辑型 | | |
BMP图片 | 字节集 | | | | 图片X | 整数型 | | | | 图片Y | 整数型 | | | | 图片R | 整数型 | | | | 图片G | 整数型 | | | | 图片B | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | BMP图片宽度 | 整数型 | | | BMP图片高度 | 整数型 | | | BMP起始位置 | 整数型 | | |
BMP起始位置 = BMP图片 [3 ]BMP图片宽度 = BMP图片 [19 ] + BMP图片 [20 ] × 256 BMP图片高度 = BMP图片 [23 ] + BMP图片 [24 ] × 256 如果真 (图片X < 0 或 图片X ≥ BMP图片宽度 ) 返回 (假) 如果真 (图片Y < 0 或 图片Y ≥ BMP图片高度 ) 返回 (假) BMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X) × 3 + 1] = 图片BBMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X ) × 3 + 2 ] = 图片G BMP图片 [BMP起始位置 (图片Y × BMP图片宽度 + 图片X ) × 3 + 3 ] = 图片R 返回 (真)|
画图像 | 字节集 | | |
前图像 | 字节集 | | | | 背景图像 | 字节集 | | | | 图像位置X | 整数型 | | | | 图像位置Y | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | BMP图片宽度1 | 整数型 | | | BMP图片高度1 | 整数型 | | | BMP起始位置1 | 整数型 | | | BMP图片宽度2 | 整数型 | | | BMP图片高度2 | 整数型 | | | BMP起始位置2 | 整数型 | | | 输出BMP | 字节集 | | | 当前x | 整数型 | | | 当前y | 整数型 | | | 当前R | 整数型 | | | 当前G | 整数型 | | | 当前B | 整数型 | | |
输出BMP = 背景图像 BMP起始位置1 = 背景图像 [3 ]BMP图片宽度1 = 背景图像 [19 ] + 背景图像 [20 ] × 256 BMP图片高度1 = 背景图像 [23 ] + 背景图像 [24 ] × 256 BMP起始位置2 = 前图像 [3 ]BMP图片宽度2 = 前图像 [19 ] + 前图像 [20 ] × 256 BMP图片高度2 = 前图像 [23 ] + 前图像 [24 ] × 256 如果真 (图像位置X ≥ 0 且 图像位置X < BMP图片宽度1 ) 如果真 (图像位置Y ≥ 0 且 图像位置Y < BMP图片高度1 )  变量循环首 (0, BMP图片高度2 - 2, 1, 当前y )   变量循环首 (0, BMP图片宽度2 - 1, 1, 当前x )    当前B = 前图像 [BMP起始位置1 (当前y × BMP图片宽度2 + 当前x ) × 3 + 1 ]    当前G = 前图像 [BMP起始位置1 (当前y × BMP图片宽度2 + 当前x ) × 3 + 2 ]    当前R = 前图像 [BMP起始位置1 (当前y × BMP图片宽度2 + 当前x ) × 3 + 3 ]   置图片像素RGB (输出BMP, 当前x + 图像位置X, 当前y + 图像位置Y, 当前R, 当前G, 当前B )   变量循环尾 ()  变量循环尾 () 返回 (输出BMP)|
视频_提取视频 | 文本型 | | |
视频路径 | 文本型 | | | | 输出路径 | 文本型 | | | |
ret = 系统_取DOS执行结果 (集_路径 + “\ffmpeg -i ” + 视频路径 + “ -vcodec copy -an ” + 输出路径 )返回 (编码_utf8到gb2312 (ret )) |
视频_淡入淡出 | 文本型 | | |
视频路径 | 文本型 | | | | 视频总帧数 | 文本型 | | | | 开始淡入起始帧数 | 文本型 | | | | 开始淡出最后帧数 | 文本型 | | | | 输出路径 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ret | 文本型 | | | 开始淡入 | 文本型 | | | 开始淡出 | 文本型 | | |
如果真 (开始淡入起始帧数 ≠ “”) 开始淡入 = “fade=in:0:” + 开始 
用IDM下载视频后,会生成.ts视频文件,用此程序,可以转为MP4
调用了精易模块,请自行加入
下载地址:https://wwa.lanzoui.com/iLAtfvgc8tg
|