Das Batch-Skript unten tut das. Für das Web optimiert, wird ein Vorschau-Video mit 10 Bildern aus dem Originalvideo erstellt. Jedes Bild erscheint für 1s. Das Skript liefert Bildmuster entsprechend, sodass die Vorschaubilder aus dem gesamten Video entnommen werden.
Erfordert nur ffmpeg. (und ffprobe, die Bestandteil des ffmpeg-Pakets ist)
Ausgabe: mp4 / h.264 ~ 120Kb (unabhängig von der ursprünglichen Videogröße) .
Vollständig konfigurierbar
Optimierte Lanzos und Schärfefilter.
Behält das Seitenverhältnis des Originalvideos bei, indem Sie es in einem 16: 9 (384x216) -Frame einpassen (füllen Sie ggf. schwarze Balken an den Seiten).
Keine temporären Dateien verwendet. (on-the-fly Pfeife von ffmpeg nach ffmpeg)
HTML5-freundlich.
Hier sind zwei GIF-Beispiele nur für die Vorschau. Die tatsächliche Ausgabe ist mp4 / h.264:
16: 9-Videoquelle. Ausgabe:
4: 3 Videoquelle. Ausgabe:
Wird unter Windows ausgeführt, kann jedoch problemlos in ein Bash-Skript (Linux) konvertiert werden.
Das Skript erstellt einen Ordner, ./preview
in dem alle generierten Vorschauen gespeichert werden:
/My videos movie1.mp4 ~ any size movie2.mp4 ~ any size /preview movie1.mp4 ~ 120Kb movie2.mp4 ~ 120Kb
Sie kann für einzelne Dateien angepasst werden.
previewGenerator.cmd:
REM ---------------------------------------------- set folder=C:\My videos set vframes=10 set width=384 set height=216 rem w = h*16/9 set filetypes=*.mp4 REM ---------------------------------------------- setlocal EnableDelayedExpansion pushd "%folder%" if not exist preview md preview for /f "usebackq delims=" %%f in (`dir /b %filetypes%`) do ( if not exist "preview\%%~nf.mp4" ( for /f %%i in ('ffprobe -v error -show_entries format^=duration "%%f" -of default^=noprint_wrappers^=1:nokey^=1') do set length=%%i set /a length=!length!+0 set /a fps=!length!/%vframes% ffmpeg -threads 2 -i "%%f" -an -qscale:v 1 -vf "fps=1/!fps!, scale=iw*min(%width%/iw\,%height%/ih):ih*min(%width%/iw\,%height%/ih):flags=lanczos, pad=%width%:%height%:(%width%-iw*min(%width%/iw\,%height%/ih))/2:(%height%-ih*min(%width%/iw\,%height%/ih))/2, unsharp=5:5:0.5:5:5:0.5" -vframes %vframes% -f image2pipe -vcodec ppm - ^ | ffmpeg -y -threads 2 -framerate 1 -i pipe:0 -c:v libx264 -profile:v baseline -level 3.0 -tune stillimage -r 30 -pix_fmt yuv420p "preview\%%~nf.mp4" ) cls )
Update: Sie können die Wiedergaberate in HTML5 <video>
wie hier gezeigt steuern
Warum nicht stattdessen GIF verwenden?
.gif-Format hat eine schlechteste Qualität (pixelierte Farben / max. 256 Farben)
.gif-Dateigröße ist mindestens 2x größer.
Sie können die Gif-Animationen für Wiedergabegeschwindigkeit / Pause nach dem Erstellen nicht steuern.