@echo off chcp 65001 :: ^ NO HO TOQUIS ^ :: --- FITXERS --- :: Nom del fitxer de la RAW SET raw=[Moozzi2] Princess Tutu - 01 (BD 1440x1080 x.264 Flac).mkv :: Nom del fitxer de subtítols SET subtitles=01.ass :: --- DADES --- :: Títol del fitxer comprimit SET title=Princesa Tutú - 01 :: Títol del vídeo (el %title% és el títol del fitxer a la línia anterior) SET title_long=%title% - L'ànec i el príncep :: Autor del fitxer SET author=CatSub :: Any d'edició de l'anime (no de la subtitulació) SET year=2002 :: Gènere del vídeo SET genre=Anime :: --- COMPRESSIÓ --- :: Qualitat de la compressió: low (ràpid però mal comprimit) o high (lent però ben comprimit) SET quality=high :: Això defineix el nom del fitxer resultant i els paràmetres del còdec depenent de la qualitat de la compressió (low o high) :: Afegim "[QC]" a les versions comprimides amb baixa qualitat per a diferenciar-les de les definitives. IF "%quality%"=="low" ( SET preset=ultrafast SET crf=23 SET output=[%author%] %title% [QC].mp4 ) ELSE ( SET preset=slower SET crf=17 SET output=[%author%] %title%.mp4 ) :: --- EXECUCIÓ --- :: Primer comprovem que els fitxers existeixin: IF NOT EXIST "%raw%" ( ECHO El fitxer de la RAW no existeix, verifica que sigui correcte. PAUSE EXIT ) IF NOT EXIST "%subtitles%" ( ECHO El fitxer de subtítols no existeix, verifica que sigui correcte. PAUSE EXIT ) :: Aquest és el programa que fa la compressió, l'ffmpeg. Paràmetres que s'hi passen: :: -i "%raw%" -> Indica que el fitxer d'origen és la RAW que hem especificat abans :: -map_metadata -1 -> Descarta totes les metadades del fitxer original (títol, autor, nom, etc.) :: -map_chapters -1 -> Descarta els capítols del fitxer original (marques de temps que permeten saltar a opening, ending, etc.) :: -pix_fmt yuv420p -> Indica el format de color, per si la RAW té algun format de color diferent (p.ex. 10bits) :: -vf subtitles="%subtitles%" -> Indica que cal aplicar el filtre de vídeo que afegeix subtítols amb el fitxer especificat abans :: -c:v libx264 -> Còdec de vídeo H264 :: -preset %preset% -> Velocitat del còdec H264: com més lent, millor compressió resultant. Normalment fem servir "slower" :: -profile:v high -> Perfil del còdec H264 (sempre High) :: -level 4.1 -> Nivell del còdec H264 (sempre 4.1) :: -crf %crf% -> Ràtio de compressió: com més baix, menys pèrdua de qualitat, però fitxer més gros. Normalment 17 per a llançaments, 14 si no són HD :: -ac 2 -> Redueix l'àudio a dos canals (estèreo), per si l'origen és surround :: -c:a aac -> Còdec d'àudio AAC :: -b:a 128k -> Bitrate (nombre de mostres per segon) del còdec AAC 8sempre 128k) :: -movflags faststart -> Optimitza el vídeo per a streaming :: -max_muxing_queue_size 1024 -> A causa d'un bug, sense aquesta opció de vegades el compressor es penja :: -metadata title="%title_long%" -> Defineix el títol del vídeo :: -metadata date="%year%" -> Defineix l'any del vídeo :: -metadata artist="%author%" -> Defineix l'autor del vídeo :: -metadata genre="%genre%" -> Defineix el gènere del vídeo :: "%output%" -> Nom del fitxer resultant ffmpeg\bin\ffmpeg -i "%raw%" -map_metadata -1 -map_chapters -1 -pix_fmt yuv420p -vf ass="%subtitles%" -c:v libx264 -preset %preset% -profile:v high -level 4.1 -crf %crf% -ac 2 -c:a aac -b:a 128k -movflags faststart -max_muxing_queue_size 1024 -metadata title="%title_long%" -metadata date="%year%" -metadata artist="%author%" -metadata genre="%genre%" "%output%" IF %ERRORLEVEL% EQU 0 ( ECHO El procés ha finalitzat correctament! ) ElSE ( ECHO El procés ha finalitzat amb error! ) PAUSE EXIT