Laden...

Opus to MP3 C# Bibliothek

Letzter Beitrag vor einem Jahr 12 Posts 632 Views
Opus to MP3 C# Bibliothek

Hallo zusammen,

ich brauche einen Tipp! Ich muss ein Audio-File welche im Opus-Format gespeichert ist in ein MP3-File konvertieren und suche eine passende Bibliothek. Aktuell mache ich das mit ffmpeg über einen Prozess, was aber aufgrund einer Portierung des Codes in einen Docker-Container so nicht mehr funktionieren wird.
Kann mir jemand bitte helfen?

Vielen dank und Grüße

Du kannst doch ffmpeg mit in Deinem Container-Image auf nehmen.

Oder du schaust einfach ob es für die Lib von ffmpeg einen passenden .NET Wrapper gibt und bindest diesen ein.
Dann kannst du direkt gegen die native Lib arbeiten und dein Programm direkt als Container verpacken.

Google hat mir kurz diese rausgeworfen:
https://github.com/cmxl/FFmpeg.NET

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Okay....das wusste ich nicht! Vielen Dank

Gibt es aber doch eine Libary, welche ich nutzen kann ohne auf eine Exe zuzugreifen?

T-Virus: Diese Libary habe ich probiert! Aber bekomme schon bei den Samples eine Fehlermeldung, das ich eine abstrakte Klasse nicht so aufrufen darf.

var inputFile = new MediaFile (@"C:\Path\To_Video.flv");

Stehe da ein wenig auf dem Schlauch...

Soweit ich dies sehen kann, scheint es auch welche zu geben.
Diese sind dann aber nicht zwangsweise kostenlos.
Du kannst gerne mal google mit "C# ffmpeg" durchsuchen.
Gibt dann genug Links zum lesen 🙂

Nachtrag:
Dann schau dir das Beispiel an, dort ist dann klar was dort verwendet werden muss.

Link:
FFmpeg.NET/Program.cs at master · cmxl/FFmpeg.NET

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Dann verwendest du einen älteren Beispielcode.
Laut Kommentar in FFmpeg.NET/src/FFmpeg.NET wurde diese Klasse vor 9 Monaten abstrakt gemacht:

make MediaFile an abstract class

Du mußt also eine der abgeleiteten Klassen verwenden, s.a. FFmpeg.NET.Sample, d.h. InputFile oder OutputFile.

@Th69
Kommt dadurch, dass auf der Projekte Seite bei Github noch die alte Klasse verwendet wird, siehe Link oben.
Erst im Sample, was ich im letzten Kommentar verlink habe, werden dann die richtigen Klassen verwendet.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Ich hatte gar nicht nach unten gescrollt, sondern direkt das Sample angeschaut.
Habe aber sogleich ein Issue erzeugt: Code update needed #71

Vielen Dank für die Beiträge, habe mir das mal angeschaut!
Jetzt sehe ich aber in den Samples, dass ich auch dort die ffmpeg.exe benötigte!

Gibt es keine reine DLL mit der die von opus nach mp3 wandeln kann, oder stelle Ich mich einfach ein biss dämlich an?

Viele grüße

Diesbezügliche Freeware Umsetzung ohne Nutzung von FFmpeg gibt es nicht (erst recht nicht in dem Umfang).
Aber .NET Wrapper of FFmpeg Libraries stellt eine Umsetzung dar, welche nur die "ffmpeg.dll" benötigt und keinen externen Prozess aufruft - beachte aber die Lizenz.

ffmpeg dll

auch wenn statt der exe eine dll verwendet wird, brauchst du eine linux dll die zu deiner platform passt. Also so einfach wirds erstmal nicht klappen. Glaube da ist es einfacher ffmpeg passend im container zu installieren und dieses durch den wrapper aufrufen zu lassen.
Denn Pfad zu der Binary kann man ja übergeben.

siehe auch: https://github.com/cmxl/FFmpeg.NET/issues/34

cSharp Projekte : https://github.com/jogibear9988