开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 396|回复: 2
收起左侧

[易相关软件分享] 视频无损批量旋转器(已完成)分享经验和软件

[复制链接]
结帖率:0% (0/1)
发表于 2024-3-6 18:42:35 | 显示全部楼层 |阅读模式   新疆维吾尔自治区阿尔泰地区
本帖最后由 boyhero 于 2024-3-6 19:03 编辑

屏视用照相机或者摄影机拍竖屏短视频时拷过来后在(编辑软件里面一个一个的旋转成竖屏)很麻烦,剪影等软件的很多好的竖屏模板用不了,用转码器转码的时候旋了 视频会有所受损。所以网上了找了很多找不到合适的软件只好自己做了一个,本人不知道编程,易语言也是10年前上学的时候玩过一点,所以设计好思路后不知道的地方在这个网站一个一个的索索解决终于做出来了。

这是无编码旋转模式:这个模式下看可以随意设置视频旋转方向,视频本身不会编码,会在视频的数据里面会添加,视频的画面角度,不会真的变成看到的样子,但是主流的(视频编辑软件:PR,剪影....等和视频播放软件:potplayer,QQ播放器....等)都能识别到并能正常编辑和播放。

1.jpg

这是编码模式:这个模式下看可以随意设置视频旋转方向和镜像,视频本身会编码,质量有三种:1.普通 2.偏高 3.最挂

2.jpg

默认格式里面现在只有 MP4 和 MOV 但是转码器 本身支持很多种格式,格式数据文件在软件运行目录下的 data.ini 可以 按照自己的需求编辑保存就可。先添加格式必须用 < | > 这个符号来分开。

链接:https://pan.baidu.com/s/1xdOmA3PT9pTWOvSnbBeNKA  提取码:uc7o

分享一下源码希望对新学者有所帮助:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
ini路径文本型 
文本文本型0
n整数型 
ini路径 = 取运行目录 ()“\data.ini”
拖放对象1.注册拖放控件 (文件目录.取窗口句柄 ())
格式.清空 ()
文本 = 分割文本 (读配置项 (ini路径, “格式数据”, “格式列表”, ), “|”, )
计次循环首 (取数组成员数 (文本), n)
格式.加入项目 (文本 [n], )
计次循环尾 ()
格式.现行选中项 = 1
子程序名返回值类型公开备 注
_按钮减_被单击  
如果真 (到数值 (角度数.内容) ≥ -90)
角度数.内容 = 到文本 (到数值 (角度数.内容) - 90)

子程序名返回值类型公开备 注
_按钮加_被单击  
如果真 (到数值 (角度数.内容) ≤ 90)
角度数.内容 = 到文本 (到数值 (角度数.内容) + 90)

子程序名返回值类型公开备 注
_无编码_被单击  
变量名类 型静态数组备 注
cmd_code文本型 
判断 (文件目录.内容 = “”)
文件目录.内容 = “先输入或者导入文件目录”
判断 (文件目录.内容 = “先输入或者导入文件目录”)
信息框 (“文件目录错误”, 0, “错误”, )
cmd_code = “set path=%path%;”取运行目录 ()“\bin;”#换行符“mkdir Done”#换行符“for %%a in (*.” + 格式.内容 + “) do ffmpeg -i %%a -metadata:s:v rotate=”#引号 + 角度数.内容 + #引号“ -codec copy Done\%%~na.” + 格式.内容 + #换行符“del %0”
写到文件 (文件目录.内容 + “run.bat”, 到字节集 (cmd_code))
执行 (, 文件目录.内容 + “run.bat”, 文件目录.内容 + “run.bat”, 文件目录.内容, 2)

子程序名返回值类型公开备 注
_导入按钮_被单击  
文件目录.内容 = 目录_浏览 (“选择你要转码的视频目录”, , , , 真, )
子程序名返回值类型公开备 注
_拖放对象1_得到文件  
参数名类 型参考可空数组备 注
接收到的文件路径文本型
文件目录.内容 = 接收到的文件路径
子程序名返回值类型公开备 注
_有编码_被单击  
判断 (_启动窗口.高度 = 99)
_启动窗口.高度 = 163
无编码.禁止 = 真
按钮加.禁止 = 真
按钮减.禁止 = 真
角度数.禁止 = 真
判断 (_启动窗口.高度 = 163)
_启动窗口.高度 = 99
无编码.禁止 = 假
按钮加.禁止 = 假
按钮减.禁止 = 假
角度数.禁止 = 假



子程序名返回值类型公开备 注
_文件目录_鼠标左键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
文件目录.内容 = “”
子程序名返回值类型公开备 注
_开始转码_被单击  
变量名类 型静态数组备 注
cmd_code文本型 
cmd_rote文本型 
cmd_hw文本型 
cmd_rhw文本型 
cmd_zl文本型 
判断 (旋转标签.标记 = “”)
cmd_rote = “-vf ”#引号
cmd_rote = “-vf ” + 旋转标签.标记

判断 (镜像标签.标记 = “”)
cmd_hw = #引号
cmd_hw = 镜像标签.标记 + #引号

判断 (cmd_rote + cmd_hw = “-vf ”#引号#引号 )
cmd_rhw = “”
cmd_rhw = cmd_rote + cmd_hw

判断 (质量标签.标题 = “+ 最佳 =”)
cmd_zl = “-crf 10”
判断 (质量标签.标题 = “+ 普通 =”)
cmd_zl = “-crf 23”
判断 (质量标签.标题 = “+ 偏高 =”)
cmd_zl = “-crf 16”



判断 (文件目录.内容 = “”)
文件目录.内容 = “先输入或者导入文件目录”
判断 (文件目录.内容 = “先输入或者导入文件目录”)
信息框 (“文件目录错误”, 0, “错误”, )
判断 (格式2.内容 = “”)
信息框 (“转换格式不能落空”, 0, “错误”, )
cmd_code = “set path=%path%;”取运行目录 ()“\bin;”#换行符“mkdir Done”#换行符“for %%a in (*.” + 格式.内容 + “) do ffmpeg -i %%a ” + cmd_rhw + “ -c:v libx264 -preset medium -profile:v high ” + cmd_zl + “ -c:a copy Done\%%~na.” + 格式2.内容 + #换行符“del %0”
写到文件 (文件目录.内容 + “run.bat”, 到字节集 (cmd_code))
执行 (, 文件目录.内容 + “run.bat”, 文件目录.内容 + “run.bat”, 文件目录.内容, 2)

子程序名返回值类型公开备 注
_格式_鼠标右键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
格式.类型 = 1
子程序名返回值类型公开备 注
__启动窗口_将被销毁  
提示框 (“使用当中遇到问题可以联系开发者公众号”#换行符#换行符“公众号名称:UGVFX | 开发者:Dilmurat”, #信息图标, , , 2000)
子程序名返回值类型公开备 注
_左转_被单击  
如果 (旋转标签.标题 = “不旋转”)
旋转标签.标题 = “左旋转”
旋转标签.标记 = #引号“transpose=2”



如果 (旋转标签.标题 = “右旋转”)
旋转标签.标题 = “左旋转”
旋转标签.标记 = #引号“transpose=2”



子程序名返回值类型公开备 注
_右转_被单击  
如果 (旋转标签.标题 = “不旋转”)
旋转标签.标题 = “右旋转”
旋转标签.标记 = #引号“transpose=1”

如果 (旋转标签.标题 = “左旋转”)
旋转标签.标题 = “右旋转”
旋转标签.标记 = #引号“transpose=1”

子程序名返回值类型公开备 注
_水平翻转_被单击  
如果 (旋转标签.标记 = “”)
如果 (镜像标签.标题 = “+ 暂不翻转”)
镜像标签.标题 = “+ 水平翻转”
镜像标签.标记 = “hflip”

如果 (镜像标签.标题 = “+ 垂直翻转”)
镜像标签.标题 = “+ 水平翻转”
镜像标签.标记 = “hflip”

如果 (镜像标签.标题 = “+ 暂不翻转”)
镜像标签.标题 = “+ 水平翻转”
镜像标签.标记 = “,hflip”

如果 (镜像标签.标题 = “+ 垂直翻转”)
镜像标签.标题 = “+ 水平翻转”
镜像标签.标记 = “,hflip”


子程序名返回值类型公开备 注
_垂直翻转_被单击  
如果 (旋转标签.标记 = “”)
如果 (镜像标签.标题 = “+ 暂不翻转”)
镜像标签.标题 = “+ 垂直翻转”
镜像标签.标记 = “vflip”

如果 (镜像标签.标题 = “+ 水平翻转”)
镜像标签.标题 = “+ 垂直翻转”
镜像标签.标记 = “vflip”

如果 (镜像标签.标题 = “+ 暂不翻转”)
镜像标签.标题 = “+ 垂直翻转”
镜像标签.标记 = “,vflip”

如果 (镜像标签.标题 = “+ 水平翻转”)
镜像标签.标题 = “+ 垂直翻转”
镜像标签.标记 = “,vflip”


子程序名返回值类型公开备 注
_旋转标签_被双击逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
旋转标签.标题 = “不旋转”
旋转标签.标记 = “”
子程序名返回值类型公开备 注
_镜像标签_被双击逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
镜像标签.标题 = “+ 暂不翻转”
镜像标签.标记 = “”
子程序名返回值类型公开备 注
_旋转标签_鼠标位置被移动逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
添加提示 (旋转标签.取窗口句柄 (), “ 双击鼠标可取消!”, 假, )
子程序名返回值类型公开备 注
_镜像标签_鼠标位置被移动逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
添加提示 (镜像标签.取窗口句柄 (), “ 双击鼠标可取消!”, 假, )
子程序名返回值类型公开备 注
_格式2_鼠标位置被移动逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
添加提示 (格式2.取窗口句柄 (), “ 请输入要导出的格式比如 MKV,MP3 之类的 ”, 假, )
子程序名返回值类型公开备 注
_转码质量_列表项被选择  
质量标签.标题 = “+ ” + 转码质量.内容 + “ =”


i支持库列表   支持库注释   
edroptarget拖放支持库
shell操作系统界面功能支持库
shellEx扩展功能支持库一


本来最初的想法是这样的但是实力不够很多问题找不到解决的办法所以只能这样了。{:7_450:}

123.jpg


结帖率:0% (0/1)
 楼主| 发表于 2024-3-7 11:44:51 | 显示全部楼层   新疆维吾尔自治区阿尔泰地区
易神 发表于 2024-3-7 10:41
开源精神必须支持~

  谢谢支持 ! 之后有开发会继续开源的
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 6 天

发表于 2024-3-7 10:41:25 | 显示全部楼层   江西省上饶市
开源精神必须支持~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表