![](/img/trans.png)
[英]How do you run two programs in python simultaneously at different frame rates?
[英]How to combine two differnt Image Sequences at different Frame Rates Into A Video with avconv & python?
我有兩組圖像,分別與avconv組合使用時沒有問題(使用-r使用不同的速率),一組設置為-r .20(將一幅圖像擴展到五秒鍾的視頻),另一組設置為常規幀速率為定期整理視頻。
當我嘗試將這些單獨的avi文件與avconv或avimerge合並時,所得視頻僅具有第一個視頻的幀速率(-r .20)
有沒有一種方法可以將這兩個序列組合在一起,並且兩個序列都以它們導出時的幀速率為准?
這是我在這里放在一起的草率代碼:
try:
p = subprocess.Popen(["avconv" , "-y" , "-r" , ".20" , "-i" , "head%03d.jpg" , "-i" , audio , head_video_filename], universal_newlines=True, stdout=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError:
pass
else:
print "] ENCODING OF HEADER.AVI FINISHED:" + str(retcode)
try:
p = subprocess.Popen(["avconv" , "-y" , "-i" , "tail%03d.jpg" , "-r" , "25" , tail_video_filename], universal_newlines=True, stdout=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError:
pass
else:
print "] ENCODING OF TAIL.AVI FINISHED:" + str(retcode)
try:
group_of_videos = "concat:"+head_video_filename+"|"+tail_video_filename
p = subprocess.Popen(["avconv" , "-i" , group_of_videos , "-c" , "copy" , full_video_filename] , universal_newlines=True, stdout=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError:
pass
else:
print "] ENCODING OF FULL_VIDEO.AVI FINISHED:" + str(retcode)
return
#
我大概知道了。 這些是我采取的步驟,雖然時間更長,但它或多或少為我提供了來自不同來源的兩個視頻,分別為圖像和幀頻,可以將它們編碼在一起並為結束視頻添加單獨的音樂曲目。 它確實運作良好,但仍然需要調整幀速率(30、29.X等以使其正確)
編碼以.2輸入的第一個視頻序列並以30FPS導出try:
p = subprocess.Popen(["mencoder" , "-forceidx" , "-ovc" , "copy" , "-o" , combined_video_filename , first_video_filename , second_video_filename] , universal_newlines=True, stdout=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError:
"* FAILED TO MAKE COMBINED VIDEO"
pass
else:
print "] ENCODING OF COMBINED VIDEO FINISHED:" + str(retcode)
以29.7FPS編碼輸入的第二個視頻序列,並以30FPS導出
try: p = subprocess.Popen(["avconv" , "-stats" , "0" , "-y" , "-i" , "second%03d.jpg" , "-crf" , "1" , "-b" , "65536k" , "-s" , "1280x720" , "-r" , "30" , second_video_filename], universal_newlines=True, stdout=subprocess.PIPE) out, err = p.communicate() retcode = p.wait() except IOError: pass else: print "] ENCODING OF SECOND VIDEO FINISHED: " + str(retcode)
結合AVI
try: p = subprocess.Popen(["mencoder" , "-forceidx" , "-ovc" , "copy" , "-o" , combined_video_filename , first_video_filename , second_video_filename] , universal_newlines=True, stdout=subprocess.PIPE) out, err = p.communicate() retcode = p.wait() except IOError: "* FAILED TO MAKE COMBINED VIDEO" pass else: print "] ENCODING OF COMBINED VIDEO FINISHED:" + str(retcode)
#添加音頻混音軌道
try: p = subprocess.Popen(["avconv" , "-stats" , "0" , "-y" , "-i" , combined_video_filename , "-i" , combined_audio , "-c" , "copy" , "-crf" , "1" , "-b" , "65536k" ,"-shortest" , final_video_filename] , universal_newlines=True, stdout=subprocess.PIPE) out, err = p.communicate() retcode = p.wait() except IOError: "* FAILED TO MAKE FINAL VIDEO" pass else: print "] ENCODING OF FINAL VIDEO FINISHED: " + str(retcode)
火腿拳頭,但希望這有一天可以幫助某人
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.