ffmpeg filter_complex 不适用于文本文件输入

问题描述 投票:0回答:0

我有一个有效的 ffmpeg 命令,它需要 4 个输入文件 https://file.io/DllNlkCqX6J6

(2 个音频,2 个图像)然后使用 filter_complex 字符串渲染 .mkv 视频,该字符串告诉 ffmpeg 连接两个音频文件并为两个图像制作幻灯片。

filter_complex 字符串依赖于输入文件的顺序。

例如:filter_complex 中的

[0:a][1:a]concat=n=2:v=0:a=1[a]
告诉 ffmpeg 获取 index=0 输入音频文件和 index=1 输入音频文件,并连接它们。

然后,

[2:v]
部分告诉 ffmpeg 获取 index=2 图像文件(我们从零开始计算索引,因此 index=2 实际上是第三个文件,即“3.sidea.jpg”)

ffmpeg 

-r 2 -i "C:\Users\martin\Documents\album\a1 - in the beginning.mp3" 
-r 2 -i "C:\Users\martin\Documents\album\a2 - stratovarious.mp3" 
-r 2 -i "C:\Users\martin\Documents\album\3 sidea.jpg" 
-r 2 -i "C:\Users\martin\Documents\album\4 sideb.jpg" 

-filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[a];[2:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v2];[3:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v3];[v2][v3]concat=n=2:v=1:a=0,pad=ceil(iw/2)*2:ceil(ih/2)*2[v]" 

-map [v] -map [a] -c:a pcm_s32le -c:v libx264 -bufsize 3M -crf 18 -pix_fmt yuv420p -tune stillimage -t 309.95 
"C:\Users\martin\Documents\album\working.mkv"

此命令有效,但我对 2k+ 音频输入文件使用相同的格式,我达到了终端命令行字符限制。所以我试图将我的输入文件移动到文本文件

input_files.txt

file 'C:\Users\martin\Documents\album\a1 - in the beginning.mp3'
file 'C:\Users\martin\Documents\album\a2 - stratovarious.mp3'
file 'C:\Users\martin\Documents\album\3 sidea.jpg'
file 'C:\Users\martin\Documents\album\4 sideb.jpg'

相同的文件,以相同的顺序。但是使用这个 input_text.txt 文件运行我的新命令:

ffmpeg 

-f concat -safe 0 -i input_files.txt

-filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[a];[2:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v2];[3:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v3];[v2][v3]concat=n=2:v=1:a=0,pad=ceil(iw/2)*2:ceil(ih/2)*2[v]" 

-map [v] -map [a] -c:a pcm_s32le -c:v libx264 -bufsize 3M -crf 18 -pix_fmt yuv420p -tune stillimage -t 309.95 
"C:\Users\martin\Documents\album\working.mkv"

导致有关 filter_complex 索引号的错误:

[mp3 @ 0000025d87057700] Estimating duration from bitrate, this may be inaccurate
Input #0, concat, from 'input_files.txt':
  Duration: N/A, start: 0.000000, bitrate: 320 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
Invalid file index 1 in filtergraph description [0:a][1:a]concat=n=2:v=0:a=1[a];[2:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v2];[3:v]scale=w=1920:h=1920:force_original_aspect_ratio=decrease,pad=1920:1920:-1:-1:color=white,setsar=1,loop=309.95:309.95[v3];[v2][v3]concat=n=2:v=1:a=0,pad=ceil(iw/2)*2:ceil(ih/2)*2[v].

几乎就像是将

-i input_files.txt
视为它自己的 index=0 文件。我尝试了不同的修复方法,但没有成功。

如何将我的 filter_complex 字符串与文本文件一起用作我的 ffmpeg 命令文件输入的来源?

bash audio ffmpeg command-prompt
© www.soinside.com 2019 - 2024. All rights reserved.