From dec4ba70c7192884202c00809099c014b0672869 Mon Sep 17 00:00:00 2001 From: januwA <ajanuw1995@gmail.com> Date: Sat, 26 Sep 2020 11:05:48 +0800 Subject: [PATCH] v4.1.0 --- LICENSE | 7 + MainWindow.xaml | 287 +++++++++++++++++---------------- MainWindow.xaml.cs | 187 +++++++++++++++------ README.md | 8 +- WpfApp1.csproj | 1 + images/2020-09-26-11-03-37.png | Bin 0 -> 46541 bytes 6 files changed, 302 insertions(+), 188 deletions(-) create mode 100644 LICENSE create mode 100644 images/2020-09-26-11-03-37.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7f27507 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Ajanuw + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/MainWindow.xaml b/MainWindow.xaml index 04dc52c..5a6d327 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -5,164 +5,175 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" - Title="转换工具" Height="auto" Width="600" > + Title="转换工具" Height="auto" Width="600" d:DesignHeight="705" > <Window.Resources> <Style TargetType="GroupBox"> <Setter Property="Margin" Value="0,0,0,8" /> <Setter Property="BorderBrush" Value="Black"></Setter> </Style> </Window.Resources> - <StackPanel Margin="16"> - - <GroupBox Header="输入" AllowDrop="True" Drop="Drop1"> - <DockPanel> - <Button Content="选择输入文件/拖拽" Click="Button_Click_1" VerticalAlignment="Center" Margin="0,0,8,0"/> - <TextBox x:Name="inputFile" TextWrapping="Wrap" VerticalAlignment="Center"/> - </DockPanel> - </GroupBox> - <GroupBox Header="普通工具"> - <WrapPanel Orientation="Horizontal"> - <Button Content="去掉视频音轨" Click="Button_Click_2" VerticalAlignment="Center" Margin="0,0,8,0"/> - <Button Content="提取视频音轨" Click="Button_Click" VerticalAlignment="Center" Margin="0,0,8,0"/> - <StackPanel Orientation="Horizontal" Margin="0,0,8,0"> - <Button Content="调整音量" Click="Button_Click_3" VerticalAlignment="Center"/> - <TextBox x:Name="inputVolume" Width="40" VerticalAlignment="Center" Text="1.0"/> - </StackPanel> - <Button Content="播放" VerticalAlignment="Center" Click="Button_Click_5" Margin="0,0,8,0"/> - <Button Content="循环播放" VerticalAlignment="Center" Click="Button_Click_16" Margin="0,0,8,0"/> - </WrapPanel> - </GroupBox> - <GroupBox Header="合并音视频"> - <StackPanel> - <DockPanel AllowDrop="True" Drop="Drop2"> - <Button Content="选择音频/拖拽" VerticalAlignment="Center" Click="Button_Click_8" Margin="0,0,8,0"></Button> - <TextBox x:Name="inputAudio" VerticalAlignment="Center" /> + <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Height="auto"> + <StackPanel Margin="16"> + <GroupBox Header="输入" AllowDrop="True" Drop="Drop1"> + <DockPanel> + <Button Content="选择输入文件/拖拽" Click="Button_Click_1" VerticalAlignment="Center" Margin="0,0,8,0"/> + <TextBox x:Name="inputFile" TextWrapping="Wrap" VerticalAlignment="Center" TextChanged="inputFile_TextChanged"/> </DockPanel> - <StackPanel Orientation="Horizontal" Margin="0,8,0,0"> - <Button Content="音频填充视频" VerticalAlignment="Center" Click="Button_Click_6" Margin="0,0,8,0"/> - <Button Content="视频填充音频" VerticalAlignment="Center" Click="Button_Click_7"/> - </StackPanel> - </StackPanel> - </GroupBox> - <GroupBox Header="获取视频片段"> - <Grid> - <Grid.RowDefinitions> - <RowDefinition></RowDefinition> - <RowDefinition></RowDefinition> - <RowDefinition></RowDefinition> - </Grid.RowDefinitions> - <StackPanel Orientation="Horizontal"> - <Label Content="从" VerticalAlignment="Center"/> - <TextBox x:Name="c_1_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> - <Label Content="开始裁剪" VerticalAlignment="Center"/> - <TextBox x:Name="c_1_1" Text="00:00:10" VerticalAlignment="Center" Width="80"/> - <Label Content="秒" VerticalAlignment="Center"/> - <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_9"></Button> - </StackPanel> - <StackPanel Grid.Row="1" Orientation="Horizontal"> - <Label Content="从" VerticalAlignment="Center"/> - <TextBox x:Name="c_2_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> - <Label Content="开始,到" VerticalAlignment="Center"/> - <TextBox x:Name="c_2_1" Text="00:00:10" VerticalAlignment="Center" Width="80"/> - <Label Content="结束" VerticalAlignment="Center"/> - <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_10"></Button> - </StackPanel> - <StackPanel Grid.Row="2" Orientation="Horizontal"> - <Label Content="从" VerticalAlignment="Center"/> - <TextBox x:Name="c_3_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> - <Label Content="开始,到视频结束" VerticalAlignment="Center"/> - <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_11"></Button> + </GroupBox> + <GroupBox Header="普通工具"> + <WrapPanel Orientation="Horizontal"> + <Button Content="去掉视频音轨" Click="Button_Click_2" VerticalAlignment="Center" Margin="0,0,8,0"/> + <Button Content="提取视频音轨" Click="Button_Click" VerticalAlignment="Center" Margin="0,0,8,0"/> + <StackPanel Orientation="Horizontal" Margin="0,0,8,0"> + <Button Content="调整音量" Click="Button_Click_3" VerticalAlignment="Center"/> + <TextBox x:Name="inputVolume" Width="40" VerticalAlignment="Center" Text="1.0"/> + </StackPanel> + <Button Content="播放" VerticalAlignment="Center" Click="Button_Click_5" Margin="0,0,8,0"/> + <Button Content="循环播放" VerticalAlignment="Center" Click="Button_Click_16" Margin="0,0,8,0"/> + <Button Content="下载m3u8到MP4" VerticalAlignment="Center" Click="Button_Click_22" Margin="0,0,8,0"/> + <Button Content="转为MP4" VerticalAlignment="Center" Margin="0,0,8,0" Click="Button_Click_23"></Button> + </WrapPanel> + </GroupBox> + <GroupBox Header="合并音视频"> + <StackPanel> + <DockPanel AllowDrop="True" Drop="Drop2"> + <Button Content="选择音频/拖拽" VerticalAlignment="Center" Click="Button_Click_8" Margin="0,0,8,0"></Button> + <TextBox x:Name="inputAudio" VerticalAlignment="Center" /> + </DockPanel> + <StackPanel Orientation="Horizontal" Margin="0,8,0,0"> + <CheckBox x:Name="isAmix" Content="混音" IsChecked="False" VerticalAlignment="Center" Margin="0,0,8,0"></CheckBox> + <Button Content="音频填充视频" VerticalAlignment="Center" Click="Button_Click_6" Margin="0,0,8,0"/> + <Button Content="视频填充音频" VerticalAlignment="Center" Click="Button_Click_7" Margin="0,0,8,0"/> + <Button Content="合并两个音频" VerticalAlignment="Center" Click="Button_Click_25" Margin="0,0,8,0"/> + </StackPanel> </StackPanel> - </Grid> - </GroupBox> - <GroupBox Header="裁剪视频"> - <Grid> - <Grid.RowDefinitions> - <RowDefinition></RowDefinition> - </Grid.RowDefinitions> - <StackPanel Orientation="Horizontal"> - <Label Content="w:" VerticalAlignment="Center"></Label> - <TextBox x:Name="c_iw" Text="600" VerticalAlignment="Center" Width="80"></TextBox> - - <Label Content="h:" VerticalAlignment="Center"></Label> - <TextBox x:Name="c_ih" Text="600" VerticalAlignment="Center" Width="80"></TextBox> + </GroupBox> + <GroupBox Header="获取视频片段"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + <RowDefinition></RowDefinition> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + <StackPanel Orientation="Horizontal"> + <Label Content="从" VerticalAlignment="Center"/> + <TextBox x:Name="c_1_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> + <Label Content="开始裁剪" VerticalAlignment="Center"/> + <TextBox x:Name="c_1_1" Text="00:00:10" VerticalAlignment="Center" Width="80"/> + <Label Content="秒" VerticalAlignment="Center"/> + <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_9"></Button> + </StackPanel> + <StackPanel Grid.Row="1" Orientation="Horizontal"> + <Label Content="从" VerticalAlignment="Center"/> + <TextBox x:Name="c_2_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> + <Label Content="开始,到" VerticalAlignment="Center"/> + <TextBox x:Name="c_2_1" Text="00:00:10" VerticalAlignment="Center" Width="80"/> + <Label Content="结束" VerticalAlignment="Center"/> + <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_10"></Button> + </StackPanel> + <StackPanel Grid.Row="2" Orientation="Horizontal"> + <Label Content="从" VerticalAlignment="Center"/> + <TextBox x:Name="c_3_0" Text="00:00:00" VerticalAlignment="Center" Width="80"/> + <Label Content="开始,到视频结束" VerticalAlignment="Center"/> + <Button Content="裁剪" VerticalAlignment="Center" Margin="10,0,0,0" Click="Button_Click_11"></Button> + </StackPanel> + </Grid> + </GroupBox> + <GroupBox Header="裁剪视频"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition></RowDefinition> + </Grid.RowDefinitions> + <StackPanel Orientation="Horizontal"> + <Label Content="w:" VerticalAlignment="Center"></Label> + <TextBox x:Name="c_iw" Text="600" VerticalAlignment="Center" Width="60"></TextBox> + <Label Content="h:" VerticalAlignment="Center"></Label> + <TextBox x:Name="c_ih" Text="600" VerticalAlignment="Center" Width="60"></TextBox> + <Label Content="x:" VerticalAlignment="Center"></Label> + <TextBox x:Name="c_ix" Text="(iw-600) / 2" VerticalAlignment="Center" Width="80"></TextBox> - <Label Content="x:" VerticalAlignment="Center"></Label> - <TextBox x:Name="c_ix" Text="(iw-600) / 2" VerticalAlignment="Center" Width="80"></TextBox> + <Label Content="y:" VerticalAlignment="Center"></Label> + <TextBox x:Name="c_iy" Text="(ih-600) / 2" VerticalAlignment="Center" Width="80"></TextBox> + <Button Content="裁剪" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_12"></Button> + <Button Content="查看命令详情" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_4" Background="{x:Null}" Foreground="Blue" BorderBrush="Transparent"/> + </StackPanel> + </Grid> + </GroupBox> + <GroupBox Header="切片与合并"> + <Grid> + <StackPanel> + <StackPanel Orientation="Horizontal"> + <Label Content="每片时长(大概):" VerticalAlignment="Center"></Label> + <TextBox x:Name="s_iss" VerticalAlignment="Center" Text="00:01:00"></TextBox> + <Label Content="输出文件后缀:" VerticalAlignment="Center"></Label> + <TextBox x:Name="s_ioext" VerticalAlignment="Center" Text=".ts"></TextBox> + <Label Content="num:" VerticalAlignment="Center"></Label> + <TextBox x:Name="s_num" VerticalAlignment="Center" Text="8"></TextBox> + <Button Content="开始分片" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_13"></Button> + </StackPanel> + <StackPanel Orientation="Horizontal"> + <Label Content="输入配置文件后" VerticalAlignment="Center"></Label> + <Button VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_14">合并</Button> + </StackPanel> + <StackPanel Orientation="Horizontal"> + <Label Content="输入一个片视频后" VerticalAlignment="Center"></Label> + <Button VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_15">生成合并配置文件</Button> + </StackPanel> + </StackPanel> + </Grid> + </GroupBox> - <Label Content="y:" VerticalAlignment="Center"></Label> - <TextBox x:Name="c_iy" Text="(ih-600) / 2" VerticalAlignment="Center" Width="80"></TextBox> - <Button Content="裁剪" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_12"></Button> - <Button Content="查看命令详情" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_4" Background="{x:Null}" Foreground="Blue" BorderBrush="Transparent"/> - </StackPanel> - </Grid> - </GroupBox> - <GroupBox Header="切片与合并"> - <Grid> + <GroupBox Header="GIF<=>Video"> <StackPanel> <StackPanel Orientation="Horizontal"> - <Label Content="每片时长(大概):" VerticalAlignment="Center"></Label> - <TextBox x:Name="s_iss" VerticalAlignment="Center" Text="00:01:00"></TextBox> - <Label Content="输出文件后缀:" VerticalAlignment="Center"></Label> - <TextBox x:Name="s_ioext" VerticalAlignment="Center" Text=".ts"></TextBox> - <Label Content="num:" VerticalAlignment="Center"></Label> - <TextBox x:Name="s_num" VerticalAlignment="Center" Text="8"></TextBox> - <Button Content="开始分片" VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_13"></Button> - </StackPanel> - <StackPanel Orientation="Horizontal"> - <Label Content="输入配置文件后" VerticalAlignment="Center"></Label> - <Button VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_14">合并</Button> + <Button Content="GIF转mp4" Margin="0,0,8,0" VerticalAlignment="Center" Click="Button_Click_17"></Button> + <Button Content="GIF转webm" Margin="0,0,8,0" VerticalAlignment="Center" Click="Button_Click_18"></Button> </StackPanel> <StackPanel Orientation="Horizontal"> - <Label Content="输入一个片视频后" VerticalAlignment="Center"></Label> - <Button VerticalAlignment="Center" Margin="8,0,0,0" Click="Button_Click_15">生成合并配置文件</Button> + <TextBox x:Name="gv_start" VerticalAlignment="Center" Text="00:00:00"></TextBox> + <Label Content="至" VerticalAlignment="Center"></Label> + <TextBox x:Name="gv_end" VerticalAlignment="Center" Text="00:00:10"></TextBox> + <Label Content="fps:" VerticalAlignment="Center" Margin="8,0,0,0"></Label> + <TextBox x:Name="gv_fps" VerticalAlignment="Center" Text="10"></TextBox> + <Label Content="w:" VerticalAlignment="Center" Margin="8,0,0,0"></Label> + <TextBox x:Name="gv_w" VerticalAlignment="Center" Text="320"></TextBox> + <Label Content="h:" VerticalAlignment="Center"></Label> + <TextBox x:Name="gv_h" VerticalAlignment="Center" Text="-1"></TextBox> + <Button Content="视频转GIF" Margin="8,0,0,0" VerticalAlignment="Center" Click="Button_Click_19"></Button> </StackPanel> </StackPanel> - </Grid> - </GroupBox> + </GroupBox> + <GroupBox Header="提取帧"> + <StackPanel> + <StackPanel Orientation="Horizontal"> + <TextBox x:Name="getimg_start" Text="00:00:00" VerticalAlignment="Center"></TextBox> + <Label Content="至"></Label> + <TextBox x:Name="getimg_end" Text="00:00:10" VerticalAlignment="Center"></TextBox> - <GroupBox Header="GIF<=>Video"> - <StackPanel> - <StackPanel Orientation="Horizontal"> - <Button Content="GIF转mp4" Margin="0,0,8,0" VerticalAlignment="Center" Click="Button_Click_17"></Button> - <Button Content="GIF转webm" Margin="0,0,8,0" VerticalAlignment="Center" Click="Button_Click_18"></Button> - </StackPanel> - <StackPanel Orientation="Horizontal"> - <TextBox x:Name="gv_start" VerticalAlignment="Center" Text="00:00:00"></TextBox> - <Label Content="至" VerticalAlignment="Center"></Label> - <TextBox x:Name="gv_end" VerticalAlignment="Center" Text="00:00:10"></TextBox> - <Label Content="fps:" VerticalAlignment="Center" Margin="8,0,0,0"></Label> - <TextBox x:Name="gv_fps" VerticalAlignment="Center" Text="10"></TextBox> - <Label Content="w:" VerticalAlignment="Center" Margin="8,0,0,0"></Label> - <TextBox x:Name="gv_w" VerticalAlignment="Center" Text="320"></TextBox> - <Label Content="h:" VerticalAlignment="Center"></Label> - <TextBox x:Name="gv_h" VerticalAlignment="Center" Text="-1"></TextBox> - <Button Content="视频转GIF" Margin="8,0,0,0" VerticalAlignment="Center" Click="Button_Click_19"></Button> + <Label Content="每秒取"></Label> + <TextBox x:Name="getimg_fps" Text="1" VerticalAlignment="Center"></TextBox> + <Label Content="帧"></Label> + <Label Content="num:"></Label> + <TextBox x:Name="getimg_num" Text="8" VerticalAlignment="Center"></TextBox> + <Button Content="获取图片" Margin="8,0,0,0" Click="Button_Click_20" VerticalAlignment="Center"></Button> + </StackPanel> + <StackPanel Orientation="Horizontal"> + <Label Content="输入一张帧图片后"></Label> + <Label Content="num:"></Label> + <TextBox x:Name="getimg_num2" Text="8" VerticalAlignment="Center"></TextBox> + <Button Content="合成MP4" Margin="8,0,0,0" Click="Button_Click_21" VerticalAlignment="Center"></Button> + </StackPanel> </StackPanel> - </StackPanel> - </GroupBox> - <GroupBox Header="提取帧"> - <StackPanel> - <StackPanel Orientation="Horizontal"> - <TextBox x:Name="getimg_start" Text="00:00:00" VerticalAlignment="Center"></TextBox> - <Label Content="至"></Label> - <TextBox x:Name="getimg_end" Text="00:00:10" VerticalAlignment="Center"></TextBox> + </GroupBox> - <Label Content="每秒取"></Label> - <TextBox x:Name="getimg_fps" Text="1" VerticalAlignment="Center"></TextBox> - <Label Content="帧"></Label> - <Label Content="num:"></Label> - <TextBox x:Name="getimg_num" Text="8" VerticalAlignment="Center"></TextBox> - <Button Content="获取图片" Margin="8,0,0,0" Click="Button_Click_20" VerticalAlignment="Center"></Button> - </StackPanel> + <GroupBox Header="图片格式转换"> <StackPanel Orientation="Horizontal"> - <Label Content="输入一张帧图片"></Label> - <Label Content="num:"></Label> - <TextBox x:Name="getimg_num2" Text="8" VerticalAlignment="Center"></TextBox> - <Button Content="合成MP4" Margin="8,0,0,0" Click="Button_Click_21" VerticalAlignment="Center"></Button> + <TextBox x:Name="tonewtype" Text=".webp" Width="60" VerticalAlignment="Center"></TextBox> + <Button Content="转换" VerticalAlignment="Center" Click="Button_Click_24" Margin="8,0,0,0"></Button> + <Button Content="批量转换" VerticalAlignment="Center" Click="Button_Click_26" Margin="8,0,0,0"></Button> </StackPanel> - </StackPanel> - </GroupBox> - </StackPanel> + </GroupBox> + </StackPanel> + </ScrollViewer> </Window> diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 5eec15e..3f755a0 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -1,19 +1,6 @@ using System; using io = System.IO; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; using System.Text.RegularExpressions; namespace WpfApp1 @@ -36,20 +23,20 @@ public MainWindow() ffmpegExe = GetFullPath("ffmpeg.exe"); ffplayExe = GetFullPath("ffplay.exe"); - if(ffmpegExe == null) ffmpegExe = AppDomain.CurrentDomain.BaseDirectory + "ffmpeg.exe"; + if (ffmpegExe == null) ffmpegExe = AppDomain.CurrentDomain.BaseDirectory + "ffmpeg.exe"; if (ffplayExe == null) ffplayExe = AppDomain.CurrentDomain.BaseDirectory + "ffplay.exe"; if (System.IO.File.Exists(ffmpegExe) == false) { - MessageBox.Show("未找到[ffmpeg.exe],工具将无法使用", "错误",MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("未找到[ffmpeg.exe],工具将无法使用", "错误", MessageBoxButton.OK, MessageBoxImage.Error); System.Windows.Application.Current.Shutdown(); } if (System.IO.File.Exists(ffplayExe) == false) { - MessageBox.Show("未找到[ffplay.exe],播放功能无法使用", "错误",MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("未找到[ffplay.exe],播放功能无法使用", "错误", MessageBoxButton.OK, MessageBoxImage.Error); } } - + /// <summary> /// 返回唯一的时间戳 /// </summary> @@ -140,14 +127,14 @@ private void Button_Click_1(object sender, RoutedEventArgs e) private bool checkNotInputFile() { - if (input.Length == 0) + if (input.Length == 0) { MessageBox.Show("没有输入文件", "错误", MessageBoxButton.OK, MessageBoxImage.Warning); return true; }; return false; } - + /// <summary> /// 去掉视频音轨 /// </summary> @@ -192,7 +179,7 @@ private void Button_Click_3(object sender, RoutedEventArgs e) string command = "-i \"" + input + "\" -vcodec copy -af \"volume=" + inputVolume.Text + "\" \"" + output + "\""; execute(command); } - + /// <summary> /// 使用ffplay播放输入资源,视频,音频,图片,直播流... /// </summary> @@ -225,17 +212,19 @@ private void Button_Click_16(object sender, RoutedEventArgs e) /// <param name="e"></param> private void Button_Click_6(object sender, RoutedEventArgs e) { - // 将10s视频和5s音频合并,输出视频有10s,音频将一直循环 - // ffmpeg -i input.mp4 -stream_loop -1 -i input.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out.mp4 - - if (checkNotInputFile()) return; - if (inputAudio.Text.Length == 0) return; + if (checkNotInputFile() || inputAudio.Text.Length == 0) return; string output = getOutputFilepath(); - // 从1小时到结尾 - // ffmpeg -ss 01:00:00 -i m.mp4 -c copy out.mp4 - string command = "-i \"" + input + "\" -stream_loop -1 -i \"" + inputAudio.Text + "\" -c copy -map 0:v:0 -map 1:a:0 -shortest \""+ output +"\""; + // 将10s视频和5s音频合并,输出视频有10s,音频将一直循环 + // ffmpeg -i input.mp4 -stream_loop -1 -i input.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out.mp4 + string command = $"-i \"{input}\" -stream_loop -1 -i \"{inputAudio.Text}\" -c copy -map 0:v:0 -map 1:a:0 -shortest \"{output}\""; + + if (isAmix.IsChecked == true) + { + // ffmpeg -i 4.mp4 -i a1.mp3 -c:v copy -filter_complex amix -map 0:v -map 0:a -map 1:a -shortest o.mp4 + command = $"-i \"{input}\" -stream_loop -1 -i \"{inputAudio.Text}\" -c:v copy -filter_complex amix -map 0:v:0 -map 0:a:0 -map 1:a:0 -shortest \"{output}\""; + } execute(command); } @@ -253,11 +242,16 @@ private void Button_Click_7(object sender, RoutedEventArgs e) // 将5s视频和10s音频合并,输出视频有10s,视频将一直循环 // ffmpeg -stream_loop -1 -i input.mp4 -i input.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out.mp4 + string command = $"-stream_loop -1 -i \"{input}\" -i \"{inputAudio.Text}\" -c copy -map 0:v:0 -map 1:a:0 -shortest \"{output}\""; - string command = "-stream_loop -1 -i \""+input+"\" -i \""+ inputAudio.Text +"\" -c copy -map 0:v:0 -map 1:a:0 -shortest \""+ output +"\""; + if (isAmix.IsChecked == true) + { + MessageBox.Show("此功能无法执行混音", "错误", MessageBoxButton.OK, MessageBoxImage.Warning); + return; + } execute(command); } - + /// <summary> /// 选择音频文件 /// </summary> @@ -272,7 +266,7 @@ private void Button_Click_8(object sender, RoutedEventArgs e) if (openFileDialog.ShowDialog() == false) return; inputAudio.Text = openFileDialog.FileName; } - + /// <summary> /// 从开始处裁剪指定时间 /// </summary> @@ -285,7 +279,7 @@ private void Button_Click_9(object sender, RoutedEventArgs e) string output = getOutputFilepath(); // ffmpeg -i input.mp4 -ss 00:00:00 -t 10 1.mp3 - string command = "-i \"" + input + "\" -ss "+ c_1_0.Text +" -t "+ c_1_1.Text +" \"" + output + "\""; + string command = "-i \"" + input + "\" -ss " + c_1_0.Text + " -t " + c_1_1.Text + " \"" + output + "\""; execute(command); } @@ -303,7 +297,7 @@ private void Button_Click_10(object sender, RoutedEventArgs e) DateTime start = DateTime.Parse(c_2_0.Text); DateTime end = DateTime.Parse(c_2_1.Text); int t = (end.Second - start.Second); - if(t < 0) + if (t < 0) { MessageBox.Show("切割时间不能为负!!!"); return; @@ -312,7 +306,7 @@ private void Button_Click_10(object sender, RoutedEventArgs e) string command = "-i \"" + input + "\" -ss " + c_2_0.Text + " -t " + t.ToString() + " \"" + output + "\""; execute(command); } - + /// <summary> /// 从指定时间道结束 /// </summary> @@ -325,7 +319,7 @@ private void Button_Click_11(object sender, RoutedEventArgs e) // 从1小时到结尾 // ffmpeg -ss 01:00:00 -i m.mp4 -c copy out.mp4 - string command = "-ss "+ c_3_0.Text + " -i \"" + input + "\" -c copy \"" + output + "\""; + string command = "-ss " + c_3_0.Text + " -i \"" + input + "\" -c copy \"" + output + "\""; execute(command); } @@ -333,7 +327,7 @@ private void Button_Click_4(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("https://www.linuxuprising.com/2020/01/ffmpeg-how-to-crop-videos-with-examples.html"); } - + /// <summary> /// 裁剪视频 /// </summary> @@ -348,7 +342,7 @@ private void Button_Click_12(object sender, RoutedEventArgs e) string command = "-i \"" + input + "\" -filter:v \"crop=" + c_iw.Text + ":" + c_ih.Text + ":" + c_ix.Text + ":" + c_iy.Text + "\" -c:a copy \"" + output + "\""; execute(command); } - + /// <summary> /// 将视频分为多个片 /// </summary> @@ -383,18 +377,23 @@ private void Button_Click_14(object sender, RoutedEventArgs e) execute(command); } + /// <summary> + /// 生成视频合成配置文件 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> private void Button_Click_15(object sender, RoutedEventArgs e) { - if (checkNotInputFile() ) return; + if (checkNotInputFile()) return; string odir = io.Path.GetDirectoryName(input); string oextension = io.Path.GetExtension(input); string ocfgifile = io.Path.Combine(odir, "merge.txt"); - + // (for %i in (*.ts) do @echo file 'file:%cd%\%i') > mylist.txt string command = $"/C (for %i in (\"{odir}\\*{oextension}\") do @echo file 'file:%i') > \"{ocfgifile}\""; System.Diagnostics.Process.Start("cmd.exe", command); } - + /// <summary> /// gif to mp4 /// </summary> @@ -425,7 +424,7 @@ private void Button_Click_18(object sender, RoutedEventArgs e) string command = "-i \"" + input + "\" -c vp9 -b:v 0 -crf 40 \"" + output + "\""; execute(command); } - + /// <summary> /// 视频转GIF /// </summary> @@ -439,7 +438,7 @@ private void Button_Click_19(object sender, RoutedEventArgs e) DateTime start = DateTime.Parse(gv_start.Text); DateTime end = DateTime.Parse(gv_end.Text); int t = (end.Second - start.Second); - if(t < 0) + if (t < 0) { MessageBox.Show("时间不能为负!!!"); return; @@ -448,7 +447,7 @@ private void Button_Click_19(object sender, RoutedEventArgs e) string command = $"-ss {gv_start.Text} -t {t} -i \"{input}\" -vf \"fps={gv_fps.Text},scale={gv_w.Text}:{gv_h.Text}:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse\" -loop 0 \"{output}\""; execute(command); } - + /// <summary> /// 视频中提取图片 /// </summary> @@ -461,7 +460,7 @@ private void Button_Click_20(object sender, RoutedEventArgs e) DateTime start = DateTime.Parse(getimg_start.Text); DateTime end = DateTime.Parse(getimg_end.Text); int t = (end.Second - start.Second); - if(t < 0) + if (t < 0) { MessageBox.Show("时间不能为负!!!"); return; @@ -474,7 +473,7 @@ private void Button_Click_20(object sender, RoutedEventArgs e) string command = $"-i \"{input}\" -r {getimg_fps.Text} -ss {getimg_start.Text} -t {t} -f image2 \"{output}\""; execute(command); } - + /// <summary> /// 将帧图片合成为视频 /// </summary> @@ -483,12 +482,108 @@ private void Button_Click_20(object sender, RoutedEventArgs e) private void Button_Click_21(object sender, RoutedEventArgs e) { if (checkNotInputFile()) return; - string inputImage = io.Path.Combine(io.Path.GetDirectoryName(input), $"%{getimg_num2.Text}d.jpg"); + string inputImage = io.Path.Combine(io.Path.GetDirectoryName(input), $"%{getimg_num2.Text}d.jpg"); string oout = io.Path.Combine(io.Path.GetDirectoryName(input), $"new-{getFileKey()}.mp4"); // ffmpeg -i %2d.jpg new.mp4 string command = $"-i \"{inputImage}\" \"{oout}\""; execute(command); } + + /// <summary> + /// 下载m3u8到mp4 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Button_Click_22(object sender, RoutedEventArgs e) + { + if (checkNotInputFile()) return; + + // 选择下载目录 + var dialog = new System.Windows.Forms.FolderBrowserDialog(); + System.Windows.Forms.DialogResult result = dialog.ShowDialog(); + if (result != System.Windows.Forms.DialogResult.OK || dialog.SelectedPath.Length == 0) return; + + // ffmpeg -i http://xxx/index.m3u8 -bsf:a aac_adtstoasc -c copy out.mp4 + string command = $"-i \"{input}\" -bsf:a aac_adtstoasc -c copy \"{ io.Path.Combine(dialog.SelectedPath, $"{getFileKey()}.mp4") }\""; + execute(command); + } + + /// <summary> + /// 手动输入 输入文件 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void inputFile_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) + { + input = inputFile.Text; + } + + /// <summary> + /// 将输入文件转为MP4格式的视频文件 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Button_Click_23(object sender, RoutedEventArgs e) + { + if (checkNotInputFile()) return; + string oout = getOutputFilepath(".mp4"); + + // ffmpeg -i output.flv -vcodec libx264 -pix_fmt yuv420p -c:a copy o5.mp4 + string command = $"-i \"{input}\" -vcodec libx264 -pix_fmt yuv420p -c:a copy \"{oout}\""; + execute(command); + } + + /// <summary> + /// 转图片格式 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Button_Click_24(object sender, RoutedEventArgs e) + { + if (checkNotInputFile()) return; + string oout = getOutputFilepath($".{Regex.Replace(tonewtype.Text, @"^\.+", "")}"); + + string command = $"-i \"{input}\" \"{oout}\""; + execute(command); + } + + /// <summary> + /// 合并两个音频 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Button_Click_25(object sender, RoutedEventArgs e) + { + if (checkNotInputFile() || inputAudio.Text.Length == 0) return; + string oout = getOutputFilepath(".mp3"); + // ffmpeg.exe -i a1.mp3 -i a2.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 out.mp3 + string command = $"-i \"{input}\" -i \"{inputAudio.Text}\" -filter_complex amerge -c:a libmp3lame -q:a 4 \"{oout}\""; + execute(command); + } + + /// <summary> + /// 图片格式批量转换 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Button_Click_26(object sender, RoutedEventArgs e) + { + if (checkNotInputFile()) return; + string newExtension = $".{Regex.Replace(tonewtype.Text, @"^\.+", "")}"; + + string idir = io.Path.GetDirectoryName(input); + string iextension = io.Path.GetExtension(input); + string newinput = io.Path.Combine(idir, $"*{iextension}"); + + string fkey = getFileKey(); + string odir = io.Path.Combine(idir, fkey); + io.Directory.CreateDirectory(odir); + + // (for %i in (*.jpg) do ffmpeg -i %i %~ni.webp) + // (for %i in (.\xx\*.jpg) do ffmpeg -i %i %~dpitime\%~ni.webp) + string command = $"/C \"(for %i in (\"{newinput}\") do \"{ffmpegExe}\" -i %i \"%~dpi{fkey}\\%~ni{newExtension}\")\""; + System.Diagnostics.Process.Start("cmd.exe", command); + } } } diff --git a/README.md b/README.md index 1956752..1661cf3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -## 使用FFmpeg命令行处理视频的简单工具 +## 处理视频/音频/图片的简单工具 -- [ffmpeg官网](https://ffmpeg.org/) -- [下载ffmpeg](https://github.com/BtbN/FFmpeg-Builds/releases)可执行文件(lgpl.zip),然后将bin目录添加到PATH环境变量,或者将bin下面的exe拷贝到本软件的exe同级目录下 +- [ffmpeg](https://ffmpeg.org/) +- [下载ffmpeg.exe](https://github.com/BtbN/FFmpeg-Builds/releases)(lgpl.zip),然后将bin目录添加到PATH环境变量,或者将bin下面的exe拷贝到本软件的exe同级目录下 - 没有找到ffmpeg.exe将无法运行 - \ No newline at end of file + \ No newline at end of file diff --git a/WpfApp1.csproj b/WpfApp1.csproj index c53c311..ba6f702 100644 --- a/WpfApp1.csproj +++ b/WpfApp1.csproj @@ -40,6 +40,7 @@ <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> + <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Core" /> diff --git a/images/2020-09-26-11-03-37.png b/images/2020-09-26-11-03-37.png new file mode 100644 index 0000000000000000000000000000000000000000..099aebed34ba472e1473a089905ead5ea92afb67 GIT binary patch literal 46541 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 literal 0 HcmV?d00001