7

У меня есть видео в формате .avi (divx) со скоростью 25 кадров в секунду и аудио в формате mp3 со скоростью 64 кбит / с. Это видео имеет только одно изображение на протяжении всего видео.

Я пытаюсь преобразовать это видео в mp4, но сделать его как можно меньше (так как на самом деле всего 1 кадр!)

Я сейчас пытаюсь это:

ffmpeg -i video.avi -vcodec libx264 -acodec aac \
-ar 32000 -ab 64k -ac 2 -strict -2 -y video.mp4

Но это делает видео в формате mp4 размером с .avi.

Затем я попытался изменить частоту кадров на 1 кадр / с:

ffmpeg -i video.avi -vcodec libx264 -acodec aac \
-ar 32000 -ab 64k -ac 2 -strict -2 -y -r 1 video.mp4

Это сделало видеофайл намного меньше (в 10 раз меньше), но есть проблема, заключающаяся в том, что ключевой кадр не появляется в 1-м кадре видео. Таким образом, единственный кадр в видео появляется как 8 или 10 секунд в видео (!).

Похоже, проблема в том, что ffmpeg продолжает сбрасывать кадры из video.avi и не записывает их в video.mp4 в качестве ключевых кадров. Когда это действительно пишет ключевой кадр, это поздно в видео.

Он попытался использовать аргумент -force_key_frames но это тоже не помогло. Я сделал -force_key_frames 0 и -force_key_frames 1 .

Кто-нибудь знает, как я мог бы создать действительно маленькое видео mp4 только с 1 статическим кадром?

3 ответа3

1

Вы должны проверить, является ли видео часть действительно фактором, отделяя A/V-компоненты

с ffmpeg это работает с

#retrieve audio-only
ffmpeg -i <<VideoName>> -vn -acodec copy -f <<AudioCodec>> output.audio
#retrieve video-only
ffmpeg -i <<VideoName>> -an -vcodec copy -f <<VideoCodec>> output.video

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

см. ffmpeg.org/wiki для справки

#create screenshot from video
ffmpeg -i <<VideoName>> -ss 00:00:01.0 -f image2 -vframes 1 output.screen.png

Вы можете увидеть в этом сообщении stackoverflow, как сделать видео из неподвижного

1

Попробуйте следующую команду, которая удаляет изображение и аудио отдельно, а затем снова собирает:

ffmpeg -loop 1 -shortest -y -i image.jpg -i audio.amr -acodec copy \
-vcodec video.avi video.mp4
-1

Если вы просто хотите конвертировать его, используйте программу под названием Format factory (ссылка здесь: http://www.pcfreetime.com/). Она может конвертировать файл прямо в mp4 для вас, и вы можете установить его на небольшой размер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .