3

ここでは、最初と 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)

私を助けてください。よろしくお願いします。

4

1 に答える 1

0

コードがどのように失敗するかは述べていませんが、MEncoder バイナリ文字列をコマンド ライン パラメータとして指定しようとしているようです。http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-selecting-input.htmlは、ファイルの内容ではなく、コマンドラインでファイル名を指定できると述べています。

あなたの質問に答えるために:

with open('merged.flv', 'wb') as f:
    f.write(out1 + out2)

ffmpeg_command2 = ["mencoder", "your", "other", "args", "merged.flv"]
于 2013-07-26T13:49:10.760 に答える