1. 程式人生 > >用mplayer從視頻中按周期提取幀

用mplayer從視頻中按周期提取幀

-s 處理程序 文件中 大於 style 程序 圖片 周期性 dex

使用方法:extract file time step folder

time 設置時間長度

step 設置周期

均以秒(s)為單位

貢獻:1. 從視頻文件中周期性提取圖片;2. Windows下批處理程序的一些技術。

依賴:mplayer

todo: 目前周期最小為1s,可以擴展使頻率大於1Hz.

更詳細的內容可以參考:

http://blog.csdn.net/xuyaqun/article/details/6077917

http://blog.csdn.net/aa846555831/article/details/53400974

http://blog.csdn.net/yjfkpyu/article/details/3694990

 1 @echo off
 2 
 3 :: extract frames
 4 rem echo filename: %1
 5 rem echo time: %2 s
 6 rem echo step: %3 s
 7 rem echo folder: %4 
 8 
 9 if "%4" equ "" (
10   echo Usage: extract file time step folder
11   echo   file: mplayer can play
12   echo   time unit: s
13   echo   step unit: s
14 echo folder: snap saved folder 15 goto :end 16 ) 17 18 if not exist %4 mkdir %4 19 20 set /A length = %2 / %3 21 echo length: %length% 22 23 setlocal enabledelayedexpansion 24 25 set n=0 26 for /L %%i in (0, %3, %2) do ( 27 :: progress info 28 set /A n += 1 29 set /A n = !n! %% 10 30
if !n! equ 0 ( 31 set /A nth = %%i * 100 / %2 32 echo !nth! %% 33 ) 34 35 :: key command 36 mplayer -ss %%i -noframedrop -nosound -vo png -frames 1 %1 > nul 37 38 :: save files because mplayer extracts frame in same name 39 set /A name = %%i / %3 40 move 00000001.png %4\!name!.png > nul 41 ) 42 43 :end

用mplayer從視頻中按周期提取幀