Co chcę robić:
Mam x ilość zdjęć png / jpg i chcę je pokazywać z różnym czasem trwania, czasem dłuższym i krótszym.
- a1.jpg Pierwsze zdjęcie pozostaje na 3 sekundy
- a2.png pozostaje przez 10 sekund
- a3.jpg pozostaje do końca dźwięku
Wideo powinno być tak długie, jak audio.mp3
to jest mój kod do tej pory po przeczytaniu dokumentacji, nie jestem pewien, co jest nie tak, dostaję uszkodzony film bez dźwięku i pokazuje tylko ostatni obraz.
Chciałbym również wyśrodkować obrazy, jeśli to możliwe.
ffmpeg -y \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy video.mp4
próbować
ffmpeg -y -framerate 15 \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy \
-filter_complex " \
[0]setdar=16/9[a1],[a1]scale=720x406[a];[1]setdar=16/9[b1],[b1]scale=720x406[b];[2]setdar=16/9[c1],[c1]scale=720x406[c];[3]setdar=16/9[d1],[d1]scale=720x406[d];[4]setdar=16/9[e1],[e1]scale=720x406[e];
[a][b][c][d][e]concat=n=5,format=yuv420p[v],[v]scale=720x406[v1],[v1]setdar=16/9[v2]" \
-map "[v2]" -c:a copy out.mp4
źródło