Конвертировать GIF в MP4 с ffmpeg с цветом палитры - PullRequest
0 голосов
/ 28 марта 2019

Palettegen в порядке:

ffmpeg()
.input('temp/' + input.hash)
.outputOptions(["-vf fps=15,scale=320:-1:flags=lanczos,palettegen"])
.output('temp/palette.png')

преобразование с использованием палитры возвращает ошибку:

Ошибка: не удается найти соответствующий поток для немаркированной входной панели 1 в фильтре Parsed_paletteuse_0

ffmpeg()
.input('color=' + input.bg)
.inputFormat('lavfi')
.input('temp/' + input.hash)
.inputFormat('gif')
.input('temp/palette.png')
.outputOptions('-lavfi paletteuse')
.complexFilter(["[0][1]scale2ref[bg][gif]", "[bg]setsar=1[bg]", "[bg][gif]overlay=shortest=1[o]", "[o]scale=trunc(iw/2)*2:trunc(ih/2)*2"])
.outputOptions(['-pix_fmt yuv420p', '-movflags frag_keyframe+empty_moov', '-movflags +faststart', '-crf 5'])
.toFormat('mp4')
.output('temp/final-' + input.hash)

Последняя команда ffmpeg:

ffmpeg -f lavfi -i color=ffffff -f gif -i temp/cf81f99083462f693406e8fd03ca7009 -i temp/palette.png -y -filter_complex [0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1[o];[o]scale=trunc(iw/2)*2:trunc(ih/2)*2 -lavfi paletteuse -pix_fmt yuv420p -movflags frag_keyframe+empty_moov -movflags +faststart -crf 5 -f mp4 temp/final-cf81f99083462f693406e8fd03ca7009

1 Ответ

1 голос
/ 28 марта 2019

Использование

ffmpeg -f lavfi -i color=ffffff -f gif -i temp/cf81f99083462f693406e8fd03ca7009 -i temp/palette.png -y -filter_complex [0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1,scale=trunc(iw/2)*2:trunc(ih/2)*2[o];[o][2]paletteuse -pix_fmt yuv420p -movflags frag_keyframe+empty_moov+faststart -crf 5 -f mp4 temp/final-cf81f99083462f693406e8fd03ca7009

Однако обратите внимание, что GIF уже палитрирован и поток H264 не должен быть.

...