Попытка использовать ffmpeg для создания слайд-шоу из именованных изображений ISO-8601. Получение вывода без воспроизводимых потоков - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь создать слайд-шоу изображений, которые имеют нерегулярные размеры / ориентацию, но все они названы с тем же форматом даты ISO-8601.

Я нормализовал имена файлов, чтобы они все были ГГГГММДД.jpg. Я попытался использовать тип глобулярного шаблона для ffmpeg и различные методы ввода файлов, включая конвейерную передачу файлов в ffmpeg.

Вот изображения, которые я пытаюсь использовать:

$ ls *.jpg | xargs -n1 file
20190411.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=upper-left, width=0], baseline, precision 8, 10128x3984, components 3
20190417.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10176x3952, components 3
20190424.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=upper-left, width=0], baseline, precision 8, 12128x3840, components 3
20190429.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=upper-left, width=0], baseline, precision 8, 11104x3888, components 3
20190430.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10992x3920, components 3
20190501.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10528x3936, components 3
20190502.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10992x3792, components 3
20190508.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 11008x3808, components 3
20190515.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10416x3760, components 3
20190516.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10928x3760, components 3
20190517.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=lower-right, width=0], baseline, precision 8, 10720x3840, components 3
20190522.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6552x1688, components 3
20190523.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6572x1700, components 3
20190524.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6468x1659, components 3
20190528.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 5424x1644, components 3
20190529.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=7, model=Pixel 2 XL, height=0, manufacturer=Google, orientation=[*0*], datetime=2019:05:29 16:38:01, width=0]
20190531.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6584x1693, components 3
20190603.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6536x1690, components 3
20190604.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 5748x1618, components 3
20190606.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6196x1690, components 3
20190607.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6112x1674, components 3
20190610.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6440x1670, components 3
20190611.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6312x1694, components 3
20190612.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=4, height=0, orientation=[*0*], width=0], baseline, precision 8, 6176x1689, components 3

А вот различные команды ffmpeg, которые я пытался использовать:

cat *.jpg | ffmpeg -framerate 1/5 -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
cat *.jpg | ffmpeg -f image2pipe -i - output.mkv
ffmpeg -framerate 1/5 -pattern_type glob -i '*.jpg' out.mp4
ffmpeg -framerate 1/5 -pattern_type glob -i '*.jpg' -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4

Я пытаюсь создать видео, показывающее каждое изображение по 5 секунд по порядку, но я получаю видео файл mp4 без воспроизводимых потоков.

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Такая большая ширина х высота будет трудно декодировать. Попробуйте добавить фильтр масштаба, чтобы иметь дело с различными размерами изображения и получить более воспроизводимый размер вывода.

Вы можете дополнить разницу:

ffmpeg -framerate 1/5 -pattern_type glob -i "*.jpg" -c:v libx264 -vf "scale=1920:1080:force_original_aspect_ratio=decrease:eval=frame,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,format=yuv420p" -r 25 out.mp4

или урожай:

ffmpeg -framerate 1/5 -pattern_type glob -i "*.jpg" -c:v libx264 -vf "scale=1920:1080:force_original_aspect_ratio=increase:eval=frame,crop=1920:1080,setsar=1,format=yuv420p" -r 25 out.mp4
1 голос
/ 19 июня 2019

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

cat *.jpg | ffmpeg -f image2pipe -framerate 1/5 -i - -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4

...