FMUSER 무선 전송 비디오 및 오디오가 더 쉬워졌습니다!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> 아프리칸스어
sq.fmuser.org -> 알바니아어
ar.fmuser.org -> 아랍어
hy.fmuser.org -> 아르메니아어
az.fmuser.org -> 아제르바이잔 어
eu.fmuser.org -> 바스크
be.fmuser.org -> 벨로루시 어
bg.fmuser.org -> 불가리아어
ca.fmuser.org -> 카탈로니아 어
zh-CN.fmuser.org -> 중국어 (간체)
zh-TW.fmuser.org -> 중국어 (번체)
hr.fmuser.org -> 크로아티아어
cs.fmuser.org -> 체코
da.fmuser.org -> 덴마크어
nl.fmuser.org -> 네덜란드어
et.fmuser.org -> 에스토니아어
tl.fmuser.org -> 필리피노
fi.fmuser.org -> 핀란드어
fr.fmuser.org -> 프랑스어
gl.fmuser.org -> 갈리시아어
ka.fmuser.org -> 조지아 어
de.fmuser.org -> 독일어
el.fmuser.org -> 그리스
ht.fmuser.org -> 아이티 크리올
iw.fmuser.org -> 히브리어
hi.fmuser.org -> 힌디어
hu.fmuser.org 헝가리어
is.fmuser.org -> 아이슬란드 어
id.fmuser.org -> 인도네시아어
ga.fmuser.org -> 아일랜드어
it.fmuser.org -> 이탈리아어
ja.fmuser.org -> 일본어
ko.fmuser.org -> 한국어
lv.fmuser.org -> 라트비아어
lt.fmuser.org 리투아니아어
mk.fmuser.org -> 마케도니아 어
ms.fmuser.org -> 말레이어
mt.fmuser.org -> 몰타어
no.fmuser.org -> 노르웨이어
fa.fmuser.org -> 페르시아어
pl.fmuser.org -> 폴란드어
pt.fmuser.org -> 포르투갈어
ro.fmuser.org -> 루마니아어
ru.fmuser.org -> 러시아어
sr.fmuser.org -> 세르비아어
sk.fmuser.org -> 슬로바키아어
sl.fmuser.org -> 슬로베니아어
es.fmuser.org -> 스페인어
sw.fmuser.org -> 스와힐리
sv.fmuser.org -> 스웨덴어
th.fmuser.org -> 태국
tr.fmuser.org -> 터키어
uk.fmuser.org -> 우크라이나어
ur.fmuser.org -> 우르두어
vi.fmuser.org -> 베트남어
cy.fmuser.org -> 웨일스 어
yi.fmuser.org -> 이디시어
1, 모바일 동영상 생방송 개발
PC에서 모바일에 이르기까지 점점 더 많은 라이브 방송 앱이 온라인에 있으며 모바일 방송이 전례없는 폭발 단계에 들어 섰음을 알 수 있습니다. 그러나 대부분의 모바일 라이브 방송의 경우 여전히 주로 기본 클라이언트에 의해 구현되지만 HTML5는 HTML5와 같은 모바일 라이브 방송 끝에서 대체 할 수없는 역할을합니다. 빠른 전송과 쉬운 출시의 장점으로 HTML5도 라이브로 재생할 수 있습니다. 비디오가 가장 중요 할 때
전체 생방송은 다음과 같이 나눌 수 있습니다.
(1) 비디오 녹화 터미널 : 일반적으로 컴퓨터 오디오 및 비디오 입력 장치 또는 모바일 터미널의 카메라 또는 마이크입니다. 현재 휴대폰 영상이 주요 부분입니다.
(2) 비디오 플레이어 : 컴퓨터의 플레이어, 휴대폰 쪽의 기본 플레이어 및 HTML5의 비디오 레이블 일 수 있습니다. 현재로서는 여전히 휴대폰의 기본 플레이어입니다.
(3) 비디오 서버 : 일반적으로 비디오 녹화 측에서 제공하는 비디오 소스를 수락하고 비디오 재생 단에 스트리밍 서비스를 제공하는 데 사용되는 nginx 서버입니다.
2, HTML5 녹화 비디오 :
HTML5 비디오 녹화의 경우 강력한 webrtc (WEB 실시간 통신)는 웹 브라우저에서 실시간 음성 또는 영상 대화를 지원하는 기술입니다. 단점은 PC 크롬에서만 더 잘 지원하고 모바일 측은 이상적이지 않다는 것입니다.
webrtc로 비디오를 녹화하는 기본 프로세스는 다음과 같습니다.
window.navigator.webkitGetUserMedia를 호출합니다 (사용자 PC 카메라의 비디오 데이터 가져 오기).
획득 한 비디오 스트림 데이터를 window.webkitRTCPeerConnection (비디오 스트림 데이터 형식)으로 변환합니다.
Websocket을 사용하여 비디오 스트림 데이터를 서버로 전송
많은 방법에 브라우저 접두사가 필요하기 때문에 많은 모바일 브라우저가 webrtc를 지원하지 않으므로 실제 비디오 녹화는 여전히 클라이언트 (IOS, Android)에 의해 구현되고 효과가 더 좋습니다.
3, HTML5 방송 라이브 비디오 :
비디오 재생의 경우 HLS (HTTP 라이브 스트리밍) 프로토콜을 사용하여 라이브 스트리밍을 재생할 수 있습니다. IOS와 Android는 모두이 프로토콜을 자연스럽게 지원합니다. 비디오 태그를 직접 구성하고 사용하는 것은 간단합니다.
다음은 비디오를 사용하여 라이브 비디오를 재생하는 간단한 코드입니다.
(1) HLS 프로토콜이란?
간단히 말해서 전체 스트림은 HTTP를 기반으로 다운로드되는 작은 파일로 나뉩니다. 한 번에 일부만 다운로드됩니다. HTML3 방송 라이브 비디오에 도입 된 이전에 언급 된 .M8u5 파일은 비디오 스트림의 메타 데이터를 저장하는 HLS 프로토콜을 기반으로합니다.
각 .M3u8 파일은 실제 비디오 저장을위한 데이터 인 여러 TS 파일에 해당합니다. m3u8 파일은 일부 TS 파일의 구성 정보 및 관련 경로 만 저장합니다. 동영상이 재생되면 .M3u8 파일이 동적으로 변경됩니다. 비디오 레이블은 파일을 구문 분석하고 재생할 해당 TS 파일을 찾습니다. 따라서 속도를 높이기 위해 .M3u8 파일을 사용하여 파일을 분석하고 재생할 해당 TS 파일을 찾습니다. 따라서 속도를 높이기 위해 .M3u8 파일을 사용하여 파일을 분석하고 재생할 해당 TS 파일을 찾습니다. 따라서 속도를 높이려면 웹 서버에 넣고 TS 파일을 CDN에 넣으십시오.
.M3u8 파일은 실제로 UTF-3로 인코딩 된 M8U 파일입니다. 이 파일은 단독으로 재생할 수 없으며 재생 정보가 포함 된 텍스트 파일 만 재생할 수 있습니다.
(2) HLS 요청 프로세스 :
HTTP 요청 m3u8의 URL입니다.
서버는 실시간으로 업데이트되는 m3u8의 재생 목록을 반환합니다. 일반적으로 5 개 데이터 세그먼트의 URL이 한 번에 제공됩니다.
클라이언트는 m3u8의 재생 목록을 구문 분석 한 다음 TS 데이터 스트림을 얻기 위해 각 세그먼트의 URL을 요청합니다.
(3) HLS 생방송 지연 :
HLS 프로토콜은 라이브 스트림을 작은 비디오 세그먼트로 나누어 다운로드하고 재생한다는 것을 알고 있습니다. 따라서 목록에 5 개의 TS 파일이 있고 각 TS 파일에 5 초의 비디오 콘텐츠가 포함 된 경우 전체 지연 시간이 25 초라고 가정합니다. 이 비디오를 보면 호스트가 비디오를 녹화하고 업로드했기 때문에 지연이 발생합니다. 물론 목록 길이와 단일 TS 파일의 크기를 줄여 지연을 줄일 수 있습니다. 극단적으로 목록 길이는 1로 줄이고 TS 기간은 1 초입니다. 그러나 이로 인해 요청 수가 증가하고 서버 압력이 증가합니다. 네트워크 속도가 느리면 더 많은 버퍼가 생성됩니다. 따라서 애플이 권장하는 TS 타임은 공식적으로 10 초간 지속되므로 30 초 지연 시간이 크게 바뀔 것입니다. 따라서 서버는 스트림을 수신하고, 트랜스 코딩하고, 저장하고, 블록을 잘라낸 다음 클라이언트에 배포합니다. 지연의 근본 원인은 다음과 같습니다.
지연에 대한 추가 질문은 Apple의 공식 주소를 참조하십시오.
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
그러나 HTML5 라이브 비디오에는 대체 할 수없는 몇 가지 장점이 있습니다.
① 좋은 의사 소통, 공유하기 쉬운 및 기타 작업.
② 동적으로 출시 될 수있어 제품 요구 사항의 실시간 반복 및 신속한 출시에 도움이됩니다.
③ 앱을 설치하지 않고 브라우저를 직접 엽니 다.
4, IOS 수집 (녹음) 오디오 및 비디오 데이터 OS
오디오 및 비디오 수집 및 녹화의 경우 먼저 다음 개념이 명확 해집니다.
(1) 비디오 코딩 : 비디오 코딩은 특정 압축 기술을 통해 비디오 형식의 파일을 다른 비디오 형식 파일로 변환하는 방식을 말합니다. 우리가 사용하는 iPhone으로 녹화 된 비디오는 사용자측 플레이어에서 재생되기 전에 인코딩, 업로드 및 디코딩되어야합니다.
(2) 코덱 표준 : 비디오 스트림 전송에서 가장 중요한 코덱 표준은 HLS 프로토콜이 H.261 형식 코딩을 지원하는 ITU의 H.263, H.264 및 H.264입니다.
(3) 오디오 코딩 : 비디오 코딩과 유사하게 원본 오디오 스트림이 특정 표준에 따라 인코딩, 업로드, 디코딩되고 플레이어에서 재생됩니다. 물론 오디오에는 PCM 코드, wma 코드, AAC 코드 등과 같은 많은 코딩 표준이 있습니다. HLS 프로토콜에서 지원하는 오디오 코딩 방법은 AAC 코드입니다.
비디오 및 오디오 데이터 수집은 주로 다음 단계로 나뉩니다.
(1) IOS에서 카메라를 사용하여 비디오 및 오디오 데이터 수집
(2) IOS에서 원본 오디오 및 비디오 데이터 스트림은 avcapturesession 및 avcapturedevice에 의해 수집 될 수 있습니다.
(3) 비디오는 h264로 인코딩되고 오디오는 AAC로 코딩됩니다. IOS에는 오디오 및 비디오 코딩을 실현하기 위해 이미 패키지화 된 코딩 라이브러리가 있습니다.
(4) 코딩 후 오디오 및 비디오 데이터를 조립하고 밀봉합니다.
(5) RTMP 연결을 설정하고 서버로 푸시합니다.
다음은 오디오 및 비디오 데이터를 수집하는 특정 프로세스입니다.
(1) RTMP 정보 :
RTMP (실시간 메시징 프로토콜)는 Macromedia에서 개발 한 라이브 비디오 프로토콜의 집합이며 현재 Adobe에 속합니다. HLS와 마찬가지로 비디오 방송에 사용할 수 있습니다. 차이점은 RTMP는 플래시 기반의 IOS 브라우저에서 재생할 수 없지만 HLS보다 실시간으로 더 좋습니다. 따라서이 프로토콜은 일반적으로 비디오 스트림을 업로드하는 데 사용됩니다. 즉, 비디오 스트림이 서버로 푸시됩니다.
(2) 푸시 흐름
소위 스트리밍은 우리가 인코딩 한 오디오 및 비디오 데이터를 비디오 스트림 서버로 보내는 것을 말합니다. IOS 코드에서는 RTMP 스트리밍이 일반적으로 사용됩니다. 타사 라이브러리 인 Librtmp IOS를 스트리밍에 사용할 수 있습니다. Librtmp는 사용자가 호출 할 수있는 일부 핵심 API를 캡슐화합니다. 예를 들어 API 등을 푸시하고 서버 주소를 구성한 다음 트랜스 코딩 비디오 스트림을 서버로 푸시합니다.
그렇다면 스트리밍 서버를 구축하는 방법은 무엇입니까?
간단한 스트리밍 서버가 구축되었습니다. 업로드하는 비디오 스트림은 RTMP 프로토콜을 기반으로하기 때문에 서버는 RTMP를 지원해야합니다. 다음 단계를 수행 할 수 있습니다.
(1) nginx 서버를 설치합니다.
(2) nginx의 RTMP 확장이 설치됩니다. nginx 용 conf 파일 구성
(3) nginx를 다시 시작하고 RTMP의 스트리밍 주소를 rtmp : // ip : 1935 / hls / mystream으로 씁니다. 여기서 HLS_ Path는 생성 된 주소를 나타냅니다. M3u8 및 TS 파일, HLS_ Fragment는 슬라이스의 길이, mystream을 나타냅니다. 인스턴스를 나타냅니다. 생성 될 파일 이름은 자체적으로 설정할 수 있습니다.
5 、 생방송에서의 사용자 상호 작용 :
라이브 방송에서 사용자 상호 작용의 경우 대략 다음과 같이 나눌 수 있습니다.
선물을주는 것.
댓글을 달거나 플레이하려면
선물 배달의 경우 DOM 및 CSS3를 사용하여 HTML5에서 선물 보내기의 논리와 특별한 선물 애니메이션을 구현할 수 있습니다. 기술적 어려움은 그리 크지 않습니다.
포격을 좀 더 복잡하게하려면 다음 사항에주의해야합니다.
발사체의 실시간 성능은 webscock에 의해 실시간으로 송수신되고 렌더링 될 수 있습니다.
웹 소켓을 지원하지 않는 브라우저의 경우, 실시간 팝업을 얻기 위해 요청을 보내는 긴 폴링 또는 프런트 엔드 타이머로만 저하 될 수 있습니다.
렌더링에서 애니메이션 및 충돌 감지 (즉, 겹침 없음) 등
|
놀라움을 얻으려면 이메일을 입력하십시오.
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> 아프리칸스어
sq.fmuser.org -> 알바니아어
ar.fmuser.org -> 아랍어
hy.fmuser.org -> 아르메니아어
az.fmuser.org -> 아제르바이잔 어
eu.fmuser.org -> 바스크
be.fmuser.org -> 벨로루시 어
bg.fmuser.org -> 불가리아어
ca.fmuser.org -> 카탈로니아 어
zh-CN.fmuser.org -> 중국어 (간체)
zh-TW.fmuser.org -> 중국어 (번체)
hr.fmuser.org -> 크로아티아어
cs.fmuser.org -> 체코
da.fmuser.org -> 덴마크어
nl.fmuser.org -> 네덜란드어
et.fmuser.org -> 에스토니아어
tl.fmuser.org -> 필리피노
fi.fmuser.org -> 핀란드어
fr.fmuser.org -> 프랑스어
gl.fmuser.org -> 갈리시아어
ka.fmuser.org -> 조지아 어
de.fmuser.org -> 독일어
el.fmuser.org -> 그리스
ht.fmuser.org -> 아이티 크리올
iw.fmuser.org -> 히브리어
hi.fmuser.org -> 힌디어
hu.fmuser.org 헝가리어
is.fmuser.org -> 아이슬란드 어
id.fmuser.org -> 인도네시아어
ga.fmuser.org -> 아일랜드어
it.fmuser.org -> 이탈리아어
ja.fmuser.org -> 일본어
ko.fmuser.org -> 한국어
lv.fmuser.org -> 라트비아어
lt.fmuser.org 리투아니아어
mk.fmuser.org -> 마케도니아 어
ms.fmuser.org -> 말레이어
mt.fmuser.org -> 몰타어
no.fmuser.org -> 노르웨이어
fa.fmuser.org -> 페르시아어
pl.fmuser.org -> 폴란드어
pt.fmuser.org -> 포르투갈어
ro.fmuser.org -> 루마니아어
ru.fmuser.org -> 러시아어
sr.fmuser.org -> 세르비아어
sk.fmuser.org -> 슬로바키아어
sl.fmuser.org -> 슬로베니아어
es.fmuser.org -> 스페인어
sw.fmuser.org -> 스와힐리
sv.fmuser.org -> 스웨덴어
th.fmuser.org -> 태국
tr.fmuser.org -> 터키어
uk.fmuser.org -> 우크라이나어
ur.fmuser.org -> 우르두어
vi.fmuser.org -> 베트남어
cy.fmuser.org -> 웨일스 어
yi.fmuser.org -> 이디시어
FMUSER 무선 전송 비디오 및 오디오가 더 쉬워졌습니다!
Contact
주소:
No.305 Room HuiLan Building No.273 Huanpu Road 광저우 중국 510620
카테고리
MMCC 뉴스레터