Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Acinerella [Ver. 1.4] FFMpeg Wrapper (https://www.delphipraxis.net/117475-acinerella-%5Bver-1-4%5D-ffmpeg-wrapper.html)

mimi 9. Jan 2011 17:45

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
Ich habe Acinerella Erfolgreich unter Linux Kompilieren können und kann sie in Lazarus nutzen. Nur habe ich eine Frage:
Im ersten Beitrag von diesem Thread steht drin, dass man mit Acinerella ein Multiemdiaplayer schreiben könnte. Aber wie? Ich finde keine Passenden Funktion/Proceduren dafür. Das Demo Programm hilft mir auch nicht wirklich weiter. Denn, es spielt keine Datei wirklich ab, die ich hören könnte oder verstehe ich hier etwas Falsch? Ich dachte folgendes müsste gehen: Ich öffne eine Audio Datei und kann sie dann Abspielen und Anhören.

igel457 9. Jan 2011 22:22

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
Hi,

Acinerella kümmert sich um das Dekodieren von Audio- und Videoströmen. Es werden also sehr komplex komprimierte Daten in einfach zu verwendete Rohdaten "zurückverwandelt". Audiodaten in "PCM-Wave" und Videodaten in einfache "RGB-Bitmaps". Auf dem Weg zur Multimediawiedergabe ist dieser Schritt der schwierigste.

Um die Daten wiederzugeben, müssen sie "nur noch" an eine entsprechende Ausgabebibliothek gestreamt werden - wenn man sich mit Threads und Pointern auskennt ist das auch kein Problem. Für alle anderen gibt es zum Beispiel Audorra mit welches unter Zuhilfenahme von Acinerella fast jedes existierende Audioformat Plattformübergreifend wiedergibt oder das Video-Modul von Andorra 2D.

Hoffe das hilft dir,
Andreas

mimi 10. Jan 2011 12:31

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
Sowas habe ich mir schon gedacht. Audorra läuft bei mir leider nicht. Warum weiß ich nicht. Ich habe den Fehler im Code gesucht und es wird eine Variable nicht Installisiert. Dazu in einem Extra Thread mehr(Zu gegebener Zeit)

Erstmal Danke für deine Antwort.Die Beschreibung hat mich etwas anders vermuten Lassen. Vielleicht könntest du sie noch mal Anpassen. Das Beispiel Programm z.b. Spielt leider auch keine Audio Dateien ab, ist das dafür überhaupt vorgesehen?
Habe es mit OGG und MP3 Dateien versucht. es werden nur Informationen angezeigt. Mehr leider nicht.

igel457 11. Jan 2011 15:01

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
das Beispielprogramm erzeugt aber eine Datei "out.wav", die du dir mit einem anderen Player anhören kannst.

Peter666 21. Jan 2016 10:21

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
Ich weiß der Post ist ziemlich "alt", aber hat schon einmal jemand versucht Acinerella für iOS, OSX bzw. Android zu kompilieren? Ich glaube auch das sich die FFmpeg header mal wieder geändert haben. Ich hatte vor Jahren mal angefangen diese nach Delphi zu übersetzen, es dann aber nach einiger Zeit aufgegeben. Die ändern andauernd irgendwelche Funktionen, Structs und Bezeichner.

Ich hatte mir via git clone git://source.ffmpeg.org/ffmpeg.git die aktuelle Version geladen und wollte das ganze kompilieren. Mal abgesehen von den dutzenden illegal option Fehlern. Das makefile ist sicher nur für Linux ausgelegt :(

Peter

CHackbart 23. Jan 2016 21:49

AW: Acinerella [Ver. 1.4] FFMpeg Wrapper
 
Das kenn ich nur allzu gut, FFMpeg ist ein tolles Projekt, aber der Code ist gewöhnungsbedürftig. Das wird sich denke ich auch niemals ändern, aber sobald man notgedrungen die Header übersetzt hat "versteht" man zumindest die Logik dahinter. Ich mag mich nicht anmaßen das ganze zu bewerten, aber ich würde es persönlich so nicht machen. Anyway, es ist halt so wie es ist.
Ich hab vor ein paar Jahren mal die FFMPEG Player Komponente von http://flashavconverter.com gekauft und regelmäßig angepasst. Der Autor aktualisiert in regelmäßigen Abständen die Header-Dateien. Leider nicht so häufig wie man das selber gerne hätte und dementsprechend musste ich irgendwann selber Hand anlegen.

Meine persönliche Erkenntnis daraus ist:

1. Die in den DLL's exportierten Funktionen ändern sich eigentlich nie. Major-Updates entfernen Funktionen die als depreciated deklariert sind.
2. Die Anzahl der übersetzten Structs, sollten minimiert werden. Also alles was man nicht braucht, da reicht ein pointer.
3. AVCodecContext und AVFrame sind wichtig und da gilt der Hauptaugenmerk drauf.

Im Prinzip werden bei Minor-Updates neue Variablen in den Structs fröhlich angehängt und andere Variablen als depreciated mit einem Compilerflag versehen. Ändert sich die Majorversion wird fröhlich gekürzt. Solange man wirklich nur das nutzt, was man braucht, dann ist das ganze übersichtlich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz