视频批量去片头片尾小工具源码分享(基于FFmpeg视频流复制切割,快速无损)
开发环境Delphi2010,框架VGScene(新版本用FMX)
特点:直观的预览界面,秒级的微调定位,批量预设、单个微调,多任务线程,快速无损(FFmpeg)
视频批量去片头片尾小工具源码分享,演示视频
程序源码打包下载:https://download.csdn.net/download/u012762790/19595572
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
ExtClass, ExtWindows, Dialogs, StdCtrls, ExtCtrls, ComCtrls, vg_controls,
vg_listbox, vg_scene, vg_objects, vg_layouts, vg_textbox, ActnList;
type
TFormMain = class(TForm)
vgScene: TvgScene;
RootBackground: TvgBackground;
VideoList: TvgListBox;
Resources: TvgResources;
LayoutSetting: TvgRectangle;
ButtonClear: TvgBitmapButton;
ButtonStart: TvgBitmapButton;
ButtonAdd: TvgBitmapButton;
ButtonHead: TvgRadioButton;
ButtonFoot: TvgRadioButton;
TextTime: TvgTextBox;
ActionList: TActionList;
ActionDelete: TAction;
ActionForward: TAction;
ActionBackward: TAction;
procedure FormCreate(Sender: TObject);
procedure TaskProgress(Sender: TObject; Progress: Single);
procedure ButtonStartClick(Sender: TObject);
procedure ButtonClearClick(Sender: TObject);
procedure ButtonAddClick(Sender: TObject);
procedure ButtonAddDragOver(Sender: TObject; const Data: TvgDragObject; const Point: TvgPoint; var Accept: Boolean);
procedure ButtonAddDragDrop(Sender: TObject; const Data: TvgDragObject; const Point: TvgPoint);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ActionDeleteExecute(Sender: TObject);
procedure ActionForwardExecute(Sender: TObject);
procedure ActionBackwardExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
TaskBar: ETaskBar;
{
Private declarations }
public
procedure AddVideo(FileName: TFileName);
{
Public declarations }
end;
type
TVideoItem = class(TvgListBoxItem)
private
iscut: Boolean;
mTextTime, mTextInfo: TvgText;
mImageBox: TvgHorzImageListBox;
mButtonDel: TvgImage;
procedure mDelClick(Sender: TObject);
procedure mTuningOnclick(Sender: TObject);
function GetVideoDuration(FileName: string): Int64;
public
FilePath, TempPath: string;
VideoDuration: Int64;
CutHead: Boolean;
CutTime: string;
constructor Create(