arquivo em lote para legendas de hardcoding em vários vídeos com ffmpeg

1

Minha pergunta no topo :

Qual é a maneira correta de se referir a um nome de arquivo dinâmico para o filtro ass ao usar -filter_complex em ffmpeg ?

A história e minha tentativa :

Eu tenho uma pasta que contém arquivos widescreeen (16: 9) .mp4 , tamanho de quadro 1920x1080. Para cada arquivo mp4, também tenho um arquivo de legenda .ass com o padrão de nomenclatura de originalfilename_outline.ass . Por fim, há um .png transparente que serve como marca d'água para o vídeo.

Meu alvo final é um arquivo .mpg do mpeg2 PAL DVD com arquivo de entrada redimensionado para 576px de altura e recortado igualmente à esquerda e à direita para uma proporção de 4: 3 com dimensões de 720x576, e com legendas e marcas d'água rígidas codificado no vídeo.

Para isso, testei o seguinte arquivo .bat no Windows, usando ffmpeg .

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 um arquivo individual, isso funciona, mas parece que há um problema com a parte ass=%%~nA_outline.ass do arquivo em lote porque recebo o seguinte erro:

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.

Na verdade, sou novo em ffmpeg e estou reunido este arquivo de lote do Windows navegando pelo manual on-line do ffmpeg e algumas outras respostas no SuperUser, então se houver algo mais que eu esteja fazendo que esteja obviamente errado, por favor me avise: -)

    
por Ananda Mahto 11.02.2015 / 11:10

1 resposta

3

A variável de índice para FOR loops é sensível a maiúsculas e minúsculas. Você precisa alterar %%~nA para %%~na (ou capitalizar as outras ocorrências).

    
por 11.02.2015 / 11:44