ffmpeg concat 역다중화 기간 및 인포인트

ffmpeg concat 역다중화 기간 및 인포인트

나는 6초 길이의 h265 클립을 많이 가지고 있습니다. 이제 이것을 ffmpeg와 함께 연결하고 싶지만(재인코딩하지 않는 것이 좋음) 각 클립의 두 번째 2~4 부분만 사용합니다. 나는 concat demuxer를 사용하여 이 작업을 수행하지만 inpoint와 기간을 지정하자마자 결과가 매우 무작위로 나타납니다. 오류가 발생하지 않고 새 클립이 생성되지만 길이와 인포인트가 완전히 다릅니다.
내 클립이 h265이고 다소 짧기 때문에 편집할 수 있는 키프레임이 없다는 것이 첫 번째 의심이었습니다. 그래서 Quicktime Prores 클립(인트라프레임 인코딩)으로 동일한 작업을 시도했지만 비슷하게 이상한 결과를 얻었습니다. 그렇다면 문제가 다른 곳에 있는 것인지 궁금합니다.

이것은 내 코드입니다(Python에서 호출).

subprocess.call(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', 'concatlist.txt', '-c', 'copy', '-hide_banner', '-loglevel', 'error', output])

다음은 자동 생성된 텍스트 파일의 샘플입니다.

file videos_squares/vt_5Hn8lze0G8A.mp4
inpoint 2.0
duration 2.0
file videos_squares/vt_J8DuC93hLq0.mp4
inpoint 2.0
duration 2.0
file videos_squares/vt_u8twUOpagZs_seg3.mp4
inpoint 2.0
duration 2.0

답변1

concat demuxer를 사용하여 기간을 제한하려면 outpoint(inpoint + 의도된 기간 값으로) 설정하세요.

키워드 duration이름이 잘못되었으며 기본적으로 현재 클립의 시작 타임스탬프를 기준으로 다음 클립의 시작 타임스탬프 오프셋을 설정합니다. 그러나 현재 클립의 출력은 제한되지 않습니다.

관련 정보