Réponses:
Le script de lot ci-dessous fait cela. Optimisé pour le Web, il produit un aperçu de la vidéo avec 10 images extraites de la vidéo originale. Chaque image est affichée pendant 1s. Le script obtient des exemples d'images en conséquence, de sorte que les images d'aperçu sont extraites de la vidéo entière.
Nécessite seulement ffmpeg. (et ffprobe qui fait partie du paquet ffmpeg)
Sortie: mp4 / h.264 ~ 120 Ko (quelle que soit la taille de la vidéo d'origine) .
Entièrement configurable.
Lanczos optimisés et filtre de netteté.
Conserve le rapport hauteur / largeur de la vidéo d'origine en l'insérant dans un cadre 16: 9 (384x216) (remplissez des barres noires sur les côtés si nécessaire).
Aucun fichier temporaire utilisé. (pipe à la volée de ffmpeg à ffmpeg)
HTML5 convivial.
Voici deux exemples gif à titre d’aperçu uniquement. La sortie réelle est de mp4 / h.264:
Source vidéo 16: 9. Sortie:
Source vidéo 4: 3. Sortie:
Exécutez Windows mais il peut être facilement converti en script bash (Linux).
Le script crée un dossier ./preview
où il stocke tous les aperçus générés:
/My videos
movie1.mp4 ~ any size
movie2.mp4 ~ any size
/preview
movie1.mp4 ~ 120Kb
movie2.mp4 ~ 120Kb
Il peut être ajusté pour fonctionner sur des fichiers individuels.
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
)
Mettre à jour: Vous pouvez facilement contrôler le taux de lecture en HTML5 <video>
comme montré ici
Le format .gif a une qualité médiocre (couleurs pixelisées / maximum 256 couleurs)
La taille du fichier .gif est au moins 2 fois plus grande.
Vous ne pouvez pas contrôler la vitesse de lecture / pause des animations gif après sa construction.