2017-12-12 4 views
1

HTML5는 서버에서 비디오를 다운로드하고 디코드하고 렌더링하는 요소 인 <video/>을 가지고 있습니다. 흔히 하드웨어 가속 디코딩 (사용 가능한 경우)을 사용하지 않는 경우가 종종 있습니다.HTML5 동영상 디코딩 기능에 액세스하는 방법은 무엇입니까?

디코딩 기능에 액세스 할 수 있습니까? 그 이유는 내가 사용자 정의 스트리밍 프로토콜을 사용하고 있으므로 클라이언트 측에서 디코딩 및 렌더링해야하는 비디오 스트림을 인코딩했기 때문입니다.

비디오 디코더의 순수 JavaScript 구현은 불행히도 충분한 성능을 제공 할 수 없으므로 적용 할 수 없습니다. HVEC 또는 h.264 코덱에만 관심이 있습니다.

+0

얼룩 uri는 어떻습니까? – Qwertiy

+0

@Qwertiy 정교하게하십시오 –

답변

2

디코딩 기능 만 사용할 수 있습니까?

불행히도 없습니다. 우리는 시간 기반 위치, 재생 상태 및 다양한 이벤트와 같은 제한된 영향으로 스트림/소스 파일을 까다롭게 처리하는 고급 API에만 액세스 할 수 있습니다. 캔버스에 현재 디코딩 된 프레임에서 원시 RGB (A)로 프레임을 그릴 수 있지만 그게 전부입니다.

이유는 내가 당신은 너무이 프로토콜을 설명하지 않는 디코딩 할 필요

를 렌더링하는 사용자 정의 스트리밍 프로토콜 등 클라이언트 측에서 제가 인코딩 한 비디오 스트림을 사용하고 있다는 것입니다 우리는 추측 할 수 있지만 Media Source Extensions을 사용하여 video 요소에서 사용할 수있는 브라우저 호환 스트림을 만들 수 있습니다. 이를 통해 클라이언트에서 적응 형 및 사용자 정의 스트리밍 솔루션을 직접 구축 할 수 있습니다.

비디오 디코더의 순수 JavaScript 구현은 적용 할 수 없습니다. 불행히도 충분한 성능을 제공 할 수 없으므로 불행히도.

이것은 반드시 사실 일 필요는 없습니다. 예를 들어 thisthis과 같이 실시간으로 MPEG1 스트림을 디코딩하는 순수 JS 구현이 있습니다. 물론 이것은 현재 대부분의 브라우저가 할 수있는 것의 한계에서 작동합니다. 이 또한 WebGL을 통해 GPU를 활용하는 것 같다한다는 emscripten based H-264 디코더를 사용할 수도하지만, 나는 그것의 성능을 말할 수 없다 - 그것은하지만 다음 단락을위한 좋은 출발점이 될 수 있습니다 더 나은 옵션이 WebAssembly로 보는 것입니다

예를 들어 C/C++ 소스 코드에서 미리 컴파일 된 바이너리 코드를 실행할 수 있습니다. 이를 통해 브라우저에서 기본 속도로 실행되는 HVEC/H.264 디코더의 오픈 소스 구현을 사용할 수 있습니다 (라이센스 및 용어에주의를 기울여야 함, especially for H.264). (linkable) ffmpeg과 같은 소프트웨어 부분을 사용하십시오.

나는

당신은이 경우 messaging to interact with native application이 (후자는 FFmpeg 될 수있다 사용할 수 있습니다 이는 web-extension (일명 브라우저 확장)를 구축 보길 원하는 수있는 경우에도 비 휴대용 솔루션에 관심이 있어요 이 경우 또는 직접 스트림을 처리 할 수있는 프로그램).

정확하게 작동하는 방법은 물론 사용중인 프로토콜에 따라 달라집니다.

제한된 범위/설명을 바탕으로 한 2 센트입니다.

+0

+1. 동영상 요소는 HLS 또는 MPEG-DASH에서만 사용할 수 있다는 것을 알고 있으므로 둘 다 대기 시간이 짧은 스트리밍을 지원하지 않습니다. 응답 시간은 초 단위가 아니라 밀리 초입니다. https://www.wowza.com/blog/hls-latency-sucks-but-heres-how-to-fix-it. 이것은 맞춤 프로토콜에 대한 유일한 이유이며 동영상 요소를 할인합니다. 제발 수정하십시오. 불행히도 MPEG-1은 허용되지 않습니다. 웹 확장은 더 이상 사용되지 않습니다. 기존 JS 디코더는 emscripten을 사용하여 간단하게 포트 할 수 있으며 무거운 스트림에서 성능이 저하 될 수 있습니다. –

+0

브라우저가 지원하고 전체 애플리케이션 클래스에 필요한 기능이 휴대용이 아닌 방식으로 노출되지 않는 것은 유감입니다. –