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 -> 이디시어
오픈 소스 코드 live555는 스트리밍 미디어 전송 기능을 구현하는 데 사용되는 SDK입니다. SDK의 teSTProgs 폴더에있는 play Common.cpp를 사용하여 IP TV 셋톱 박스의 전송 모듈을 설계하고 재생 모듈과 함께 IPTV 셋톱 박스 프로세스의 스트리밍 미디어 플레이어를 구성합니다. playCommon. cpp는 서버와 클라이언트를 연결하는 브리지입니다. 작동 원리는 클라이언트가 서버에 데이터를 요청할 때 서버 URL에서 SDP 설명 정보를 가져와 SDP를 기반으로 멀티미디어 세션을 생성하고 마지막으로 데이터 스트림을 재생하는 것입니다.
IPTV 셋톱 박스의 소프트웨어 구조 디자인과 결합 된 live555 오픈 소스 코드에서 playCommON.cpp의 기능을 사용하여 IPTV 셋톱 박스 스트리밍 미디어 플레이어의 디자인 프로세스를 소개하고 IPTV 셋톱 박스의 전송 모듈을 개발했습니다. . 그러면 전송 모듈은 메시지 큐를 통해 미들웨어와 연결되고, 동시에 재생 모듈의 입력 기능을 통해 재생 모듈과 연결되며, 마지막으로 IPTV 셋톱 박스의 스트리밍 미디어 플레이어를 구성합니다. 플레이어는 테스트를 거쳤으며 안정적인 성능을 가지고 있습니다.
1 IPTV 셋톱 박스 스트리밍 미디어 플레이어 디자인
1. 1 개의 IPTV 셋톱 박스 소프트웨어 구조
셋톱 박스의 소프트웨어 코드는 하드웨어 드라이버, 운영 체제, 미들웨어, 애플리케이션 계층의 네 부분으로 나뉩니다.
1) 하드웨어 드라이버는 기본 하드웨어와 상위 운영 체제를 연결합니다. 2) 운영 체제 무료 오픈 소스 코드 Linux가 여기에 사용됩니다. 3) 미들웨어 기본 운영 체제 및 하드웨어에서 상위 애플리케이션 계층을 분리하는 소프트웨어 적응 계층입니다. 미들웨어의 핵심 모듈은 주로 다음과 같습니다. (1) 브라우저 : 서버에서 URL을 가져와 해당 EPG 페이지를 표시합니다. (2) 그래픽 사용자 인터페이스 관리 : 사용자 인터페이스 제어 (예 : 버튼, 목록) 및 응용 프로그램에 대한 그래픽 이미지 그리기와 같은 그래픽 기능을 제공합니다. 4) 애플리케이션 계층은 오디오 및 비디오 미디어 파일의 재생을 실현합니다.
1.2 IPTV 셋톱 박스 스트리밍 미디어 플레이어 시스템 구조
Live555 오픈 소스 코드에서 playCommon.cpp는 컴퓨터를 수신 터미널로 사용하고 VLC 소프트웨어를 수신 및 재생하고 최종적으로 컴퓨터에 표시하는 기능을 실현합니다. 연구 내용은 playCommon.cpp를 셋톱 박스의 소프트웨어 코드에 통합하고, 마지막으로 IPTV 셋톱 박스를 수신단 말로 사용하여 재생하여 TV에 표시하는 기능을 구현하는 것이다. 이는 코드 디자인에 대한 새로운 요구 사항을 제시합니다. 한편으로 playCommon.cpp는 rtsp : // local IP 주소 : VLC의 RTSP 열에 재생할 포트 번호 / 파일 이름을 입력하여 서버의 URL을 얻습니다. . 획득. 그러나 IPTV 셋톱 박스의 경우 사용자가 리모컨을 통해 EPG에서 프로그램을 선택하면 전송 모듈에서 얻은 URL이 해당 URL이됩니다. 이 URL은 미들웨어에서 브라우저로 읽어 오기 때문에 미들웨어와 전송 모듈을 연결해야합니다. 반면에 playCommon.cpp가 보낸 데이터 스트림은 VLC를 통해 수신 및 재생됩니다. IPTV 셋톱 박스의 경우 전송 모듈에서 보낸 데이터 스트림을 재생 모듈을 통해 수신하고 재생합니다. 따라서 전송 모듈과 재생 모듈을 연결해야합니다.
미들웨어, 출력 모듈 및 재생 모듈을 연결하기 위해이 세 모듈 간의 데이터 통신을 실현하도록 메시지 큐를 설계합니다. 또한 pt hread create ()는 프로그램의 동시성을 실현하기 위해 스레드 rt spmain ()을 생성하도록 프로그램에서 설계되었습니다.
1.3 프로그램 구조 분석
1.3.1 전송 모듈.
1) 주요 기능 (1) void initMsgQ ()는 메시지 큐를 초기화합니다. dataQid는 네트워크에서 전송되는 일부 데이터를 포함하는 데이터의 메시지 큐를 나타냅니다. 마지막으로, 메시지 큐의 데이터는 void send data to player () 함수를 통해 플레이어에게 전송됩니다. msgkeyQid는 메시지 키 값의 메시지 큐를 나타냅니다. 전송 모듈은 미들웨어에서 얻은 원격 제어 키 값 명령을 받아 플레이어에게 전송하여 빨리 감기, 빨리 되감기, 중지 및 재생 작업을 수행합니다. fromeMiddleQid는 미들웨어의 메시지 큐를 나타냅니다. 전송 모듈은 클라이언트 플레이어가 서버에 데이터를 요청할 때 미들웨어에서 보낸 URL을 대상 주소로 수신합니다. playerStateQid는 재생 상태의 메시지 큐를 나타냅니다. 전송 모듈은 플레이어의 상태를 송수신하고 플레이어가 주문형, 라이브 또는 타임 시프트인지 여부를 제어하는 데 사용됩니다. (2) phread_create (& g_session_thread_info, & tattr, (void * (*) (void *)) rtsp_main, (void *) & urlInform); rtsp_main () 스레드를 만듭니다. 메시지 큐의 통신과 스트리밍 미디어의 전송이 동시에 실행되는지 확인합니다.
2) rtsp_main 함수. (1) recvMiddlewareMsg (fromeMiddleQid, url) : 미들웨어에서 전달 된 url의 값이 url 변수에 할당됩니다. (URL 정의는 미들웨어에서 완료되므로 미들웨어에서 가져와야합니다.) (2) playCommon.cpp 기능 : 클라이언트가 서버에 요청을 보내면 서버는 요청에 응답하고 미디어 세션을 생성하고 데이터 스트림을 재생합니다. (3) main_player_entry (gTrans. first Create) : 클라이언트가 스트림을 수신하고 플레이어의 진입 함수를 호출하여 플레이어를 초기화합니다. (4) void send_data_to_player () : 플레이어를 호출하고 인터넷에서받은 데이터를 플레이어로 전송하고 플레이를 시작합니다.
|
놀라움을 얻으려면 이메일을 입력하십시오.
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 무선 전송 비디오 및 오디오가 더 쉬워졌습니다!
연락처
주소:
No.305 Room HuiLan Building No.273 Huanpu Road 광저우 중국 510620
카테고리
MMCC 뉴스레터