2010-09-08 32 views
13

Java için ÜCRETSİZ MP4 (kapsayıcı) yazarı bulmak istiyorum. Kodlayıcıya ihtiyacım yok, sadece beklenen değerlerine göre doğru atomları yazabilen bir şey. "Geçerli" F4V yazabilen bir kütüphane için Bonus.
JNI veya harici çalıştırılabilir dosyalar kullanarak bir şey yerine saf bir Java çözümü tercih ederim.MP4 konteyner yazıcısı Java

cevap

6

cevabım çok geç gelse bile olsa Github benim MP4 Ayrıştırıcı/Unparser içine bir göz olabilir. MP4 dosyalarını ayrıştırabilir, değiştirebilir ve sonucu yazabilirsiniz. Kutuları programatik olarak çizerek sıfırdan başlayabilir ve nesne temsilinizi bir havuza yazabilirsiniz.

+2

Dışarıda bu oldukça umut verici görünüyor, ben bir kez kontrol edin "check" –

+0

@Mondain, herhangi bir güncelleme alabilirsiniz? – Gili

+0

Şu anda h264'ü flv biçiminde yazıyor ve bizim için çalışıyor; Tam bir mp4 yazarı muhtemelen 1.0 sürümünün yapacak kadar sol olmasını istemiyor. –

0

MP4 dosyalarını değiştiren Java, AAC dosyalarını (Apple'ın yalnızca ses dosyaları olan MP4 dosyaları) değiştirmek için Nero AAC Codec harici olarak (Nero'nun kaynağı sağlamayan bir Windows yerel .exe'si) çağırırdı. Sadece ses değil, video için çalışır.

1

Bunun için kefil olamaz, ancak red5, Java'da yazılmış, mp4 akışı için destek iddia eden ve söz konusu biçimi oluşturabilen implementations of mp4 IO nesnelerine sahip bir açık kaynak flash sunucusudur.

Ayrıca IBM, bir süre önce kendi Toolkit For MPEG-4 oluşturulan ve ücretsiz değil gerçi, bu yardımcı olabilir.

+0

Red5'ten bahsettiğiniz komik, ben projede çekirdek bir yapıyım :). Ve evet, IBM'in uygulanmasını biliyorum, ancak doğrulama yaptığınız gibi ÜCRETSİZ değil. –

+0

Hah! Mp4 impl sınıflarını red5'ten sonra gördükten sonra eski bir terk edilmiş proje için kullanmayı düşünüyorum. Mp4 çıkışı oluşturmuyor mu, yoksa basitçe karşılaştırmak için anothere uygulaması mı arıyorsunuz? – Chadwick

+0

Red5'deki mp4 kodu sadece bir okuyucudur, ancak sunucu canlı veya kayıtlı mp4 içeriğini mükemmel bir şekilde aktarabilmektedir. Sadece diske yazamaz. –

1

FFMPEG'in java bağlamaları? Veya bazı C++ MP4 kitaplığı üzerinde daha basit bir JNA proxy'si veya daha basit bir JNA proxy'si.

+0

JNI veya JNA bağlamaları kullanmayan bir çözüme ihtiyacım var, "yerel" kodlara güvenemez. –

2

StreamBaby gibi bir şeye benziyor olabilirsiniz.

+1

Bir javada splitter ve interleave yazarı için kodları var ama FFMpeg kullanıyorlar. Yazar tam olarak görünmüyor ama bir başlangıç. –

+0

Ayrıca, FFmpeg bizim için bir seçenek değil –

1

saf Java bir QuickTime kabı yazabilirsiniz bir QuickTimeWriter sınıf uyguladık.

olarak bildiğim kadarıyla, QuickTime dosya biçimi atomlar/kutularının içinde alanlarda sadece birkaç küçük farklılıklar vardır MPEG-4 Part 14 yapısal olarak eşdeğerdir.

Bu nedenle, kucağınızda bir MPEG-4 özelliği ve birkaç saatlik çalışma ile iyi olmalısınız.

3

JCodec'e (http://jcodec.org) bir göz atabilirsiniz. MP4 kütüphanesi ve MP4 demuxer ve muxer içerir.