ここでは、最初と 2 番目の 30 秒のビデオ ファイルを「path/connect.flv」からファイル output1.flv と output2.flv にカットしようとしました。できます。これら 2 つのファイルを連結して、長さ 60 秒の新しいファイル「final.flv」を形成することができました。したがって、これは機能し、出力 output1.flv [30sec]、output2.flv[30sec]、および final.flv[1min] を取得しています。
Pythonコードは次のとおりです。
import subprocess
ffmpeg_command1 = ["ffmpeg", "-i", "/home/xincoz/test/connect.flv", "-acodec", "copy", "-ss", "00:00:00", "-t", "00:00:30", "/home/xincoz/test/output1.flv"]
ffmpeg_command2 = ["ffmpeg", "-i", "/home/xincoz/test/connect.flv", "-acodec", "copy", "-ss", "00:00:30", "-t", "00:00:30", "/home/xincoz/test/output2.flv"]
ffmpeg_command3 = ["mencoder", "-forceidx", "-ovc", "copy", "-oac", "pcm", "-o", "/home/xincoz/test/final.flv", "/home/xincoz/test/output1.flv", "/home/xincoz/test/output2.flv"]
subprocess.call(ffmpeg_command1)
subprocess.call(ffmpeg_command2)
subprocess.Popen(ffmpeg_command3)
しかし、私が本当に望んでいるのは、「/home/xincoz/test/output1.flv」と「/home/xincoz/test/output2.flv」を連結する代わりに、2 つの文字列 out1 と out2 を連結し、これら 2 つをファイルに連結することです。では、文字列 out1 と out2 を mencoder への入力として解析するにはどうすればよいでしょうか? 結果を達成するために私のコードを編集してください。
import subprocess,os
ffmpeg_command = ["ffmpeg", "-i", "/home/xincoz/test/connect.flv", "-acodec", "copy", "-ss", "00:00:00", "-t", "00:00:30","-f", "flv", "pipe:1"]
p = subprocess.Popen(ffmpeg_command,stdout=subprocess.PIPE)
out1, err = p.communicate()
ffmpeg_command1 = ["ffmpeg", "-i", "/home/xincoz/test/connect.flv", "-acodec", "copy", "-ss", "00:00:30", "-t", "00:00:30","-f", "flv", "pipe:1"]
p1 = subprocess.Popen(ffmpeg_command1,stdout=subprocess.PIPE)
out2, err1 = p1.communicate()
ffmpeg_command2 = ["mencoder", "-forceidx", "-ovc", "copy", "-oac", "pcm", "-o", "/home/xincoz/test/final.flv", out1, out2 ]
p2=subprocess.Popen(ffmpeg_command2)
私を助けてください。よろしくお願いします。