|  | 
 
 发表于 2024-3-6 18:42:35
|
显示全部楼层
|阅读模式
   新疆维吾尔自治区阿尔泰地区 
  
| 本帖最后由 boyhero 于 2024-3-6 19:03 编辑 
 屏视用照相机或者摄影机拍竖屏短视频时拷过来后在(编辑软件里面一个一个的旋转成竖屏)很麻烦,剪影等软件的很多好的竖屏模板用不了,用转码器转码的时候旋了 视频会有所受损。所以网上了找了很多找不到合适的软件只好自己做了一个,本人不知道编程,易语言也是10年前上学的时候玩过一点,所以设计好思路后不知道的地方在这个网站一个一个的索索解决终于做出来了。
 
 这是无编码旋转模式:这个模式下看可以随意设置视频旋转方向,视频本身不会编码,会在视频的数据里面会添加,视频的画面角度,不会真的变成看到的样子,但是主流的(视频编辑软件:PR,剪影....等和视频播放软件:potplayer,QQ播放器....等)都能识别到并能正常编辑和播放。
 
 
   
 这是编码模式:这个模式下看可以随意设置视频旋转方向和镜像,视频本身会编码,质量有三种:1.普通 2.偏高 3.最挂
 
 
   
 默认格式里面现在只有 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)   判断 ( 文件目录.内容 = “”)  文件目录.内容 = “先输入或者导入文件目录”  判断 ( 文件目录.内容 = “先输入或者导入文件目录”)  信息框 (“文件目录错误” , 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)  文件目录.内容 = 目录_浏览 (“选择你要转码的视频目录” , , , , 真, ) 文件目录.内容 = 接收到的文件路径  判断 ( _启动窗口.高度 = 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 之类的 ” , 假, 假) 质量标签.标题 = “+ ”  + 转码质量.内容 + “ =”
 本来最初的想法是这样的但是实力不够很多问题找不到解决的办法所以只能这样了。{:7_450:}
 
 
   
 
 
 | 
 |