2014-11-05 81 views
0

我有一個叫ffprobe.log該文件包含這樣的文字:計算數量

ffprobe version N-63113-g72dcd48 Copyright (c) 2007-2014 the FFmpeg developers 

Duration: 00:00:35.37, start: 0.000000, bitrate: 60268 kb/s 

我應該做這個操作:

1)isulate的從符號開始的持續時間值HH:MM:SS:毫秒:分鐘:秒:毫秒

2)將整個值乘以25(視頻pal模式),例如在這種情況下爲35.37(秒) x 25(frames)== 884,25

3)向下取整= 884

4)把值884中的可變%number_Of_Frames_at_25fps%I

何可以做什麼?非常感謝!

(NB:幀0 +幀1 +式2 + ...... + frame24 == 1秒)

+0

僅僅因爲一些在命令行上運行或使用批處理文件或任何其他「包含文本的黑盒子」*不表示它是DOS! – 2014-11-05 15:27:32

回答

0

有了一些變化this,但同樣的想法

@echo off 
    setlocal enableextensions disabledelayedexpansion 
    set "frameRate=25" 

    for /f "tokens=2" %%a in (' 
     type ffprobe.log ^| findstr /b /c:"Duration:" 
    ') do set "timecode=%%a" 
    set "timecode=:%timecode:.=:%" 

    for /f "tokens=1-4 delims=:," %%a in (
     "%timecode::0=: %"  
    ) do set /a "number_Of_Frames_at_%frameRate%fps=((%%a00)*3600 + (%%b00)*60 + (%%c00) + (%%d0)/10) * %frameRate%/100" 

    echo %number_Of_Frames_at_25fps% 
+0

請考慮只有一個名爲duration.txt的.txt文件,其中包含:0:00:35.368667請你可以將唯一的例程轉換爲frame_number中的這個表示法嗎? – user3572760 2014-11-05 16:38:11

+0

@ user3572760 remove'「tokens = 2」',改變''type ...^| | findstr ...'到文件名,將'(%% d0)/ 10'改成'(%% d0)/ 100000' – 2014-11-05 18:09:31