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;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI;
type
TForm1 = 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;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.GetDosCommand(Command: string): string;
begin
// 将命令转换为可执行的DOS命令
Result := 'cmd.exe /c ' + Command;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Command, SourceFile, TargetFile: string;
begin
// 显示打开文件对话框,选择源视频文件
if OpenDialog1.Execute then
SourceFile := OpenDialog1.FileName
else
Exit;
// 显示保存文件对话框,选择目标视频文件
if SaveDialog1.Execute then
TargetFile := SaveDialog1.FileName
else
Exit;
// 根据ComboBox的选项获取转换命令
case ComboBox1.ItemIndex of
0: Command := 'ffmpeg -i ' + SourceFile + ' -vcodec copy -f mpegts ' + TargetFile; // H264视频转ts视频流
1: Command := 'ffmpeg -i ' + SourceFile + ' -vcodec copy -f mp4 ' + TargetFile; // H264视频转mp4
2: Command := 'ffmpeg -i ' + SourceFile + ' -acodec copy -vcodec copy -f mp4 ' + TargetFile; // ts视频转mp4
3: Command := 'ffmpeg -i ' + SourceFile + ' -acodec copy -vcodec copy -f flv ' + TargetFile; // mp4视频转flv
4: 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格式 v2
else
ShowMessage('请选择一个转换格式');
Exit;
end;
// 将Edit1中的参数添加到命令中
if Trim(Edit1.Text) <> '' then
Command := 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 to 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
結果: