Мой вопрос вверху :
Как правильно обращаться к динамическому имени файла для ass
фильтра при использовании -filter_complex
в ffmpeg ?
История и моя попытка :
У меня есть папка, которая содержит широкоэкранные (16: 9) .mp4
файлы, размер кадра 1920x1080. Для каждого файла mp4 у меня также есть .ass
файл субтитров с шаблоном именования originalfilename_outline.ass
. Наконец, есть прозрачный, .png
который служит водяным знаком для видео.
Моя конечная цель - DVD- .mpg
файл mpeg2 PAL с исходным файлом, масштабированным до высоты 576 пикселей и обрезанным в равной степени слева и справа с соотношением сторон 4: 3 с размерами 720x576, с субтитрами и водяным знаком, жестко запрограммированными в видео.
Для этого я попробовал следующий .bat
файл в Windows, используя 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
Для отдельного файла это работает, но кажется, что есть проблема с ass=%%~nA_outline.ass
частью командного файла, потому что я получаю следующую ошибку:
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.
Я на самом деле новичок в ffmpeg и собрал воедино этот пакетный файл Windows, просмотрев онлайн-руководство ffmpeg и несколько других ответов по SuperUser, поэтому, если я делаю что-то еще, что явно неправильно, пожалуйста, дайте мне знать :-)