2014-02-19 5 views
1

Каков наилучший способ воспроизведения HLS с резервным звуком MPEG DASH. Насколько я понимаю, m3u8 хорошо работает в Safari, но не работает в Chrome.Воспроизведение только аудио HLS (m3u8) и MPEG DASH (mpd)

<video controls="true"> 
     <source type="video/mp4" src="http://example.com:8080/dash-audio/77PL4KA42.mpd" /> 
     <source type="application/x-mpegurl" src="http://example.com:8080/hls-audio/EU9TVX1D9.m3u8" /> 
    </video> 

ответ

0

К сожалению, лучшего способа нет.

Форматы кодирования видео (и аудио) все еще продолжаются, и это один случай, когда это показывает его эффект: он работает в одном браузере, но не в другом.

«Лучший способ» в настоящее время обеспечивает видео в различных форматах, таких как mp4, webm, ogg video, и вы также можете предоставить формат потока m3u8. Вы можете выбрать приоритет, формат которого вы хотите прочитать (если возможно) по порядку исходных тегов (первый тег будет иметь первый приоритет - если это невозможно воспроизвести, будет проверено следующее и т. Д.).

Есть бесплатные конвертеры, которые могут конвертировать ваши видео, но они поддерживают только самые распространенные форматы (что исключает m3u8).

Если вы хотите только аудио, то <audio> тег, вероятно, лучше всего подходит я думаю :-)

+0

аудио тег не поддерживает потоковое аудио, хотя я правильно? Это интересная область. – Ben

+0

@Ben Не непрерывный поток нет. Возможно, вы могли бы макетировать что-то, чтобы подавать звук как «поддельный» поток камеры и использовать WebRTC для потоковой передачи аудиофайла, но это не очень элегантная ИМО (и немного сложная из-за начальных переговоров, требований к серверу и т. Д.). – K3N

1

Вы можете использовать библиотеку hls.js (https://github.com/video-dev/hls.js), чтобы получить HLS потоков играть в браузерах, которые не поддержка HLS изначально, например Chrome & Firefox. Вот фрагмент для минимальной установки (взятая непосредственно из ссылки при условии)

<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script> 
 
<video id="video"></video> 
 
<script> 
 
    if(Hls.isSupported()) { 
 
    var video = document.getElementById('video'); 
 
    var hls = new Hls(); 
 
    hls.loadSource('http://www.streambox.fr/playlists/test_001/stream.m3u8'); 
 
    hls.attachMedia(video); 
 
    hls.on(Hls.Events.MANIFEST_PARSED,function() { 
 
     video.play(); 
 
    }); 
 
} 
 
</script>