ffmpeg- ক্যামেরা থেকে একটি ছবি নিতে এবং এটি সঞ্চয় করতে ffmpeg ব্যবহার করে


0

নীচের ফাইলটি বেশিরভাগ ক্ষেত্রে যা আমি চাই তা বেশিরভাগই করে। যাইহোক, সময়ের ফর্ম্যাটটি আমি যা চাই তা পুরোপুরি মনে হয় না। ISO8601কম্পিউটারে সময় নির্বিশেষে আমি সর্বদা (উদাহরণস্বরূপ 20150930T012823Z) সময় পেতে পছন্দ করব । যে কিভাবে করা যাবে?

@ECHO off
:: Check the Windows version
IF NOT "%OS%"=="Windows_NT" GOTO:OS
SETLOCAL

:: Initialize variable
SET Error=0

:: Check the command line arguments
IF "%~1"=="" GOTO Syntax
IF "%~2"=="" GOTO Syntax
IF "%~3"=="" GOTO Syntax

set v_barrier=%1
set v_rtspcommand=%2
set v_AccessCard=%3
set v_Pictures=%4
IF "%~4" =="" set v_Pictures=%PUBLIC%\Pictures

:: Keep variables local
SETLOCAL ENABLEDELAYEDEXPANSION

:: Checking if ffmpeg is properly installed as per setting in PATH
IF NOT EXIST "%ffmpeg%\ffmpeg.exe" (
  ECHO ffmpeg.exe could not be found in %ffmpeg%
  GOTO:EOF
)

VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 ECHO Unable to enable extensions

if "%date%A" LSS "A" (set toks=1-3) else (set toks=2-4)
   for /f "tokens=2-4 delims=(-)" %%a in ('echo:^|date') do (
   for /f "tokens=%toks% delims=.-/ " %%i in ('date/t') do (
   set '%%a'=%%i
   set '%%b'=%%j
   set '%%c'=%%k))

if %'yy'% LSS 100 set 'yy'=20%'yy'%
set Today=%'yy'%-%'mm'%-%'dd'%
ENDLOCAL & SET v_year=%'yy'%& SET v_month=%'mm'%& SET v_day=%'dd'%& SET /a last_year=%'yy'%-1

:: Time in ISO 8601 24-hour format
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 ECHO Unable to enable extensions
for /f "tokens=1-4 delims=:,.-/ " %%i in ('echo %time%') do (
  set 'hh'=%%i
  set 'mm'=%%j
  set 'ss'=%%k
  set 'ff'=%%l)
ENDLOCAL & SET v_hour=%'hh'%& SET v_minute=%'mm'%& SET v_second=%'ss'%& SET v_fraction=%'ff'%

:: Barrier = I1-I9 (for Ingress) or E1-E9 (for Egress)
set output_path=%v_Pictures%\%v_barrier%%v_year%%v_month%
if not exist %output_path% mkdir %output_path%

:: Delete folder that is one year old
if exist %v_Pictures%\%v_barrier%%last_year%%v_month% rmdir /s /q %v_Pictures%\%v_barrier%%last_year%%v_month%

:: Ingress / Egress parrier:
IF %v_barrier% GEQ I0 IF %v_barrier% LEQ I99 GOTO:NEXT
IF %v_barrier% GEQ E0 IF %v_barrier% LEQ E99 GOTO:NEXT
GOTO:SYNTAX

:NEXT
set timestring=%v_barrier%%v_year%%v_month%%V_Day%T%v_hour%""%v_minute%%v_second%Z%v_AccessCard%

START "" "%ffmpeg%\ffmpeg" -rtsp_transport tcp -y -i %v_rtspcommand% -nostats -loglevel 0 -pix_fmt yuv420p -f image2 -

vframes 1 -ss 00:00:01.500 -s 1920x1200 %output_path%\%timestring%.jpg
GOTO:EOF

:SYNTAX
ECHO FFMPEGPIS.BAT - FFMPEG Photo Imaging System ver 1.1
ECHO Usage:  FFMPEGPIS         [ Ix or Ex, rtsp, Access Card, Picture folder ]
ECHO.
ECHO Where:  "Ix or Ex"        I = Ingress followed by integer 0-9
ECHO                           E = Egress followed by integer 0-9
ECHO.
ECHO         "rtsp"            command from camera (rtsp)
ECHO         "Access Card"     Short Range Access Card
ECHO         "Picture Folder"  If blank, %PUBLIC%\Pictures will be used
:OS
IF NOT "%OS%"=="Windows_NT" ECHO         OS needs to be Windows NT 4 or higher
:EOF

উত্তর:


0

তারিখ এবং সময় পাওয়ার জন্য এখানে একটি অঞ্চল-স্বাধীন।

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (
  `wmic os get LocalDateTime /VALUE 2^>NUL`
) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j

set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
echo Local date is [%ldt%]

আউটপুট:

Local date is [2015-10-02 20:10:00.000]

আপনার প্রয়োজনের জন্য কেবল পরিবর্তনশীল সম্পাদনা করুন। আপনি এখানে আরও প্রকরণ পেতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.