2014-03-31 94 views
0

所以我正在尋找一種方法將視頻文件剪切到文件的最後10秒。通常情況下,我會使用FFMPEG或mencoder,但情況是每次剪切文件時要剪切的文件大小不一樣。所以我使用ffmpeg在一般持續時間內發現了一些東西,但問題是我需要的持續時間是在幾秒鐘內而不是00:00:00,因此我可以使用var-10作爲-ss。切割視頻到最後10秒

如果我解釋說不夠好,但總之我不知道:

不同長度的每次跑步是實時視頻,只需要在最後10秒的一個新的文件。 需要一些資源,但仍然很快。

在此先感謝所有回答問題的人!

回答

0

這很容易,但不是很容易,當然不是很快。 一般你想要的是:

  • 獲取視頻的全長。這可能很容易從頭獲得,或者可能非常困難,例如當文件中有RTP流轉儲時,或者文件格式支持(並使用)變量FPS並且在其中沒有「長度」字段時標題。這些情況可能需要播放整個文件以確定長度。

  • 在此長度的-10s之前尋找最接近的關鍵幀。這在使用適當關鍵幀的索引文件的情況下可能非常容易,或者在上述情況下很困難。也可能是唯一的關鍵幀是第一個關鍵幀,所以你需要解碼整個流才能達到最後10秒。

  • 對關鍵幀之後的幾幀進行解碼,直到達到這個-10秒。

  • 重新編碼其餘幀。理論上,如果你的關鍵幀正好在-10秒,你可以在不重新編碼的情況下轉儲數據包,但你不可能如此幸運。