Tworzenie skryptu wideo z obrazów, określając jednocześnie czas wyświetlania każdego obrazu?

1

Wydaje się, że istnieje kilka sposobów konwertowania obrazów na filmy, ale wszystkie wydają się pozwalać na wyświetlanie każdego filmu w ustalonym czasie. Czy ktoś zna sposób skryptu tworzenia wideo z plików graficznych, który pozwala określić długość wyświetlania każdego obrazu?

Na przykład

magicSoftware.exe out=video.mp4 | in=file1.png time=100ms | in=file2.png time=400ms
Jim
źródło

Odpowiedzi:

0

Nie mogę wymyślić żadnego narzędzia, które mogłoby to zrobić jako proste jednorazowe polecenie; możesz jednak przekonwertować swoje zdjęcia indywidualnie na filmy (o różnej długości), a następnie połączyć je razem - użyłbym do tego ffmpeg.

ffmpeg -f image2 -loop 1 -i input1.png -t 6 -crf 22 -preset veryfast 01.ts
ffmpeg -f image2 -loop 1 -i input2.png -t 9 -crf 22 -preset veryfast 02.ts
ffmpeg -f image2 -loop 1 -i input3.png -t 4 -crf 22 -preset veryfast 03.ts

-tustawia czas wyjściowy w sekundach. Możesz także użyć ułamków sekund, więc -t 2.2da ci to czas 2,2 sekundy. Jeśli chcesz, aby określić długość w zakresie klatek wideo, można korzystać -vframesz frames:v; domyślnie to polecenie daje 25 klatek na sekundę. Następnie połącz pliki MPEG TS razem w jeden MP4:

ffmpeg -i "concat:01.ts|02.ts|03.ts" -c copy output.mp4

Oczywiście można by to napisać (wiem, jak bym to zrobił w bashu, ale nie mam wiedzy na temat skryptów w systemie Windows).

zła
źródło