2017-07-04 5 views
-1

ビデオを画像に変換してからgifに変換する新しいアプリケーションを開始しました 私のビデオを同じ側プロジェクトの同じフォルダに自分のビデオを置かないと、ffmpegにはそのようなファイルやディレクトリは表示されません。私はopenfiledialogで私のファイルを選択するためにクリックしました。どうすれば私のビデオを正しいディレクトリにコピーできますか?ファイルを別の場所に移動します。ディレクトリが見つかりませんが、ディレクトリは存在します。私はここで、これはコード開いているダイアログから開いたファイルをvb.netの別の場所にコピーする方法

これは私のコード

Imports System.Diagnostics 
Imports System.ComponentModel 
Imports System 
Imports System.IO 
Imports System.IO.Compression 
Imports System.Windows.Forms 
Imports System.Net 

Public Class Form1 
Dim fpsx = 10 
Dim video = "" 
Dim startInfo As New ProcessStartInfo("ffmpeg.exe") 
Dim frame As Long 'individual frames 
Dim tempdir As String = "C:\avitogifconverter\" ' images temp directory 
Dim DestPath As String = "C:\avitogifconverter\" 
Public Declare Auto Function FindWindowNullClassName Lib "user32.dll" Alias "FindWindow" (ByVal lpClassname As Integer, ByVal lpWindownName As String) As Integer 
Dim Counter As Integer = 0 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    My.Computer.FileSystem.CreateDirectory(tempdir) 
    TextBox1.Text = "exp:-->video.avi or webm or flv" 
    TextBox1.Clear() 
    TextBox2.Text = fpsx 


End Sub 


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    fpsx = TextBox2.Text 
    TextBox2.Text = fpsx 

    Dim p As Process = Process.Start("cmd", "/k ffmpeg.exe -i " + TextBox1.Text + " -framerate 5/1 -filter:v fps=" + TextBox2.Text + " C:\avitogifconverter\out%02d.jpg") 
    p.WaitForExit() 

    If p.HasExited Then 
     MsgBox("The Extraction Are Finish...") 
    End If 

End Sub 

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 

End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) 

End Sub 

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 


    If (OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK) Then 
     'TextBox1.Text = OpenFileDialog1.FileName 
     'TextBox1.Text = System.IO.Path.GetFileName(OpenFileDialog1.FileName) 
     TextBox1.Text = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) 
     Dim newdialog As New OpenFileDialog() 
     If newdialog.ShowDialog() = DialogResult.OK Then 
      System.IO.File.Copy(newdialog.FileName, tempdir) 
      MessageBox.Show(System.IO.Path.GetDirectoryName(newdialog.FileName) & "\" & System.IO.Path.GetFileName(newdialog.FileName)) 
     End If 
    End If 
    If TextBox1.Text = Nothing Then 
     Return 
    End If 
    If TextBox1.Text <> Nothing Then 
     'My.Computer.FileSystem.CopyFile(TextBox1.Text, DestPath) 
    End If 

End Sub 

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 
    Dim args As String 'declare args 
    args = " -i C:\avitogifconverter\out%02d.jpg -r 10 C:\avitogifconverter\out.gif " 
    'args = " -i C:\avitogifconverter\out%02d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p C:\avitogifconverter\out.mp4 " 
    Dim proc As New Process 
    Dim proci As New ProcessStartInfo 
    proci.FileName = My.Application.Info.DirectoryPath & "\ffmpeg.exe" 
    proci.Arguments = args 
    proci.WindowStyle = ProcessWindowStyle.Hidden 
    proci.CreateNoWindow = True 
    proci.UseShellExecute = False 
    proc.StartInfo = proci 
    proc.Start() 
    Do Until proc.HasExited = True 
     Me.Text = "Saving" 
    Loop 
    Me.Text = "your video done" 

    MsgBox("Done") 
    Dim directoryName As String = "C:\avitogifconverter\" 
    For Each deleteFile In Directory.GetFiles(directoryName, "*.jpg", SearchOption.TopDirectoryOnly) 
     File.Delete(deleteFile) 
    Next 

    'IO.Directory.Delete(tempdir, True) 
End Sub 

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 
    Form2.Show() 

End Sub 
End Class 
+1

という2つ目のパラメータを使用することです。[ask]を読んで[tour]してください。これはデバッグサービスではありません。なぜなら、他の誰かがあなたのためにデバッグするためのコードダンプ(空の未使用のイベントハンドラを持っている)になるからです。 VSには素晴らしいデバッガが付属しています。起動してコードをデバッグしてください。 – Plutonix

答えて

0

であるあなたが2 OpenFileDialogを使用する理由、私は知らないが、とにかくあなたがSystem.IO.File.Copyを使用していないミスをされているものメソッドを正しく実行します。両方のパラメータは、FILE PATHSでなければなりません。あなたの間違いは、ディレクトリ PATH

関連する問題