如何解决FFMPEG错误代码:“在过滤器Parsed_scale_10上找不到未标记输入板0的匹配流”; [complex_filter],[-loop 1],[overlay]
我目前正在尝试使用ffmpeg进行测试。
我想制作一个具有.jpg背景图像的视频,上面叠加了多个视频。
目前,我可以在任意数量的视频上覆盖黑色背景。但是我试图将静态图像添加到背景中,然后它不再起作用了。
我的FFMPEG命令行是
command = f"ffmpeg -loop 1 -i background.jpg -i vid1.mp4 -i vid2.mp4 -i vid3.mp4 -i vid4.mp4 -filter_complex "nullsrc=size=1920x1080 [base];
[0:v] setpts=PTS-STARTPTS,scale=320x240 [low];
[1:v] setpts=PTS-STARTPTS,scale=320x240 [upperleft];
[2:v] setpts=PTS-STARTPTS,scale=320x240 [upperright];
[3:v] setpts=PTS-STARTPTS,scale=320x240 [lowerleft];
[4:v] setpts=PTS-STARTPTS; scale=320x240 [lowerright];
[base][upperleft] overlay=shortest=1 [tmp0];
[tmp0][low] overlay=shortest=1:x=420:y=240 [tmp1];
[tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
[tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
[tmp3][lowerright] overlay=shortest=1:x=320:y=240"
-c:v libx264 output.mkv"
这将生成以下错误消息
Input #0,image2,from '/home/leroy/Schreibtisch/FFMPEG_TEST/bild.jpg':
Duration: 00:00:00.04,start: 0.000000,bitrate: 71996 kb/s
Stream #0:0: Video: mjpeg,yuvj420p(pc,bt470bg/unknown/unknown),1920x1080 [SAR 1:1 DAR 16:9],25 fps,25 tbr,25 tbn,25 tbc
Input #1,mov,mp4,m4a,3gp,3g2,mj2,from '/home/leroy/Schreibtisch/FFMPEG_TEST/1.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41isomavc1
creation_time : 2015-08-07T09:13:36.000000Z
Duration: 00:00:30.53,bitrate: 4675 kb/s
Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661),yuv420p(tv,bt709),4486 kb/s,30 fps,30 tbr,30 tbn,60 tbc (default)
Metadata:
creation_time : 2015-08-07T09:13:36.000000Z
handler_name : L-SMASH Video Handler
encoder : AVC Coding
Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D),48000 Hz,stereo,fltp,256 kb/s (default)
Metadata:
creation_time : 2015-08-07T09:13:36.000000Z
handler_name : L-SMASH Audio Handler
Input #2,from '/home/leroy/Schreibtisch/FFMPEG_TEST/2.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2010-03-20T21:29:11.000000Z
encoder : HandBrake 0.9.4 2009112300
Duration: 00:00:05.57,bitrate: 551 kb/s
Stream #2:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),560x320,465 kb/s,90k tbn,60 tbc (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
encoder : JVT/AVC Coding
Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D),mono,83 kb/s (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
Input #3,from '/home/leroy/Schreibtisch/FFMPEG_TEST/3.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2010-03-20T21:29:11.000000Z
encoder : HandBrake 0.9.4 2009112300
Duration: 00:00:05.57,bitrate: 551 kb/s
Stream #3:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),60 tbc (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
encoder : JVT/AVC Coding
Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D),83 kb/s (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
Input #4,from '/home/leroy/Schreibtisch/FFMPEG_TEST/4.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2010-03-20T21:29:11.000000Z
encoder : HandBrake 0.9.4 2009112300
Duration: 00:00:05.57,bitrate: 551 kb/s
Stream #4:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),60 tbc (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
encoder : JVT/AVC Coding
Stream #4:1(eng): Audio: aac (LC) (mp4a / 0x6134706D),83 kb/s (default)
Metadata:
creation_time : 2010-03-20T21:29:11.000000Z
Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_scale_10
我使用Ubuntu 18.04.LST并在Python3.6.9中编程。
我的完整代码为:
from pathlib import Path
import os
suffix = '.mp4'
suffix1 = '.jpg'
os.system("clear")
input_path = Path.home() / "/home/leroy/Schreibtisch/FFMPEG_TEST"
file_paths = [subp for subp in input_path.rglob('*') if suffix == subp.suffix or suffix1 == subp.suffix]
file_paths.sort()
output_path = Path.home() / "/home/leroy/Schreibtisch/FFMPEG_TEST/new"
output_path.mkdir(parents=True,exist_ok=True)
vid1 = '/home/leroy/Schreibtisch/FFMPEG_TEST/1.mp4'
vid2 = '/home/leroy/Schreibtisch/FFMPEG_TEST/2.mp4'
vid3 = '/home/leroy/Schreibtisch/FFMPEG_TEST/3.mp4'
vid4 = '/home/leroy/Schreibtisch/FFMPEG_TEST/4.mp4'
background = '/home/leroy/Schreibtisch/FFMPEG_TEST/bild.jpg'
command = f"ffmpeg -loop 1 -i {background} -i {vid1} -i {vid2} -i {vid3} -i {vid4} -filter_complex \
\"nullsrc=size=1920x1080 [base]; \
[0:v] setpts=PTS-STARTPTS,scale=320x240 [low]; \
[1:v] setpts=PTS-STARTPTS,scale=320x240 [upperleft]; \
[2:v] setpts=PTS-STARTPTS,scale=320x240 [upperright]; \
[3:v] setpts=PTS-STARTPTS,scale=320x240 [lowerleft]; \
[4:v] setpts=PTS-STARTPTS; scale=320x240 [lowerright]; \
[base][upperleft] overlay=shortest=1 [tmp0]; \
[tmp0][low] overlay=shortest=1:x=420:y=240 [tmp1]; \
[tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; \
[tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3]; \
[tmp3][lowerright] overlay=shortest=1:x=320:y=240 \" \
-c:v libx264 output.mkv"
print(command)
os.system(command)
解决方法
有错字。
更改:
[4:v] setpts=PTS-STARTPTS; scale=320x240 [lowerright]; \
收件人:
[4:v] setpts=PTS-STARTPTS,scale=320x240 [lowerright]; \
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。