2010-11-24 4 views
11

동영상 트랙이있는 AVMutableComposition이 있는데 동영상 트랙에 정지 이미지를 추가하여 일정 시간 동안 표시하고 싶습니다. 스틸 이미지는 단순히 PNG입니다. 이미지를 애셋으로로드 할 수는 있지만 결과는 애셋이므로 어떤 트랙도 없으므로 insertTimeRange… 메서드를 사용하여 간단하게 삽입 할 수 없기 때문에 이미지를 애셋으로로드 할 수 있습니다.AV 컴포지트에 스틸 이미지를 추가하려면 어떻게합니까?

정지 이미지를 컴포지션에 추가 할 수 있습니까? 대답은 Core Animation의 어딘가에있는 것처럼 보이지만 모든 것이 내 머리 위에 조금있는 것처럼 보입니다. 코드 샘플이나 정보 포인터에 감사드립니다.

+0

사진이 들어온 트랙에 빈 시간대를 추가 했습니까? 지침을 설정할 때 트랙에 내용이있는 것처럼 트랙을 처리합니까? (그것과의 전환) – box86rowh

+0

비디오 컴포지션 + 코어 애니메이션 경로를 마지막으로 가지 않았으므로 스틸 프레임에서 비디오를 만들고 비디오를 사용하는 클래스를 만들었습니다. – zoul

+0

멋지다, 나는 사용자가 자신의 재량에 따라 비디오와 사진을 혼합 할 수있는 프로젝트를 진행하고 있으므로 컴파일 코드는 유연해야한다. 지금 코드로 사진 끝을 작업하고 있습니다. – box86rowh

답변

12

확인. AV Foundation으로 미디어 편집WWDC에서 많은 것을 설명하는 훌륭한 비디오가 있습니다. AVComposition 타임 라인에 이미지를 삽입 할 수는 없지만 적어도 그렇게 할 방법은 찾지 못했습니다. 그러나 자산을 내보내거나 재생할 때는 AVVideoComposition을 참조 할 수 있습니다. 어쩌면 클래스의 완벽한 이름이 아닐 수도 있습니다. 자산의 다양한 비디오 트랙을 믹싱 할 수 있습니다. 오디오의 경우는 AVAudioMix과 매우 비슷합니다. AVVideoComposition에는 코어 애니메이션 레이어 (CALayer)를 믹스에 넣을 수있는 animationTool 속성이 있습니다. CALayer에는 contents 속성이 있으며 CGImageRef을 할당 할 수 있습니다. 제 경우에는 도움이되지 않습니다. 다른 사람을 도울 수 있습니다.

+0

방금 ​​비디오 편집을 시작했습니다. 당신의 대답에 따라, 내가 틀렸다면 나에게 맞춰라, 당신은 라이브 비디오 녹화 사이에 또는 비디오가 녹화 된 후에 이미지 레이어를 던지는 것을 말하고 있는가? – Nil

+0

비디오가 녹화 된 후. 'AVVideoComposition'은 비디오 편집 툴과 비슷합니다. Final Cut Pro는 프로그램 할 수있는 프로그램입니다. 따라서 몇 개의 Core Animation Layers와 함께 몇 개의 비디오 세그먼트를 스티칭 할 수 있습니다. – zoul

+0

그래, 녹화 된 비디오 전체에 이미지를 삽입하는 데 성공했습니다. 그러나 정적 객체를 비디오에 편집/삽입하는 것은 괜찮습니다. 내가 색조와 채도 및 다른 것들을 갖고 놀고 싶다면 어떻게해야할까요? 동시에 사용자는 녹음 중일 때 결과를 볼 수 있습니다. 앱 스토어의 Video Star 앱과 같은 것입니다. 나는 실시간 비디오 프로세싱이 그 해답이라고 생각하지만 사용자가 그것을 볼 수 있기 전에 비디오의 프레임/카메라 입력을 편집하는 것이 좋은지는 잘 모르겠다. QQ 엄청난 자원 집중. 이 주제를 가리킬 수있는 링크는 무엇입니까? – Nil

0

내 작품에도 정지 이미지가 필요합니다. 내 사고 방식은 조금 다릅니다. 이미지가 나타나야하는 자리에 검정색의 온 - 더 - 플라이 (on-the-fly) 영화를 삽입하십시오. 각 삽입물에 사전 참조를 추가하여 컴포지션 시간 범위를 선의의 이미지로 연결합니다. 올바른 시간 범위가 내 풀 타임 맞춤형 컴포지션에 도착하면 원하는 이미지를 꺼내 출력 픽셀 버퍼에 페인팅하여 컴포지션에서 들어오는 검은 색 프레임을 무시합니다. 나는 그것이 그 일을하는 또 다른 방법이라고 생각합니다.

관련 문제