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;

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 

結果:

 

おすすめ

転載: blog.csdn.net/winniezhang/article/details/132048674