亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 python 加速視頻而不丟幀

如何使用 python 加速視頻而不丟幀

嚕嚕噠 2023-06-27 14:32:21
我有一個時長 1 分 24 秒、幀速率為 10、沒有任何聲音的視頻。我需要將視頻縮短至 28 秒并添加聲音,而不丟幀,并明顯提高 fps。我試圖用MoviePyto 來完成這個任務。clip = VideoFileClip(in_loc)final = clip.fx(vfx.speedx, 3)final.write_videofile(out_loc, audio=audio_loc)但當我檢查文件的詳細信息時,文件仍然是 10 fps。所以這個方法有丟幀的情況。然后我嘗試了以下代碼。clip.write_videofile(out_loc, fps=30, audio=audio_loc)盡管 fps 屬性已增加到 30,但生成的文件仍然長 1 分 24 秒。我該如何實現此目的?注意:所有_loc變量都是包含相應文件位置的字符串。我不介意安裝其他庫。
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

set_fps我想我使用類的屬性找到了解決方案Clip。事實上,該set_fps?函數返回具有修改后的 FPS 計數的剪輯副本。將轉換應用于此副本時,您最終會得到正確的 FPS 數。

由于您沒有提供可重現的示例,我使用了15 秒、24 FPS 并且沒有聲音的庫存視頻(重命名)。dummy_in.mp4我最終使用以下代碼得到了 5 秒的剪輯和 72 FPS:

from moviepy.editor import VideoFileClip

import moviepy.video.fx.all as vfx


in_loc = 'dummy_in.mp4'

out_loc = 'dummy_out.mp4'


# Import video clip

clip = VideoFileClip(in_loc)

print("fps: {}".format(clip.fps))


# Modify the FPS

clip = clip.set_fps(clip.fps * 3)


# Apply speed up

final = clip.fx(vfx.speedx, 3)

print("fps: {}".format(final.fps))


# Save video clip

final.write_videofile(out_loc)

它產生這樣的輸出:


fps: 23.976023976023978

fps: 71.92807192807193

Moviepy - Building video dummy_out.mp4.

Moviepy - Writing video dummy_out.mp4


Moviepy - Done !

Moviepy - video ready dummy_out.mp4


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號