Ich würde gerne einen kostenlosen MP4 (Container) Writer für Java finden. Ich brauche keinen Encoder, nur etwas, das die richtigen Atome mit ihren erwarteten Werten schreiben kann. Bonus für eine solche Bibliothek, die auch "gültig" F4V schreiben kann.
Ich würde lieber eine reine Java-Lösung als etwas mit JNI oder externen ausführbaren Dateien.MP4 Container Writer in Java
Antwort
Obwohl meine Antwort sehr spät kommt, könntest du einen Blick in meinen MP4 Parser/Unparser unter Github werfen. Sie können MP4-Dateien analysieren, modifizieren und das Ergebnis schreiben. Sie können sogar von vorne anfangen, Boxen programmatisch zu erstellen und Ihre Objektdarstellung in eine Senke zu schreiben.
Das Java, das ich gesehen habe, das MP4-Dateien ändert, würde Nero AAC Codec extern aufrufen (eine Windows native .exe, die Nero die Quelle für nicht liefert), um AAC-Dateien zu modifizieren (die Apple nur Audio-MP4-Dateien sind). Es funktioniert nur für Audio, nicht für Video.
kann nicht dafür bürgen, aber red5 ist ein Open-Source-Flash-Server in Java geschrieben, die Unterstützung für das Streaming mp4 behauptet und hat implementations of mp4 IO Objekte der in der Lage sein kann, das Format zu erstellen.
Auch IBM hat ihre Toolkit For MPEG-4 eine Weile zurück und obwohl es nicht kostenlos ist, könnte es helfen.
Lustig, dass Sie Red5 erwähnen, ich bin ein Core-Entwickler auf dem Projekt :). Und ja, ich weiß über die Implementierung von IBM, aber es ist, wie Sie verifizieren, nicht KOSTENLOS. –
Hah! Nachdem ich die mp4-impl-Klassen in red5 gesehen hatte, überlegte ich, ob ich sie für ein altes, verlassenes Projekt verwenden könnte. Kann es keine mp4-Ausgabe erstellen, oder suchen Sie einfach nach einer anderen Implementierung, mit der Sie vergleichen können? – Chadwick
Der mp4-Code in red5 ist nur ein Lesegerät, aber der Server ist perfekt in der Lage, Live- oder aufgezeichnete mp4-Inhalte zu streamen. Es kann einfach nicht auf die Festplatte geschrieben werden. –
FFMPEGs Java-Bindungen? http://fobs.sourceforge.net/f4jmf_first.html
Oder einfacher ein JNA Proxy über einige C++ MP4-Bibliothek.
Ich brauche eine Lösung, die JNI oder JNA-Bindungen nicht verwendet, es kann sich nicht auf "nativen" Code verlassen. –
Vielleicht suchen Sie etwas wie StreamBaby.
Ich sehe, sie haben Code für einen Splitter und Interleave Writer in Java, aber sie verwenden FFMpeg. Der Autor sieht nicht komplett aus, aber es ist ein Anfang. –
Auch FFmpeg ist keine Option für uns –
Ich habe eine QuickTimeWriter Klasse implementiert, die einen QuickTime-Container in reinem Java schreiben kann.
Soweit ich weiß, ist das QuickTime-Dateiformat strukturell äquivalent zu MPEG-4 Part 14. Es gibt nur wenige kleine Unterschiede in den Feldern innerhalb von Atomen/Boxen.
Also, mit einer MPEG-4-Spezifikation auf Ihrem Schoß, und ein paar Stunden Arbeit, sollten Sie gut sein.
Sie können JCodec (http://jcodec.org) ansehen. Es enthält eine MP4-Bibliothek und MP4 Demuxer und Muxer.
Auf der Außenseite sieht das ziemlich vielversprechend aus, sobald ich es auschecke, können Sie den "Scheck" bekommen –
@Mondain, jedes Update? – Gili
Derzeit schreiben wir h264 ins FLV-Format und es funktioniert für uns; Ein vollständiger mp4-Brenner wird wahrscheinlich nicht die 1.0-Version mit so viel zu tun machen. –