2012-05-13 3 views
1

일부 비디오 파일에서 AVPacket 구조 내부에 반환 된 PTS 타임 스탬프는 0에서 시작하지 않지만 나중에는 약간의 시간 후에 시작됩니다. 예 : 3.128 또는 뭔가. 테스트 한 비디오 파일의 99 %는 PTS 타임 스탬프가 0부터 시작하지만 거의 파일에 3.128 또는 1.2 또는 그 이상으로 시작되는 이상한 타임 스탬프가 없습니다. 이 사건들을 어떻게 처리해야합니까? 먼저 패킷의 PTS 타임 스탬프를 기록한 다음이 PTS를 이후의 모든 타임 스탬프 값에서 빼서 0 기반 PTS 값을 얻어야합니까? 또는 이러한 0이 아닌 타임 스탬프로 무엇을해야합니까? 당신의 도움을 주셔서 감사합니다!AVCodec 0에서 시작하지 않는 PTS 타임 스탬프

답변

0

Libavcodec/avformat은 파일에있는 데이터를 제공합니다. 유감스럽게도 (또는 다행스럽게도 원근법에 따라 다름) 많은 파일 형식에서는 타임 스탬프가 0부터 시작하지 않아도됩니다. 실제로 여러 파일이 각각 더 긴 스트림의 일부를 구성하고 다른 파일이 비파괴 적으로 다시 복원 할 수 있기를 원합니다.

0 기반 타임 스탬프를 원한다면 가장 낮은/최초 타임 스탬프를 저장하고 모든 타임 스탬프에서 해당 값을 빼야합니다. 그러나 DVD 비디오와 같은 일부보기 흉한 형식의 경우 콘텐츠 중간에 타임 스탬프를 재설정하는 것이 일반적이며 이로 인해 사용자의 접근 방식에 부정적인 타임 스탬프가 표시 될 수도 있습니다. 그러한 컨텐츠를 다루고있을 것으로 예상된다면 불연속성을 감지하고 패치해야합니다. 마지막으로 avcodec/avformat을 사용하여 자동으로이 작업을 수행 할 수있는 기능이 없었지만 지금은 가능합니다. 네가 필요할지도 모른다면 나는 그걸 들여다 볼 것이다.