[英]assign date and time to output file
我正在进行ffmpeg
屏幕捕获,因此我不想在启动时开始记录,因此每次开始记录时我都需要给输出视频文件一个不同的名称,但我确实发现这个问题与我需要的非常接近,所以我最终在批处理文件中使用了以下命令:
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/" %%a in ('time /t') do (set mytime=%%a%%b)
cd /d E:\ffmpeg\bin
ffmpeg -f dshow -i video="screen-capture-recorder"
-c:v libx264 -r 10 -crf 37 -pix_fmt yuv420p E:\%mydate%_%mytime%.flv
现在我在ffmpeg cmd中收到错误:[NULL @ 0270d2c01]无法为'E:-04-2014_02:35'找到合适的输出格式
E:-04-2014_02:35无效的参数
我知道这是因为mytime
的特殊字符:
但是我不知道如何更改它。
**编辑后用_
分隔日期和时间
如果只需要唯一的文件名,请不要乱用特殊字符和本地化格式。 您可以使用:
for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set DateTime=%%i
set DateTime=%DateTime:~0,8%_%DateTime:~8,6%
REM or: set filename=%DateTime:~0,8%_%DateTime:~8,6%.flv
echo %DateTime%
编辑为“问题是文件名像这个20140204_161529,而我不想像2014_02_04_16_15_29”:在for
循环中使用这个:
set oldfilename=%DateTime:~0,8%_%DateTime:~8,6%.flv
set newfilename=%DateTime:~0,4%_%DateTime:~4,2%_%DateTime:~6,2%_%DateTime:~8,2%_%DateTime:~10,2%_%DateTime:~12,2%.flv
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.