我在Mac OS 10.10上使用python 2.7和ffmpeg。 時可以使用Python的一些命令,編碼方式類似於下面在Popen上使用子流程選項
p = subprocess.Popen(cmd.strip().split(" "))
這遠遠所有的時間,而不是在ffmpeg的filter_complex情況。 下面的代碼可以直接在終端上運行輸入。
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex " nullsrc=size=1920x1440 [base]; [0:v] setpts=PTS-STARTPTS, scale=1920x1440 [frame0];[1:v] setpts=PTS-STARTPTS, scale=640x480 [frame1]; [base] [frame0] overlay=shortest=1:x=1920:y=1440 [tmp1]; [tmp1] [frame1] overlay=shortest=1:x=640:y=480 output.mp4
但是不能用下面的python Popen腳本運行。
cmd = "ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex " nullsrc=size=1920x1440 [base]; [0:v] setpts=PTS-STARTPTS, scale=1920x1440 [frame0];[1:v] setpts=PTS-STARTPTS, scale=640x480 [frame1]; [base] [frame0] overlay=shortest=1:x=1920:y=1440 [tmp1]; [tmp1] [frame1] overlay=shortest=1:x=640:y=480 output.mp4"
p = subprocess.Popen(cmd.strip().split(" "))
這有問題在分裂(「」)工程意想不到的細分。 所以我直接準備拆分命令狀
split_cmd = [ffmpeg_exe,'-i','input1.mp4','-i','input2.mp4','-filter_complex','\" nullsrc=size=1920x1440 [base]; [0:v] setpts=PTS-STARTPTS, scale=1920x1440 [frame0];[1:v] setpts=PTS-STARTPTS, scale=640x480 [frame1]; [base] [frame0] overlay=shortest=1:x=1920:y=1440 [tmp1]; [tmp1] [frame1] overlay=shortest=1:x=640:y=480\"','output.mp4'];
p = subprocess.Popen(split_cmd)
即使在這種情況下,系統返回
[AVFilterGraph @ 0x7fb1c9f000c0] No such filter: '" nullsrc'
Error configuring filters.
這可能是系統混淆了-filter_complex選項,因爲ffmpeg的選項。 任何人都可以幫助這個,請。
非常感謝。究竟。 – yumyumyum
@yumyumyum我的榮幸。如果解決了您的問題,請接受答案。 – MisterMiyagi