ffmpeg - 处理输入时发现无效数据 | 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'
解决方案
只有 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
没有这样的功能。
推荐阅读
- docker - Docker for Windows 无法访问 RabbitMQ ip,除非端口绑定到 localhost
- javascript - Deno 中 writeJson 的格式输出
- python - 打印特定行之后的行
- angular - MarkerWithLabel 不是构造函数
- objective-c - 如何从具有隐藏变量名称(参数前的_)或内部+外部(例如foo(带bar:))的Objective-C调用Swift函数
- image - 关于 GitHub 中的匿名图片 URL
- python - SyntaxError:在对文件名进行字符串插值时扫描字符串文字时出现 EOL
- google-apps-script - 错误异常:访问具有 ID 的文档时服务电子表格失败
- javascript - html/css中按钮的对齐方式
- javascript - 如何在 JS 中使用 fetchSignInMethodsForEmail 检查电子邮件是否已注册?