FFmpeg Helper Lib

    • Beta

    Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von manufant.

      FFmpeg Helper Lib

      Hi,
      wie ich schon in meinen Projekt Thema erwähnt habe, werde ich eine FFmpeg Helper Lib veröffentlichen!
      Gleich mal vorweg, diese Lib dient nur dazu, um FFmpeg leichter zu benutzten! Es ist kein ersatz zu FFmpeg!!




      Name der Lib:
      FFmpeg Helper Lib


      Da das hier meine erste Lib ist, hoffe ich einfach mal, das sie Funktioniert :thumbsup:

      Beschreibung:
      Bisher hat die Lib folgende Funktionen:

      -Convert_To_Mp3
      -Convert_to_Avi
      -Convert_to_Mpeg4

      Sie kann natürlich auch den Aktuellen Fortschritt anzeigen ;)

      Beispiel Code:

      Die Konvertierung selber läuft auch in einem anderen Thread!

      VB.NET-Quellcode

      1. Imports FFmpegHelper_Lib
      2. Imports System.Threading
      3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      4. BackgroundWorker1.RunWorkerAsync()
      5. End Sub
      6. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      7. 'Pfad zur FFmpeg
      8. Dim Pfad As String = ""
      9. '(Pfad zur FFmpeg Datei, Input(Also .flv oder so), Ausgang(Hier drauf achten, das die richtige Endung da ist, also .mp3), Bitrate, Falls Vorhanden überschreiben)
      10. Audio.Convert_To_Mp3(Pfad, TextBox1.Text, TextBox2.Text, 320, True)
      11. '(Pfad zur FFmpeg Datei, Input(Also .flv oder so), Ausgang(Hier drauf achten, das die richtige Endung da ist, also .avi),Qualität, Bitrate, Falls Vorhanden überschreiben)
      12. 'Video.Convert_to_Avi(Pfad, TextBox1.Text, TextBox2.Text, Video.Qualitäten.Original, 320, True)
      13. While Video.Am_Konvertieren = True
      14. Aufrufen(Video.Forschritt)
      15. Thread.Sleep(100)
      16. End While
      17. If Video.Erfolgreich = True Then
      18. MsgBox("Erfolgreich")
      19. Else
      20. MsgBox("Fehler")
      21. End If
      22. Video.FFmpeg_killen()
      23. End Sub
      24. 'Das hier unten einfach nicht beachten! Ist nur, um auf die Steuerelemente Zuzugreifen :D
      25. Public Delegate Sub DasUpdate(ByVal Para As Object)
      26. Public Sub Übergabe(ByVal Parameter As Integer)
      27. Dim updateControl As New DasUpdate(AddressOf Updaten)
      28. Try
      29. Invoke(updateControl, Parameter)
      30. Catch
      31. End Try
      32. End Sub
      33. Sub Aufrufen(ByVal Parameter As Integer)
      34. Dim myThread As New Thread(AddressOf Übergabe)
      35. myThread.Start(Parameter)
      36. End Sub
      37. Sub Updaten(ByVal Para As Object)
      38. ProgressBar1.Value = CInt(Para)
      39. End Sub
      40. 'Falls man das Programm schließt, arbeitet FFmpeg weiter, um dies zu verhindern
      41. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
      42. Video.FFmpeg_killen()
      43. Audio.FFmpeg_killen()
      44. End Sub


      Wissenswerte:

      Variablen der Lib:


      VB.NET-Quellcode

      1. ' True = Am Konvertieren, False = Nicht am Konvertieren
      2. Public Shared Am_Konvertieren As Boolean
      3. 'Der Forschritt beim Konvertieren
      4. Public Shared Forschritt As Integer
      5. 'Die Länge von dem zu Konvertierenden
      6. Public Shared Länge As String
      7. 'Speichert Log, falls fehler auftritt, dürfte letzte Zeit der Fehler sein
      8. Public Shared Log As New List(Of String)
      9. 'Gibt an, ob das Konvertieren erfolgreich war
      10. Public Shared Erfolgreich As Boolean


      FFmpeg:
      FFmpeg Seite
      FFmpeg Builds
      FFmpeg Dokumentation

      Verwendete Programmiersprache:
      Visual Basic .NET
      IDE:
      VB 2010 Express

      Systemanforderungen:
      .Net Framework 2.0
      FFmpeg.exe(Links siehe oben!)

      Lizenz/Weitergabe:
      Freeware, Closed Source
      Ihr dürft die Lib absolut frei in eurem Programm benutzen, keinerlei Einschränkungen!!
      Jedoch wäre echt schön, wenn ihr irgentwo hinschreibt, das ihr diese Lib benutzt :thumbsup:

      FFmpeg hat eine eigene Lizenz!!
      Hinweis:
      Ich bin nicht dafür verantwortlich, was mit dieser Lib angestellt wird,
      was ihr damit Konvertiert ist euere Sache ^^ Bzw wozu ihr sie benutzt, ist eure Sache!

      Ich werde diese Lib Paralell zu meinem Programm entwickeln, falls ich also hier ein neues Format hinzufüge,
      kann es gut möglich sein, das es demnächst auch in meinen Prog kommt, oder umgekehrt!

      Falls Fehler etc... auftreten bitte hier posten!
      Dateien

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „manufant“ ()

      Mich würde interessieren, wie du den Fortschritt ausließt.
      Habe da schon ewig nach gesucht, aber noch nichts hinbekommen.

      Wäre nett, wenn du dazu mal ein Tutorial machst.

      LG
      Tutorial kommt vermutlich nicht, werde die Lib, wenn Sie einen schönen umfang an Formaten hat,
      wahrscheinlich gleichzeitig mit meinen Programm Open Source machen :thumbsup:

      Die Fortschrittberechnung ist nur improvisiert, keine Ahnung, ob FFmpeg den Fortschritt als
      Prozent ausgiebt, aber einwas sei gesagt, meine Methode des Fortschrittsermittelns,
      hat ein bisschen was mit Mathe zu tun :D
      Dazu hat jvbsl mal etwas gepostet:


      Doch geht...ffmpeg liefert den Status(+Fehler) im Fehler ausgang(also StandardError-Eigenschaft bei der Prozess-Klasse)


      VB.NET-Quellcode

      1. deinProcess.StartInfo.UseShellExecute = False
      2. deinProcess.StartInfo.RedirectStandardError = True
      3. deinProcess.Start()
      4. Dim reader As StreamReader = myProcess.StandardError
      5. Do
      6. Dim dieZeile As String = reader.ReadLine()'hier natürlich jede Zeile entsprechend auswerten...
      7. Loop Until dieZeile = String.Empty


      Grüße