簡體   English   中英

如何使用avconv和python將兩個不同幀速率的不同圖像序列組合到視頻中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM