2016-12-14 10 views
1

Я бы хотел конвертировать .webm в .mp4. Есть библиотеки, которые могут делать это на Java? Или что-нибудь еще?Преобразование .webm в .mp4

Подводя итог, я на самом деле разрабатываю приложение, которое может извлекать звук из видео YouTube или Vimeo (используя lib vget).

Проблема в возврате, я получаю файл, который закодирован .webm.

+2

Эй Виктор, я вижу, что некоторые люди проголосовали, чтобы закрыть ваш вопрос, потому что они думают, что это не по теме в переполнении стека, потому что вы спрашиваете о рекомендации библиотеки. Я думаю, что они ошибаются. Но чтобы этого избежать, вы можете просто спросить о том, как это решить на Java, без упоминания библиотек. – Lii

+0

Я убираю свой ** переоткрытый ** голос. Будет приятно, когда вы создадите настоящий ** ** ** ** ** технический вопрос. Например, с Youtube прямые ссылки на аудио-часть (mp3 или m4a) видео можно найти в исходном коде страницы (после специального удаления текста и очистки его html-объектов ... и т. Д.). Также рассмотрите возможность использования некоторого исполняемого файла FFmpeg в качестве внешнего «Процесса» для достижения преобразования формата. –

ответ

2

Вы можете посмотреть на JAVE (Download)

Библиотека Jave (Java Audio Video Encoder) является Java-оболочкой на проекте FFmpeg. Разработчики могут воспользоваться JAVE до перекодировать аудио и видео файлы из формата в другой. В примере вы можете перекодировать AVI-файл в MPEG один, вы можете изменить видеопоток DivX в один FLV-файл (youtube like) Flash FLV, вы можете конвертировать аудиофайл WAV в форматев MP3 или Ogg Vorbis, вы могут отделяться и транскодировать аудио- и видеодорожки, вы можете изменять размер видео, меняя их размеры и пропорции и так далее. Многие другие форматы, контейнеры и операции поддерживаются JAVE.

Хотя я не использовал его для .webm Уверен, что обходной путь можно использовать в этой библиотеке. Он почти поддерживает все.


Примеры и учебники here

Пример преобразования AVI в YouTube, как FLV кино, со встроенным MP3 аудиопотока:

File source = new File("source.avi"); 
File target = new File("target.flv"); 
AudioAttributes audio = new AudioAttributes(); 
audio.setCodec("libmp3lame"); 
audio.setBitRate(new Integer(64000)); 
audio.setChannels(new Integer(1)); 
audio.setSamplingRate(new Integer(22050)); 
VideoAttributes video = new VideoAttributes(); 
video.setCodec("flv"); 
video.setBitRate(new Integer(160000)); 
video.setFrameRate(new Integer(15)); 
video.setSize(new VideoSize(400, 300)); 
EncodingAttributes attrs = new EncodingAttributes(); 
attrs.setFormat("flv"); 
attrs.setAudioAttributes(audio); 
attrs.setVideoAttributes(video); 
Encoder encoder = new Encoder(); 
encoder.encode(source, target, attrs);