簡體   English   中英

使用 FFmpeg 修剪視頻並在其上添加回旋鏢效果

[英]Trim a video and add the boomerang effect on it with FFmpeg

我有一個給定的源視頻,總共 30 秒長。 現在我想修剪前 5 秒並對其應用回旋鏢效果。 這就是我目前所在的命令:

ffmpeg -i src.mp4 -y -an -filter_complex "[0]trim=start=0:end=5[a];[a]reverse[r];[a][r]concat,loop=0:250,setpts=N/30/TB" out.mp4

我對 ffmpeg 相對較新,我正在嘗試了解原理,但我有點掙扎。 在閱讀了一些文檔后,我了解到第一個括號 [0] 是用於操作的源 stream,前導括號是 output ZF7B44CFAFD5C52223D5498196C8A2E 等名稱,因此可以繼續使用其他操作。

這就是我用 [a] 嘗試的,它應該充當我修剪視頻的 output stream。 但這並沒有奏效。

我發現的另一種方法是使用-ss 0 -t 5 ,但這會在處理結束時對其進行修剪,因為 ffmpeg 會在整個 30 秒內應用我的操作並在之后丟棄 25 秒,因此效率低下。

我理解錯了什么,我該如何解決?

像這樣的東西?

ffmpeg -i src.mp4 -filter_complex "
[0]trim=start=0:end=5[a];
[0]trim=start=0:end=5,reverse[b];
[a][b]concat
" -an out.mp4 -y -hide_banner

我發現的另一種方法是使用-ss 0 -t 5 ,但這會在處理結束時對其進行修剪,因為 ffmpeg 會在整個 30 秒內應用我的操作並在之后丟棄 25 秒,因此效率低下。

請記住,所有標志都適用於下一個輸入/輸出文件。

如果您只想讀取輸入文件的前 5 秒,則必須將-ss 0 -t 5放在-i標志之前

ffmpeg -ss 0 -t 5 -an -i src.mp4 -y -filter_complex "[0]split[b][c];[c]reverse[r];[b][r]concat" out.mp4

這將僅在src.mp4的前 5 秒運行過濾器鏈。

如果將-ss 0 -t 5放在輸入文件之后,它將適用於 output out.mp4 ,因此將處理完整的輸入文件,但僅將結果的前 5 秒寫入out.mp4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM