[英]Create thumbnail from video using ffmpeg
我不知道在上傳時制作屏幕截圖的方法,但我知道之后該怎么做。
最簡單的代碼是:
ffmpeg -i input.mp4 -ss 00:00:01.000 -vframes 1 output.png
上傳文件后運行此腳本。 如果在視頻開頭截取屏幕截圖,則只需很短的時間。 (例如第一分鍾)。
我認為在文件仍在上傳時無法截取屏幕截圖。
編輯:刪除了-f image2
因為 ffmpeg 猜測它是正確的
根據此文檔https://trac.ffmpeg.org/wiki/Seeking和我的個人測試,您應該像這樣更改 -ss 和 -i 的位置
ffmpeg -ss 00:00:01.000 -i input.mp4 -vframes 1 output.png
由於不進行視頻解碼,操作將變得更快。 視頻將使用關鍵幀來解析,這非常快。
$ffmpegPath = exec('哪個 ffmpeg'); $ffprobePath = exec('哪個ffprobe');
$command = "$ffprobePath -v 錯誤 -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $input_video"; $video_duration = shell_exec($command);
$thumbnails_output = '輸出%02d.png'; $command = "$ffmpegPath -i $input_video -vf fps=3/$video_duration $thumbnails_output"; shell_exec($command)
這是我的 bash 腳本,用於創建視頻的 n 個縮略圖(在示例中有 11 個,但您可以更改它)它在整個視頻長度上定期執行此操作。
#!/bin/bash
for input_video in "$@"
do
duracion=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$input_video");
#echo $duracion;
ffmpeg -i "$input_video" -vf fps=11/$duracion "$input_video%02d.png";
#echo " ffmpeg -i \"$input_video\" -vf fps=3/$duracion \"$input_video%02d.png\"";
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.