在使用moviepy的fl_time方法進行時間特效處理時報錯:ValueError: Attribute ‘duration’ not set
出現報錯的原因有2種,一是因爲未設置剪輯的duration屬性,二是雖然調用了set_duration設置剪輯的duration,但set_duration方法不是改變調用者的時長,而是生成一個原剪輯的拷貝將其時長設置爲新值。
要解決該問題有2個方法,一是fl_time進行變換處理時,設置參數keep_duration = True ,或者手工設置剪輯的duration,且記錄下set_duration返回的剪輯對象,以該對象進行後續處理。
更多時間特效的處理請參考《moviepy音視頻剪輯:使用fl_time進行諸如快播、慢播、倒序播放等時間特效處理的原理和可能遇到的坑》