У меня есть устройство с дисплеем 640x480 и видеовыходом RGB565. Он воспроизводит видео файлы XVID / MP3 в контейнере AVI. Когда я конвертирую файл MP4 с помощью FFMPEG (что я сейчас и делаю), я использую libxvid для создания выходного файла. Они заканчиваются как цветовое пространство YUV с глубиной цвета 8 бит. И они отлично смотрятся, играя на ноутбуке или настольном компьютере.
Затем они go на устройстве и появляются блочные артефакты, которые пользователи считают «смещенными», потому что «это хорошо выглядит на моем ноутбуке» и « У моего мобильного телефона маленький экран, и он прекрасно играет ". Если бы только у меня были ресурсы их ноутбука или мобильного телефона в моем устройстве ...
Итак, мне интересно, могу ли я сделать преобразование из MP4 в мой конечный файл AVI таким образом, чтобы FIRST преобразовал Файлы MP4 (которые могут быть получены из любого места - пользователь может найти их и отправить их в систему, которая автоматически преобразует файл в AVI) следующим образом ...
Конвертировать MP4 в некоторый формат ( Я не могу понять это), который использует цветовое пространство RGB565 / формат пикселей. Затем преобразуйте этот промежуточный файл в формат AVI. Пакет libxvid, кажется, всегда хочет yuv420p и 8-битную глубину ... я надеюсь, что промежуточное преобразование в нечто, что является RGB565, дает мне "блочный вывод", который сохраняется в файле AVI. Идея здесь (которая звучит надуманно, я признаю) состоит в том, чтобы иметь что-то, что воспроизводится на ноутбуке / настольном компьютере / мобильном телефоне с такими же артефактами, которые я получу на реальном устройстве вывода с некачественной системой воспроизведения видео .
Может кто-нибудь предложить некоторые команды, которые позволят этот тип преобразования? Спасибо.