ffmpeg - -copyts를 사용하여 실제 타임코드를 유지하는 것이 가능합니까?

ffmpeg - -copyts를 사용하여 실제 타임코드를 유지하는 것이 가능합니까?

간단한 작업입니다. -copyts실시간 타임코드를 사용 하여 변환된 비디오 클립을 만들고 싶습니다 . 예를 들어, 이 명령으로 변환된 클립은 다음과 같습니다.

ffmpeg -hide_banner -ss 57:41.76 -i input.mp4 -copyts -fs 4085Ki -vf scale=1280:-1 -c:v libvpx -crf 10 -b:v 1000K -maxrate:v 1600K -bufsize 800Ki -threads 4 -quality good -cpu-used 5 -c:a libvorbis -b:a 64Ki -maxrate:a 128Ki input.webm

지속 시간은 31초이지만:

frame=  938 fps=7.7 q=0.0 Lsize=    4089kB time=00:58:13.15 bitrate=   9.6kbits/s speed=28.8x

58:13.15분이라고 나와있습니다.

-copyts명령 코드를 제거하여 정상적인 기간을 달성할 수 있지만 내가 사용하는 전체 이유 는 58:13.15로 설정하고 계속 진행할 -copyts수 있기 때문에 매번 다음 세그먼트를 계산할 필요가 없도록 하기 위한 것입니다 .-ss

질문에 대해서는 변환된 파일 기간을 수정할 수 있는 방법이 있나요?없이다시 변환해? 메타데이터 수정을 좋아하시나요?

나는 Windows 7을 사용하고 있습니다.

답변1

난 그냥 그래야만 했어요 -c copy. 잊어버렸어요:

모든 새 클립을 새 폴더(webm 제안)에 넣고 해당 폴더 안에 이름이 다른 폴더를 만들고 new다음을 수행하세요.

ffmpeg -i input.webm -c copy new\output.webm

자동화된 프로세스의 경우 다음을 수행하십시오.

for %i in ("*.webm") do ffmpeg -i %i -c copy new\%~ni.webm

-c copy그러면 변환한 모든 클립에 대해 명령이 반복됩니다 .

관련 정보