ffmpeg segment_frames 預期結果

ffmpeg segment_frames 預期結果

我試圖根據輸入 ffmpeg 的一組幀範圍來分割更大的視訊。有關 -f 段 -segment_frames 選項以及期望/產生什麼的一些問題。這是我正在運行的:

ffmpeg -i full_movie.mov -f segment -segment_frames 123 -reset_timestamps 1 -c:a copy -map 0 "/Users/sjan/Desktop/%03d_test.mov"

ffmpeg -i full_movie.mov -f segment -segment_frames 124, 163 -reset_timestamps 1 -c:a copy -map 0 "/Users/sjan/Desktop/%03d_test.mov"

第一個 ffmpeg 指令會從 0 到 123 還是 1 到 123?

讀取QT電影時帶有-segment_frames選項的ffmpeg是否從0開始,考慮到在QT中打開該電影時從0開始?如果它從 0 開始,我是否應該通過減去 1 來為其提供幀範圍來解決這個問題?我看到在適當範圍內的結果不一致,很可能是由於這個原因。

答案1

是的,segment_frames 從 0 開始。

因此,-segment_times 124,163告訴 ffmpeg 為幀 0-123、124-162 和 163-END 分別建立一個段。但是,如果這些起始幀不是關鍵幀,ffmpeg 將以這些幀之後找到的第一個關鍵幀開始該片段。

新增-break_non_keyframes 1以對指定幀強制分段。但是,如果該片段獨立播放,則在找到關鍵影格之前,初始影格可能無法正確解碼。由於您正在編碼視頻,因此您可以通過添加在分段點處強制關鍵幀-force_key_frames expr:eq(n\,124)+eq(n\,163)

相關內容