Exoplayer 2: воспроизведение видео в обратном направлении - PullRequest
0 голосов
/ 23 января 2020

Мое android приложение воспроизводит видео в Exoplayer 2, и теперь я хотел бы воспроизвести видео в обратном направлении. Я много искал и нашел только идею преобразовать его в GIF и это из WeiChungChang . Есть ли более простое решение? Вероятно, слишком большой вопрос для другого игрока или библиотеки, которая реализует это для меня, но преобразование его в реверсивный gif доставило мне много проблем с памятью, и я не знаю, что делать с идеей WeiChungChang. Играть только в mp4 в обратном направлении было бы достаточно.

1 Ответ

1 голос
/ 24 января 2020

Видео часто кодируются так, что кодирование для данного кадра зависит от одного или нескольких кадров перед ним, а также иногда зависит от одного или нескольких кадров после него.

Другими словами, для создания кадр правильно, то вы, возможно, потребуется обратиться к одному или более предыдущих и одного или нескольких последующих кадров.

1004 * Это позволяет видеокодер уменьшить файл или формат передачи путем кодирования полностью информацию для каждого опорного кадра, иногда называемый I кадры, но для кадров до и / или после опорных кадров, сохраняющих только дельту опорных кадров.

Воспроизведение видео в обратном направлении не является обычной функцией проигрывателя, и проигрыватель обычно должен декодировать видео как обычно ( т.е. вперед), чтобы получить кадры и затем воспроизвести их в обратном порядке.

Вы можете расширить ExoPlayer, чтобы сделать это самостоятельно, но, возможно, будет проще манипулировать видео на стороне сервера, если это возможно, сначала - существуют инструменты который перевернет видео, а затем Ваши игроки смогут играть в нее как обычно, например https://www.videoreverser.com, https://www.kapwing.com/tools/reverse-video et c

Если вам нужно повернуть его на устройство для вашего случая использования, тогда вы можете использовать ffmpeg на устройстве для достижения этой цели - см. пример команды ffmpeg, чтобы сделать это здесь:

Если вы используете ffmpeg, его, как правило, проще всего использовать через оболочку Android, такую ​​как эта, которая также позволит вам проверить команду перед ее добавлением в приложение:

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

...