ffmpeg 문제 setpts / asetpts 및 / 또는 select / aselect


2

이 질문에 대한 후속 조치로 이제 비디오 및 오디오의 동기 편집과 싸우고 있습니다.

여전히 비디오를 프레임별로 잘라내려고합니다. 결과 타임 스탬프가 비디오에서 올바른 것처럼 보이지만 오디오는 동기화되지 않습니다. 에 일정한 시간을 추가하는 것도 도움이되지 않습니다 asetpts. 내가 사용하는 모든 프레임 범위마다 변경되는 것 같습니다.

여기 내가 가진 것이 있습니다 (더 긴 스크립트의 관련 부분 일뿐입니다).

SET SELECT=select='gte(n\,%4)*lte(n\,%5)'
SET ASELECT=aselect='gte(n\,%4)*lte(n\,%5)'
SET SETPTS=setpts='PTS-STARTPTS'
SET ASETPTS=asetpts='PTS-STARTPTS'
SET SCALE=scale='1280:-1'
SET CROP=%3
:
ffmpeg -y -i %1 -af %ASELECT%,%ASETPTS% -vf %SELECT%,%SETPTS%,%SCALE%,%CROP% ^
-ab 128k -crf 18 -pix_fmt yuv420p "%1 converted.mp4"

한마디로

  • 작물과 시작 / 종료 프레임을 매개 변수로 사용합니다.
  • 동기화 된 비디오가 시작되기 전에 소스 파일이 ~ 1 초의 오디오로 시작
  • no setpts/asetpts와 no select/aselect를 사용하면 결과 비디오는 1 초의 정지 된 프레임에서 오디오로 시작한 다음 비디오가 오디오와 함께 동시에 재생됩니다
  • no를 사용 setpts/asetpts하면 결과 비디오가 정지 된 프레임으로 시작한 다음 오디오가 들어오고 전달 된 시작 프레임으로 시작하여 오디오와 함께 비디오가 동시에 재생됩니다.
  • no를 사용 select/aselect하면 결과 비디오에 비디오와 오디오가 모두 약 1 초 정도 걸립니다.
  • 내가 모두 사용하면 결과 비디오에는 시작 프레임으로 비디오와 오디오가 시작되고 오디오는 약 1 초 정도 꺼집니다.

나는 select/aselect잘 작동하고 있지만 setpts/asetpts문제를 일으키는 것 같습니다. 비디오 필터 또는 오디오 필터 만 사용하면 더 나빠집니다.

분명히 나는 ​​여기서 뭔가 잘못하고 있습니다. 그러므로 누구든지 나를 도울 수 있습니까? 어쩌면 하나조차 설명 할 수있는 방법 setptsasetpts함께 작동?

편집 :
다른 시도 :

ffmpeg -y -i %1 ^
-filter_complex %ASELECT%,%ASETPTS%;%SELECT%,%SETPTS%,%SCALE%,%CROP% ^
-ab 128k -crf 18 -pix_fmt yuv420p "%1 converted.mp4"

두 개의 입력으로 (이것은 매우 느립니다) :

ffmpeg -y -i %1 -i %1 ^
-filter_complex [1:1]%ASELECT%,%ASETPTS%[aud];[0:0]%SELECT%,%SETPTS%,%SCALE%,%CROP%[vid] ^
-map [vid] -map [aud] ^
-ab 128k -crf 18 -pix_fmt yuv420p "%1 converted.mp4"

답변:


2

요약하자면 실패했습니다.

내가 지금하고있는 일은 시작 및 끝 프레임 번호를 타임 스탬프로 변환 하고 세계의 다른 모든 사람들 -ss-t마찬가지로 사용 하는 것입니다 (* sigh *). 클립의 FPS를 알고 있기 때문에이 작업을 수행 할 수 있습니다.

동기화에 관한 한, 1-clip-in-two-input-files 트릭을 사용합니다.

마지막 명령은 다음과 같습니다.

ffmpeg -y -i %1 -itsoffset %audioDelay% -i %1 -vf %SCALE%,%CROP% ^
-ss %startTime% -t %duration% -r 25 ^
map=-map 0:0 -map 1:1 ^
-ab 128k -crf 18 -pix_fmt yuv420p "%~1 converted.mp4"

더 이상 필터가 없습니다 ...

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