2010-09-08 11 views
13

Me gustaría encontrar un escritor MP4 (contenedor) GRATUITO para Java. No necesito un codificador, solo algo que pueda escribir los átomos correctos dados sus valores esperados. Bonificación para una biblioteca que también pueda escribir F4V "válido".
Preferiría una solución pura de Java en lugar de usar JNI o ​​ejecutables externos.Escritor de contenedor MP4 en Java

Respuesta

6

Aunque mi respuesta llega muy tarde, puede echar un vistazo a mi analizador/unparser MP4 al Github. Puede analizar archivos MP4, modificarlos y escribir el resultado. Incluso puede comenzar desde cero creando cuadros de forma programática y escribir su representación de objetos en algún receptor.

+2

Por fuera esto parece bastante prometedor, una vez que lo verifique, puede obtener el "cheque" –

+0

@Mondain, ¿alguna actualización? – Gili

+0

Actualmente estamos escribiendo h264 en formato flv y funciona para nosotros; Un escritor de mp4 completo probablemente no hará la versión 1.0 con tanto por hacer. –

0

El Java que he visto que modifica los archivos MP4 invocaría Nero AAC Codec externamente (un .exe nativo de Windows que Nero no proporciona a la fuente) para modificar archivos AAC (que son archivos MP4 de solo audio de Apple). Funciona solo para audio, no para video.

1

No puedo garantizarlo, pero red5 es un servidor flash de código abierto escrito en Java, que afirma tener soporte para la transmisión de mp4 y tiene implementations of mp4 objetos IO que pueden crear dicho formato.

Además, IBM creó su Toolkit For MPEG-4 hace un tiempo y, aunque no es gratuito, podría ser útil.

+0

Es curioso que menciones a Red5, soy un desarrollador central en el proyecto :). Y sí, sé sobre la implementación de IBM pero, como usted verifica, no es GRATUITO. –

+0

¡Hah! Después de ver las clases impl de mp4 en red5, estaba considerando usarlo para un viejo proyecto abandonado. ¿No puede crear salida mp4, o simplemente está buscando una implementación diferente para comparar? – Chadwick

+0

El código mp4 en red5 es solo un lector, pero el servidor es perfectamente capaz de transmitir contenido mp4 en vivo o grabado. Simplemente no puede escribirlo en el disco. –

1

FFMPEG's java bindings? http://fobs.sourceforge.net/f4jmf_first.html

O simplemente un proxy JNA sobre alguna biblioteca C++ MP4.

+0

Necesito una solución que no utilice enlaces JNI o ​​JNA, no puede confiar en el código "nativo". –

2

Quizás esté buscando algo como StreamBaby.

+1

Veo que tienen código para un separador y escritor de intercalación en java, pero están usando FFMpeg. El escritor no parece completo, pero es un comienzo. –

+0

Además, FFmpeg no es una opción para nosotros –

1

Implementé una clase QuickTimeWriter que puede escribir un contenedor QuickTime en Java puro.

Hasta donde yo sé, el formato de archivo QuickTime es estructuralmente equivalente a MPEG-4 Parte 14. Hay solo algunas diferencias menores en los campos dentro de átomos/cajas.

Por lo tanto, con una especificación MPEG-4 en su regazo y unas pocas horas de trabajo, debería estar bien.

3

Puede echar un vistazo a JCodec (http://jcodec.org). Contiene una biblioteca MP4 y MP4 demuxer y muxer.

Cuestiones relacionadas