file batch untuk subtitle hardcoding dalam beberapa video dengan ffmpeg

1

Pertanyaan saya di atas :

Apa cara yang benar untuk merujuk ke nama file dinamis untuk assfilter saat menggunakan -filter_complexdi ?


Kisah dan upaya saya :

Saya memiliki folder yang berisi .mp4file widcreeen (16: 9) , ukuran bingkai 1920x1080. Untuk setiap file mp4, saya juga memiliki .assfile subtitle dengan pola penamaan originalfilename_outline.ass. Akhirnya, ada transparan .pngyang berfungsi sebagai tanda air untuk video.

Target utama saya adalah .mpgfile mpeg2 PAL DVD dengan file input yang diubah ke ketinggian 576px, dan dipangkas secara rata di kiri dan kanan ke rasio aspek 4: 3 dengan dimensi 720x576, dan dengan subtitle dan tanda air yang dikodekan dengan keras ke dalam video.

Untuk ini, saya sudah mencoba .batfile berikut di Windows, menggunakan .

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

Untuk file individual, ini berfungsi, tetapi sepertinya ada masalah dengan ass=%%~nA_outline.assbagian file batch karena saya mendapatkan kesalahan berikut:

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.

Saya sebenarnya baru menggunakan dan saya telah mengumpulkan file batch Windows ini dengan menelusuri manual ffmpeg online dan beberapa jawaban lain pada SuperUser, jadi jika ada hal lain yang saya lakukan yang jelas-jelas salah, tolong izinkan saya tahu :-)

Ananda Mahto
sumber

Jawaban:

3

Variabel indeks untuk FORloop adalah case-sensitive. Anda perlu mengubah %%~nAke %%~na(atau memanfaatkan kejadian lainnya).

G-Man
sumber
1
Sobat, saya merasakan telapak tangan muncul di ....
Ananda Mahto