archivo por lotes para codificar subtítulos en múltiples videos con ffmpeg

1

Mi pregunta en la parte superior :

¿Cuál es la forma correcta de referirse a un nombre de archivo dinámico para el assfiltro cuando se usa -filter_complexen ?


La historia y mi intento :

Tengo una carpeta que contiene .mp4archivos de pantalla panorámica (16: 9) , tamaño de fotograma de 1920x1080. Para cada archivo mp4, también tengo un .assarchivo de subtítulos con el patrón de nomenclatura de originalfilename_outline.ass. Finalmente, hay un transparente .pngque sirve como marca de agua para el video.

Mi objetivo final es un .mpgarchivo DVD mpeg2 PAL con un archivo de entrada redimensionado a 576 píxeles de altura, y recortado por igual a la izquierda y a la derecha a una relación de aspecto 4: 3 con dimensiones 720x576, y con los subtítulos y la marca de agua codificados en el video.

Para esto, probé el siguiente .batarchivo en Windows, usando .

for %%a in ("*.mp4") do ffmpeg -i "%%a"^
 -i full_screen_watermark.png^
 -aspect 4:3^
 -filter_complex "scale=1024x576,crop=iw-304:ih:152:0,overlay=0:0,ass=%%~nA_outline.ass"^
 -target pal-dvd "PAL_DVD_Format\%%~na.mpg"
pause

Para un archivo individual, esto funciona, pero parece que hay un problema con la ass=%%~nA_outline.assparte del archivo por lotes porque aparece el siguiente error:

Input #0, avi, from 'testing.mp4':
  Duration: 18:09:40.03, start: 0.000000, bitrate: 36 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (DIVX / 0x58564944), yuv420p, 192
0x1080 [SAR 1:1 DAR 16:9], 6461 kb/s, 25 fps, 25 tbr, 25 tbn, 1k tbc
    Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 44100 Hz, stereo, fl
tp, 128 kb/s
Input #1, png_pipe, from 'full_screen_watermark.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba, 720x576 [SAR 3543:3543 DAR 5:4], 25 tbr, 25 t
bn, 25 tbc
[Parsed_ass_3 @ 000000000033ec60] ass_read_file(%~nA_outline.ass): fopen failed
[Parsed_ass_3 @ 000000000033ec60] Could not create a libass track when reading f
ile '%~nA_outline.ass'
[AVFilterGraph @ 0000000004ed1ec0] Error initializing filter 'ass' with args '%~
nA_outline.ass'
Error configuring filters.

En realidad, soy nuevo en y he reconstruido este archivo por lotes de Windows navegando a través del manual en línea de ffmpeg y algunas otras respuestas en SuperUser, así que si hay algo más que estoy haciendo que obviamente está mal, déjenme saber :-)

Ananda Mahto
fuente

Respuestas:

3

La variable de índice para FORbucles distingue entre mayúsculas y minúsculas. Necesita cambiar %%~nAa %%~na(o capitalizar las otras ocurrencias).

G-Man
fuente
1
Hombre, siento que se me acerca una palma de la cara ...
Ananda Mahto