簡體   English   中英

ffmpeg使用表達式進行切片過濾器

[英]ffmpeg using an expression for tile filter

有什么辦法可以為ffmpeg的'tile'過濾器提供表達式? 我已經嘗試過可以想到使用不同的轉義字符和引號的每種組合,但是除了“ 10x10”之類的顯式字符串外,它不接受任何其他內容。 請參見下面的示例:

ffmpeg -i "big_buck_bunny.mp4" -vf "tile=10x10" grid_%d.jpg

我希望能夠執行以下操作:

ffmpeg -i "big_buck_bunny.mp4" -vf "tile=expr(n*2)x10" grid_%d.jpg

其中“ n”是當前幀號。 這不是我要使用的確切表達,但想從一個簡單的示例開始,然后我就可以適應一個更復雜的表達。 我嘗試過的所有操作都會給我一個錯誤,如下所示:

[tile @ 0x7facc1d000c0] Unable to parse option value "expr(n*2)x10" as image size

瓦片可以簡單地不接受表達式嗎? 還是我應該嘗試某種連接功能?

我沒有完全回答您的問題,但這可能有助於查找它。

如果要基於幀數進行計算,則可能必須nb_framesffprobe -show_streams -i "big_buck_bunny.mp4"的輸出中提取nb_frames屬性。 然后,您可以執行計算,並使用正確的圖塊過濾器將結果插入命令中。

如果您正在尋找一種僅從視頻中提取一定數量的幀並將其合並為一個文件的方法,我建議在此網站上推薦該教程: http : //www.binpress.com/tutorial/how-to -generate-視頻預覽與- FFMPEG / 138

生成預覽只是ffmpeg捕獲圖像並將它們連接成單個長膠卷的另一種方式。

ffmpeg -loglevel panic -y -i "video.mp4" -frames 1 -q:v 1 -vf "select=not(mod(n\\,40)),scale=-1:120,tile=100x1" video_preview.jpg

  • -loglevel緊急我們不想看到任何輸出。 如果您發現問題出在哪里,可以刪除此選項。
  • -i“ $ MOVIE”輸入文件。
  • -y覆蓋任何現有的輸出文件。
  • -frames 1告訴ffmpeg該命令的輸出只是一幅圖像(一幀)。
  • -q:v 1輸出質量,0為最佳。
  • -vf select =這就是所有魔術發生的地方。 這是視頻過濾器的選擇器功能。
    • not(mod(n \\,40))每40幀選擇一幀,請參閱文檔。
    • scale = -1:120調整框架大小以適合120px的高度,並且自動調整寬度以保持正確的寬高比。
    • tile = 100x1將捕獲的幀布局到此網格中。

暫無
暫無

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

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