Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Opus to MP3 C# Bibliothek
Thron
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

Opus to MP3 C# Bibliothek

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
david.m
myCSharp.de - Member



Dabei seit:
Beiträge: 143

beantworten | zitieren | melden

Du kannst doch ffmpeg mit in Deinem Container-Image auf nehmen.
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.087
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Thron
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

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

Gibt es aber doch eine Libary, welche ich nutzen kann ohne auf eine Exe zuzugreifen?
private Nachricht | Beiträge des Benutzers
Thron
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.087
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am .
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.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.594

beantworten | zitieren | melden

Dann verwendest du einen älteren Beispielcode.
Laut Kommentar in FFmpeg.NET/src/FFmpeg.NET wurde diese Klasse vor 9 Monaten abstrakt gemacht:
Zitat
make MediaFile an abstract class
Du mußt also eine der abgeleiteten Klassen verwenden, s.a. FFmpeg.NET.Sample, d.h. InputFile oder OutputFile.
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.087
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

@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.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.594

beantworten | zitieren | melden

Ich hatte gar nicht nach unten gescrollt, sondern direkt das Sample angeschaut.
Habe aber sogleich ein Issue erzeugt: Code update needed #71
private Nachricht | Beiträge des Benutzers
Thron
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.594

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
jogibear9988
myCSharp.de - Member



Dabei seit:
Beiträge: 638
Herkunft: Offenau

ffmpeg dll

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jogibear9988 am .
cSharp Projekte : https://github.com/jogibear9988
private Nachricht | Beiträge des Benutzers