2017-10-11 5 views
0

이 사이트에서 집중 검색 한 결과 에 적합하지 않은 것을 발견했습니다. 에 안드로이드 5.1 장치에 작은 비디오 스트리밍 클라이언트를 쓰고 싶습니다. 다음 코드가 사용됩니다.간단한 Qt 비디오 스트리밍 응용 프로그램 및 소리 만, 비디오 없음 (흰색 화면)

QApplication a(argc, argv); 

QWidget *widget=new QWidget; 
widget->resize(320,200); 

QMediaPlayer *player=new QMediaPlayer; 
QVideoWidget *vw= new QVideoWidget; 
QHBoxLayout *layout=new QHBoxLayout; 

layout->addWidget(vw); 
widget->setLayout(layout); 
player->setVideoOutput(vw); 
player->setMedia(QUrl("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov")); 
player->play(); 
widget->show(); 

문제는 사운드는 작동하지만 흰색 화면 만 있습니다. 소리가 나지만 비디오는 재생되지 않습니다.

안드로이드 장치의 VLC 플레이어가 비디오를 올바르게 재생하고 있습니다. 나도 안드로이드 스튜디오에서 작은 플레이어를 사용했고 비디오를 재생할 때 비디오를 재생합니다. (하지만 대기 시간이 길어서 유용하지 않습니다.)

실행하기 위해 변경할 수있는 옵션이 부족했습니다.

+0

이 wjhere 내가가 지원하는 코덱 안드로이드 플랫폼에 대한 Qt는 키트에 확인할 수 있습니다 오른쪽 코덱 (H.264) – PiedPiper

+0

안녕하세요이없는 안드로이드 장치에 Qt는 라이브러리처럼 보인다 ? – Harold

답변

0

MOV 또는 h.264/h.265 요법과 같은 특정 형식/코덱을 재생하려면 Qt가 미디어와 친숙하지 않습니다 ... 교차 플랫폼 방식으로 QtAV (http://www.qtav.org/)와 같은 외부 라이브러리를 사용하거나 VLC Qt는 래퍼 (https://github.com/RSATom/QmlVlcDemo)

+0

감사합니다. 현재 qmlvlcdemo를 살펴 봤지만 컴파일러에 vlc.h (현재 상태)가 없습니다. 현재 어떤 패키지를 사용해야하는지 조사 중입니다 ... – Harold

+0

zip 파일로 다운로드 했습니까? github가 git 서브 모듈로 zip을 채우지 않기 때문에 저장소를 복제해야합니다. –

+0

아니요, zip 파일을 사용했습니다. 이제 저장소를 복제하고 qmake를 작성한 다음 include QmlVlc를 빌드했습니다. 또한 QmlVlc 저장소를 복제하고 데모의 .pro 파일에 경로를 추가했습니다. 그럼 vlc.h 누락 오류가 발생합니다. – Harold

0

나는 안드로이드 장치 do not support QuickTime 형식 (MOV) 기본적으로 문제가 있다고 생각합니다.

반대편에있는 VLC 미디어 플레이어 is well-known은 정확하게 MOV 비디오를 재생할 수 있습니다.

MP4 또는 WebM과 같은 다른 형식의 비디오를 테스트하여 프로그램 작동 방식을 확인하십시오.


내가 한 번 Qt에서 오디오/비디오 스트리밍을위한 데스크톱 소프트웨어를 개발하고 나는 GStreamer 프레임 워크로 작업하는 즐거움이 있었다.

많은 기능 중에서 MOV 개의 비디오를 다른 형식으로 변환 할 수 있습니다.

자습서 GStreamer for AndroidQt에 대해 잘 구현 된 GSstreamer 바인딩 집합 인 QtGstreamer을 확인할 수 있습니다.

+0

안녕하세요, gstreamer에 대한 귀하의 힌트를 제공해 주셔서 감사합니다. 저는 또한 gstreamer 프레임 워크를 발견했으며 시도해 볼 것입니다. 우선 크로스 플랫폼 개발에 사용되는 라이브러리가 필요합니다. x86 및 x86_64 (bin 및 dev) 용 설치 프로그램을 다운로드하고 조사 할 것입니다. 내가보고 할 것입니다 ... – Harold

+0

먼저 다른 형식이 응용 프로그램에서 재생되는지 확인해야합니다. @Harold – payloc