2017-08-02 246 views
6

我試圖將視頻剪輯(MP4,yuv420p)從30 fps轉換爲24 fps。幀數是正確的,所以我的輸出應該從30fps的20分鐘變爲24fps的25分鐘。其他一切應該保持不變。使用ffmpeg更改幀率

嘗試盡我所能我用ffmpeg嘗試轉換幀率,但更改幀數以保持相同的持續時間或更改持續時間而不更改幀率。

所以我一直在嘗試像這樣的東西;

ffmpeg -y -r 30 -i seeing_noaudio.mp4 -r 24 seeing.mp4 

(我在windows上這樣做,但通常會在Linux上)。這會轉換幀率,但會丟幀,所以總持續時間不變。

或者我已經試過

ffmpeg -y -i seeing_noaudio.mp4 -filter:v "setpts=1.25*PTS" seeing.mp4 

這改變了時間,但不幀率。

當然,我應該可以用一個ffmpeg命令做到這一點,而無需重新編碼,甚至有些人建議回到原始的原始幀。

請幫助

回答

10

有了重新編碼:

ffmpeg -y -i seeing_noaudio.mp4 -vf "setpts=1.25*PTS" -r 24 seeing.mp4 

,無需重新編碼:

第一步 - 提取視頻原始比特流

ffmpeg -y -i seeing_noaudio.mp4 -c copy -f h264 seeing_noaudio.h264 

Remux的新幀率

ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4 
+0

謝謝你。第一個工作,但第二個沒有沿着「無法爲輸出文件#0編寫頭文件(不正確的編解碼器參數?):無效參數」行返回錯誤消息。我不知道這是什麼意思,但第一個工作。 –

+0

看起來像視頻編解碼器不是H.264。這是什麼? – Mulvya