![FFMPEG - 將影片轉換為縮時攝影](https://rvso.com/image/1414635/FFMPEG%20-%20%E5%B0%87%E5%BD%B1%E7%89%87%E8%BD%89%E6%8F%9B%E7%82%BA%E7%B8%AE%E6%99%82%E6%94%9D%E5%BD%B1.png)
我在 flash 產生器(操作腳本 3)中使用 ffmpeg 將影片轉換為影片的延時影片。我已經弄清楚如何使用 setpts 來執行此操作,但生成的輸出檔案與輸入的長度相同(僅在時間流逝後顯示最後一幀),我希望根據傳遞的設定更改持續時間到 ffmpeg。
我首先透過命令列嘗試以下操作:
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
任何幫助將不勝感激!
答案1
問題解決了。我沒有刪除音頻,所以大概它在視頻的整個時間裡都在播放幾乎空的音頻文件。
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4
-an
從影片中刪除音訊。
答案2
這裡有一些關於加速音訊的更多細節。您最多可以執行 2 倍,但您可以欺騙它以加快速度(來源):
加快/減慢音訊速度
你可以加快或減慢速度聲音的與 Atempo 音訊過濾器。要將音訊速度加倍:
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
atempo 過濾器僅限於使用 0.5 到 2.0 之間的值(因此它可以將其減慢至不少於原始速度的一半,並且加速至不超過輸入的兩倍)。如果需要,您可以透過將多個 Atempo 過濾器串在一起來繞過此限制。以下將音訊速度提高四倍:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv
使用複雜的過濾圖,您可以同時加速視訊和音訊:
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv