Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video FFMPEG-获得一致准确的视频时间段_Video_Ffmpeg_Video Editing - Fatal编程技术网

Video FFMPEG-获得一致准确的视频时间段

Video FFMPEG-获得一致准确的视频时间段,video,ffmpeg,video-editing,Video,Ffmpeg,Video Editing,我正在处理大量的视频,这些视频需要时间同步以匹配音频曲目(这是一个“虚拟唱诗班”类型的项目)。我尝试了基于的内容的几种变化,但实际输出文件的变化时间只有几秒钟。结果段长度是可变的,并且输入视频中输出视频开始的点一点都不准确(我预计会出现+-1帧错误) 以下是我的尝试: :: Syntax: GetSegment.bat <input file> <starting time in mS> <duration in mS> :: Example: GetSeg

我正在处理大量的视频,这些视频需要时间同步以匹配音频曲目(这是一个“虚拟唱诗班”类型的项目)。我尝试了基于的内容的几种变化,但实际输出文件的变化时间只有几秒钟。结果段长度是可变的,并且输入视频中输出视频开始的点一点都不准确(我预计会出现+-1帧错误)

以下是我的尝试:

:: Syntax:  GetSegment.bat <input file> <starting time in mS> <duration in mS>
:: Example: GetSegment.bat vid.mp4 10000 50000
::          would produce vid-keyed.mp4 and vid-segment.mp4

@set "_VideoIn=%~1"
@set "_VideoOutKeyed=%~dpn1-keyed%~x1"
@set "_VideoOutSegment=%~dpn1-segment%~x1"
@set "_VideoStartms=%~2"
@set "_VideoLengthms=%~3"
@set /a _VideoEndms= %_VideoStartms% + %_VideoLengthms%
ffmpeg -y -i "%_VideoIn%" -force_key_frames %_VideoStartms%ms,%_VideoEndms%ms "%_VideoOutKeyed%"
ffmpeg -y -ss  %_VideoStartms%ms -i "%_VideoOutKeyed%" -t %_VideoEndms%ms  -codec copy "%_VideoOutSegment%"  
@exit /b %errorlevel%
::语法:GetSegment.bat
::示例:GetSegment.bat vid.mp4 10000 50000
::将生成vid-keyed.mp4和vid-segment.mp4
@设置“\u VideoIn=%~1”
@设置“\u VideoOutKeyed=%~dpn1 keyed%~x1”
@设置“\u VideoOutSegment=%~dpn1段%%x1”
@设置“\u VideoStartms=%~2”
@设置“\u VideoLengthms=%~3”
@设置/a\u VideoEndms=%\u VideoStartms%+%u VideoLengthms%
ffmpeg-y-i“%\u VideoIn%”-强制密钥帧%\u VideoStartms%ms、%\u VideoEndms%ms”%\u VideoOutKeyed%
ffmpeg-y-ss%\u VideoStartms%ms-i“%\u VideoOutKeyed%”-t%\u VideoEndms%ms-编解码器副本“%\u VideoOutSegment%”
@退出/b%errorlevel%