当前位置: 首页 > news >正文

用Delphi编写一个通用视频转换工具,让视频格式转换变得更简单

用Delphi编写的简单视频格式转换程序,它使用TComboBox、TOpenDialog和TSaveDialog组件来选择转换格式、选择源视频文件和选择目标视频文件。程序还使用TEdit组件允许用户输入参数,然后将这些组件中的信息拼接成转换命令并在DOS窗口中运行它。

procedure TForm1.FormCreate(Sender: TObject);
begin// 添加选项到ComboBox下拉框中ComboBox1.Items.Add('H264视频转ts视频流');ComboBox1.Items.Add('H264视频转mp4');ComboBox1.Items.Add('ts视频转mp4');ComboBox1.Items.Add('mp4视频转flv');ComboBox1.Items.Add('转换文件为3GP格式');ComboBox1.Items.Add('转换文件为3GP格式 v2');
end;
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ShellAPI;typeTForm1 = class(TForm)ComboBox1: TComboBox;Button1: TButton;OpenDialog1: TOpenDialog;SaveDialog1: TSaveDialog;Edit1: TEdit;Edit2: TEdit;Label1: TLabel;Label2: TLabel;procedure Button1Click(Sender: TObject);private{ Private declarations }function GetDosCommand(Command: string): string;public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}function TForm1.GetDosCommand(Command: string): string;
begin// 将命令转换为可执行的DOS命令Result := 'cmd.exe /c ' + Command;
end;procedure TForm1.Button1Click(Sender: TObject);
varCommand, SourceFile, TargetFile: string;
begin// 显示打开文件对话框,选择源视频文件if OpenDialog1.Execute thenSourceFile := OpenDialog1.FileNameelseExit;// 显示保存文件对话框,选择目标视频文件if SaveDialog1.Execute thenTargetFile := SaveDialog1.FileNameelseExit;// 根据ComboBox的选项获取转换命令case ComboBox1.ItemIndex of0: Command := 'ffmpeg -i ' + SourceFile + ' -vcodec copy -f mpegts ' + TargetFile; // H264视频转ts视频流1: Command := 'ffmpeg -i ' + SourceFile + ' -vcodec copy -f mp4 ' + TargetFile; // H264视频转mp42: Command := 'ffmpeg -i ' + SourceFile + ' -acodec copy -vcodec copy -f mp4 ' + TargetFile; // ts视频转mp43: Command := 'ffmpeg -i ' + SourceFile + ' -acodec copy -vcodec copy -f flv ' + TargetFile; // mp4视频转flv4: Command := 'ffmpeg -y -i ' + SourceFile + ' ' + Edit1.Text + ' ' + TargetFile; // 转换文件为3GP格式 5: Command := 'ffmpeg -y -i ' + SourceFile + ' -ac 1 -acodec libamr_nb -ar 8000 -ab 12200 -s 176x144 -b 128 -r 15 ' + TargetFile; // 转换文件为3GP格式 v2elseShowMessage('请选择一个转换格式');Exit;end;// 将Edit1中的参数添加到命令中if Trim(Edit1.Text) <> '' thenCommand := Command + ' ' + Edit1.Text;// 在DOS窗口中运行转换命令Command := GetDosCommand(Command);ShellExecute(Handle, 'open', 'cmd.exe', PChar(Command), nil, SW_HIDE);
end;end.

在上述代码中,我们使用TComboBox组件允许用户选择转换格式,使用TOpenDialog和TSaveDialog组件选择源视频和目标视频文件,并使用TEdit组件允许用户输入参数。在Button1的OnClick事件中,我们根据ComboBox的选项获取要执行的转换命令,并将Edit1中的参数添加到命令中。最后,我们在DOS窗口中运行转换命令。

按下图操作:C:\delphisource\mytools\runpythoncode\Unit1.pas

  比如选择mp4转flv类型生成的命令如下:

C:\Users\86182\AppData\Local\JianyingPro\Apps\4.3.1.10241\ffmpeg.exe -i "C:\myApp\deepfakelivetemp\DeepFaceLive_NVIDIA\_internal\DeepFaceLive\build\samples\Asian woman.mp4" -acodec copy -vcodec copy -f flv C:\myimages\outputs\output.flv 

结果:

 

http://www.lryc.cn/news/104639.html

相关文章:

  • Kafka系列之:安装Know Streaming详细步骤
  • 绝杀 GETPOST 嵌套的 JSON 参数
  • Spring 项目过程及如何使用 Spring
  • 信息学奥赛一本通——1258:【例9.2】数字金字塔
  • selenium官网文档阅读总结(day 2)
  • VMware虚拟机安装VMware tools
  • 【Linux命令200例】rm用来删除文件或目录(谨慎使用)
  • 行云管家荣获CFS第十二届财经峰会 “2023产品科技创新奖”
  • uniapp禁止页面滚动
  • ModuleNotFoundError: No module named ‘_sqlite3‘
  • Rust的入门篇(下)
  • PYTHON-logging-工具类-支持中文字符控制台输出和文件写入-不会导致乱码
  • 对gpt的简单认识
  • java类和对象详解(1)
  • RxJava 倒计时,轮询器
  • SE-Net注意力机制
  • 【Lua学习笔记】Lua进阶——垃圾回收
  • session和cookie
  • P7243 最大公约数
  • ES6基础知识九:你是怎么理解ES6中Module的?使用场景?
  • TensorFlow项目练手(三)——基于GRU股票走势预测任务
  • 微信小程序页面传值为对象[Object Object]详解
  • Redis篇
  • Entity Framework(EF)查询
  • 使用Pytest生成HTML测试报告
  • DSA之图(4):图的应用
  • [SQL挖掘机] - 窗口函数 - row_number
  • 【论文阅读】通过解缠绕表示学习提升领域泛化能力用于主题感知的作文评分
  • 二分查找P1873 [COCI2011-2012#5] EKO / 砍树
  • 【BOOST程序库】正则表达式相关操作