Проблема воспроизведения MediaMuxer с ExoPlayer

Я использую класс MediaMuxer для редактирования видеофайла для воспроизведения с помощью библиотеки ExoPlayer. В основном то, что я делаю, это извлечение видеокадров из mp4, декодирование этих кадров, повторное кодирование этих кадров и мультиплексирование с использованием muxer.writeSampleData(..)

Это все хорошо, и я могу успешно воспроизвести видео после того, как это будет сделано с моей реализацией ExoPlayer, ДО ТОГО, КАК продолжительность видео> = 20 секунд. Когда я пытаюсь использовать видео (.mp4) продолжительностью не менее 20 секунд, возникает проблема с воспроизведением. В журналах нет ошибок или каких-либо других исключений ни для объектов MediaMuxer, ни для ExoPlayer.

Проблема с воспроизведением странная, но происходит точно так же, независимо от длины видео >= 20 секунд. Когда воспроизведение достигает отметки 11 секунд (11 секунд видео), кадр останавливается, а журналы ExoPlayer показывают, что состояние проигрывателя изменилось с «Готово» на «Буферизация» и остается в этом состоянии на неопределенный срок. Никакие другие ошибки или другая важная информация не регистрируются.

Журналы ExoPlayer не печатают ничего полезного для отслеживания проблемы, и из-за этого я не уверен, в чем проблема. Где-то в коде редактирования видео, где я извлекаю кадры, декодирую кадры, кодирую кадры и мультиплексирую их, или в библиотеке ExoPlayer? (исходное видео воспроизводится нормально независимо от длины) Видео, которые застревают на 11-секундной отметке в моей реализации ExoPlayer, отлично воспроизводятся на моих устройствах MediaPlayer по умолчанию.

Есть ли у кого-нибудь опыт в создании чего-то подобного? У вас есть какие-либо идеи о том, где может быть проблема с возникшими проблемами, или есть какие-либо дополнительные идеи о том, как это отладить?


person Devsil    schedule 12.01.2016    source источник
comment
У кого-нибудь есть предложения?   -  person Devsil    schedule 13.01.2016


Ответы (1)


Проблема заключалась в том, что декодер в некоторых случаях записывал большой образец, и моя реализация exoplayer не могла с этим справиться из-за того, что максимальный размер образца, который я установил, был слишком мал. Это было исправлено путем настройки максимального размера образца для декодера. или реализация экзоплеера.

person Devsil    schedule 14.01.2016
comment
Итак, насколько быстро мультиплексор преобразовывал ваше видео? - person LostPuppy; 12.04.2016