나는 이것을 애플 개발자 포럼에 올렸고, 활발한 토론을 펼쳤다. 이것은 비슷한 개념을 제기 한 사람의 대답이었습니다. 내가 생각
는 만약 내가 잘못 정정 해줘, 우리에게 당신이 AVCaptureVideoDataOutput에서 얻을 원시 H264에서의 MPEG TS를 만드는 것은 당신이 x264 또는 유사한 것을 사용하여 트랜스 코딩하지 않는 한 쉬운 일이 아니라고 동의 방법 경우 예를 들어 줄 . 잠깐 동안 mpeg 파일을 쉽게 얻을 수 있다고 가정하면 m3u8 컨테이너에서 파일을 컴파일하고 작은 웹 서버를 시작하고 서비스하는 간단한 문제 일 것입니다. 지금까지 내가 아는 한, 많은 애플 리케이션이 그것을 할, 로컬 호스트 터널을 사용하여 장치에서 거부 문제가되지 않습니다. 어쩌면 어떻게 든 장치에서 hls을 생성 할 수있는 성능에 대해 질문합니다.
등등, JSON 또는 소켓을 열고 서버로 보낼 bencode처럼 난해한 아마도 뭔가를 여전히 AvCaptureVideoDataOutput를 사용하여 기술 번호 2 , 당신은, 프레임을 캡처 일부 깔끔한 작은 프로토콜을 포장. Ahh ... Wi-Fi를 통한 압축되지 않은 프레임 전송에도 대역폭이 필요하기 때문에 좋은 행운을 빕니다. 기술 번호 등
3.
당신은 avassetwriter을 사용하여 새 영화를 작성하고 표준 C 함수를 사용하여 다시 임시 파일에서 읽기,이 괜찮습니다하지만 당신이 가진 것은 원시 H264되면, MP4이 완료되지 않았습니다 따라서 moov 원자가 없으므로 이제 재미있는 부분이이 헤더를 다시 생성합니다. 행운을 빕니다.그래서에
실제로 우리는 인스턴스화 avassetwriters는 한 번만 사용할 수 있습니다 후, 우리는 시작부터 우리는 그들이 GCD의 dispatch_queue를 사용하여 관리하고, 하나가 아닌 2 avassetwriters을 만드는 몇 가지 장점을
을 갖고있는 것 같아요 그 4 tecnique하기 타이머에 처음으로, 미리 결정된 기간이 10 초 후에 우리는 첫 번째 것을 찢어 두 번째로 시작합니다. 이제 완전한 moov 원자를 가진 일련의 .mov 파일이 있습니다. 각각의 압축 된 h264 비디오가 들어 있습니다. 이제 이들을 서버로 보내고 하나의 완전한 비디오 스트림으로 어셈블 할 수 있습니다. 또는 mov 파일을 가져와 librtmp를 사용하여 rtmp 프로토콜로 래핑하고 미디어 서버로 보내는 간단한 스 트리머를 사용할 수 있습니다.
우리는 각각의 개별 mov 파일을 장치 통신으로 장치를 가져 오는 대신 다른 장치로 전송할 수 있습니까? 그 질문은 여러 번 잘못 해석되어 wifi를 통해 동일한 서브넷에있는 다른 아이폰 장치를 찾는 것이 매우 쉽고 완료 될 수 있습니다. tcp over celluar 연결에 다른 장치를 배치하는 것은 거의 불가능합니다. 주소 지정 가능 IP를 사용하는 셀 네트워크에서만 가능하며 모든 일반 통신사에서 가능하지는 않습니다.
는 avfoundation 비디오 플레이어의 비는 많은 다른 별도의 동영상 파일 간의 전환을 처리 할 수 있기 때문에 다음 추가 문제가, 당신은 수 있다고 말한다. 아마도 ffmpeg 디코딩을 기반으로 자신의 스트리밍 플레이어를 작성해야 할 것입니다. (그게 잘 작동하지 않습니다)
어떻게 완료되었는지 ffmpeg 코드를 볼 수 있습니다. – vipw
ffmpeg가 유일한 저렴한 솔루션이지만 상용 엔코더가 있지만 많은 비용이 듭니다. HLS는 약간의 문제가있을 것입니다. 아마도 rtmp를 고려했을 것입니다. 내가 당신이 avassetwriter에서 생성하는 완전한 mov 파일을 다시 읽을 필요가 있기 때문에 그 차이가 있다고 가정합니다. –