首页 > 解决方案 > 处理输入时发现无效数据 | ffmpeg

问题描述

我正在尝试使用 ffmpeg 连接多个视频,我使用文本文件作为输入,但我得到“Files.txt:处理输入时发现无效数据”。

我的命令:

ffmpeg -i Files.txt -filter_complex "[0:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v0];[0:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a0];[1:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v1];[1:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1" -movflags +faststart output.mp4

我的文本文件:

file '1.mp4'
file '2.mp4'

标签: ffmpeg

解决方案


只有 concat demuxer 接受文本文件列表

要么使用concat demuxer

ffmpeg -f concat -i input.txt output.mp4

或正常列出输入并使用concat 过滤器

ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v0];[0:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a0];[1:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v1];[1:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1" -movflags +faststart output.mp4

除非您使用如上所示的 concat demuxer,或者您在 shell 中使用某些功能将列表解释为输入,否则您不能使用列出输入的文本文件。ffmpeg没有这样的功能。


推荐阅读