-f 대신 duration을 사용하면 ffmpeg가 매우 느려집니다.


0

내가하고있는 것:

슬라이드 쇼 스크립트로 작업하고 있습니다. 의미, 나는 ffmpeg를 사용한다. 연결된 디멀티어 (files.txt)를 제공하여 ffmpeg에 .jpg 슬라이드 쇼용 파일.

과거에는 모든 이미지가 각각 3 초 동안 표시되기를 원했기 때문에 ffmpeg의 프레임 레이트 플래그 (오용)를 사용했습니다. -r 1/3 완벽하게 그리고 정말로 빠르다 (모든 600 이미지에 대해 약 10 초).

지금하고 싶은 일 :

이제는 슬라이드 쇼의 지속 시간을 변경하여 더 역동적으로 보이기를 원했습니다 (더 재미있는 것들에 대해서는 더 길어지는 등등). 그래서, 나는 framerate 플래그를 버리고 duration 3 concat 파일에서. 물론 각 파일에 대해 정확한 시간 (초)이 있어야합니다. 어떤 작품 - 일종의.

내 유일한 문제는 : 이제 ffmpeg가 스크립트를 실행하는 데 오래 걸립니다. 뿐만 아니라 조금만 걸리지 만 약 30 배의 시간이 소요됩니다. 이미 사용하고 있지만 -c:v libx264 -preset ultrafast.

따라서, 더 이상 사용하기에 더 이상 실용적이지 않습니다. 내가 놓친 것이 있습니까? 아니면 세 번째 방법이 있습니까?

편집하다:

ffmpeg가주의를 끄면이 경고가 표시됩니다. More than 1000 frames duplicated. 정적 이미지가 25fps (기본값)에서 최대 5 초 동안 표시되는 경우에는 해당되지 않습니다.

종류는 안부한다!


적은 수의 이미지로 시도하고 결과 비디오의 프레임 속도를 확인하십시오. 너무 높을 수 있습니다.
Daniel B

가장 작은 기간은 얼마입니까?
Gyan

@ DanielB 나는 약 30 개의 파일로만 테스트를했으며 약 20 초가 걸렸습니다. 그래서 나는 600 개의 파일을 모두 ffmpeg에 던지지 않았습니다.
Max M.

@Gyan 최소 2 초, 최대 5 초. 십진수 또는 1 초 미만.
Max M.

25fps는 75 배 0.33fps입니다. 따라서 경고는 부당하거나 당연한 것이 아닙니다. 1 fps를 시도하십시오.
Daniel B

답변:


0

귀하가 duration concat demuxer 파일의 지시문에서 설정 한 것은 타임 스탬프 오프셋입니다. 다음 것 파일에 대해 현재 파일에 대해 계산 된 시작 시간 소인과 관련됩니다. 이 작업을 수행하려면 입력 -r 사용할 수 없습니다. 즉, 각 이미지에 기본 프레임 속도 25fps가 할당됩니다. 현재로서는 변경할 수 없습니다. 그러나 프레임 속도를 줄일 수 있습니다. 분 초가 없으므로 1fps로 줄일 수 있습니다.

ffmpeg -f concat -i list.txt -vf fps=1 out.mp4

인코딩 옵션을 생략했습니다. ffmpeg 4.0 이상을 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.