2014-11-14 5 views
2

Мне нелегко получить правильную продолжительность и точную частоту кадров в Jcodec.Android: Jcodec Framerate and Duration

У меня есть приложение, которое показывает массив растровых изображений, в которых пользователь может изменить частоту кадров, как 1fps, 5fps, 32fps, все, что я сделал, было 1000/fps. поэтому 1fps покажет 1 растровое изображение каждые 1 секунду, 2fps: 2bitmap и т. д., короче говоря, пользователь является тем, который поставляет частоту кадров. Я нашел this, но я не могу получить правильную формулу.

И еще одно, о продолжительности. Что, если я хочу 1fps, и у меня 16 растровых изображений. JCodec должен создать видео за 16 секунд.

Как я могу это достичь? скажем, что растровые изображения будут динамическими. Основываясь на том, что я понимаю, Jcodec полагается на длительность жесткого кодирования. а не количеством кадров, которые он закодировал и преобразовал в MP4.

Заранее спасибо.

+0

Любое решение этой проблемы? Также здесь есть такая же проблема. спасибо – ralphgabb

+0

Вам удалось решить проблему? я застрял в той же проблеме. любая помощь будет оценена по достоинству. благодаря :) –

ответ

1

Если бы это было трудно найти. Проанализировали API.

FileChooser fc = new FileChooser(); 
File file = fc.showOpenDialog(null); 
SeekableByteChannel bc = NIOUtils.readableFileChannel(file); 
MP4Demuxer dm = new MP4Demuxer(bc); 
DemuxerTrack vt = dm.getVideoTrack(); 
double frameRate = vt.getMeta().getTotalFrames()/vt.getMeta().getTotalDuration();