параметры ffmpeg, которые работают с Chrome

Я пытаюсь найти волшебные параметры, которые заставляют mp4 работать в Chrome. Я думаю, что мои видео работали, но после обновления Chrome больше не работает.

Chrome, версия 41.0.2272.101 (Windows)

Я попробовал некоторые другие машины и обнаружил, что некоторые видео работают на более старых версиях, и мой Mac, похоже, все еще работает на последней версии Chrome.

Я использую параметры ffmpeg для преобразования из серии png,

ffmpeg -framerate 10 -i dance%02d.png  -r 10 -pix_fmt yuv420p dance.mp4

Некоторые видео работают, некоторые нет, некоторые работают некоторое время или останавливаются на полпути.

Я пробовал различные другие варианты, например,

ffmpeg -start_number 16 -framerate 10 -i dance%02d.png -r 10 -an -s hd720 \
-vcodec libx264 -pix_fmt yuv420p -preset slow -profile:v baseline \
-movflags faststart -y dance.mp4

но это, казалось, только ухудшило ситуацию.

вот одно из видео, http://www.botlibre.com/media/a786625.mp4

и еще один, http://www.botlibre.com/media/a812450.mp4.

Firefox, кажется, работает без проблем, на любой версии, хотя фон серый. IE работает нормально, белый фон. Safari работает, серый фон.

Другое дело, что у видео раньше был белый фон в старой версии Chrome, но теперь он серый, за исключением того, что на Mac все еще белый.

и вот еще. Формат Webm работает, но кто-нибудь знает возможность убрать прозрачность? Я использую,

ffmpeg -i dance%02d.png  -r 10 -c:v libvpx -crf 10 -b:v 512k -c:a libvorbis dance.webm

просто хочу сплошной белый фон.


person James    schedule 24.03.2015    source источник
comment
Чтобы удалить прозрачность, вы можете использовать фильтр, например `format=rgba,lutrgb=a=minval`. См. это. Или просто сведите изображения с белым фоном перед кодированием с помощью convert.   -  person aergistal    schedule 24.03.2015


Ответы (1)


Предоставленное видео отлично работает с Chrome v. 44 (хотя сейчас обе ссылки не работают). Поскольку вы заявляете, что считаете, что видео работали до обновления до версии 41, это указывает на ошибку в Chrome в версии с 41 по (возможно) 43.

Что касается фона. PNG часто прозрачны, а закодированный поток MP4 кажется закодированным как 32-битный поток (24-битные цвета, 8-битный альфа-канал). Только webm действительно поддерживает альфа-версию в браузере (и в настоящее время только в Chrome и Opera).

Chrome использует FFmpeg для декодирования видео в формате mp4, а Firefox использует все, что предоставляет хост-система. Различные цвета фона указывают на прозрачность, поскольку видео фактически не отображается с доступным альфа-каналом.

Рекомендуемый способ - визуализировать ваши кадры без альфа-канала (если вы не собираетесь его использовать ни для чего) или преобразовать последовательность PNG в PNG без альфа-канала перед декодированием их в видео. Это и для mp4 и для webm.

person Community    schedule 21.04.2015
comment
Да, похоже, это ошибка Chrome, которая с тех пор была исправлена. Думаю, я сделаю серию изображений без альфы и регенерирую видео. Мне нужна альфа-версия, и она работает для webm, но, думаю, мне нужна отдельная серия изображений для mp4. - person James; 22.04.2015