Как воспроизвести MPEG-TS в Chrome

У меня есть видео, в котором я хочу показать пользователя («пользователь», потому что он может получить доступ к Chrome PC или Chrome Android).

Если это возможно, было бы неплохо использовать теги html5, но, поскольку это TS, он не может...

Итак, мне нужно лучшее предложение о том, как я могу их воспроизвести, а не открывать vlc и копировать и вставлять путь к файлу. Но это ужасная идея...

Я видел эту библиотеку, которая добавляет протокол VLC ( vlc:// ссылки ), но я предпочитаю использовать серверные решения.

Я загрузил пример файла, в котором вы могли видеть здесь.

Я не хочу конвертировать все файлы в другой формат.

Редактировать: если кто-то придет сюда в будущем, после принятия совета @szatmary, на GitHub есть несколько проектов, которые это делают, однако я не могу использовать ни один из них без частичного преобразования (в некотором роде), и поскольку я работаю с чрезвычайно большие файлы (10G+) и чрезвычайно слабый компьютер (одноядерный процессор 1,8). Мне удается отображать только звук, а не реальное решение, но покрывает мои потребности.


person Remy    schedule 22.08.2017    source источник


Ответы (2)


Конвертируйте файл в mp4. Если файл ts имеет формат h.264+aac, вы можете преобразовать его в fmp4 в javascript и воспроизвести с помощью расширений источника мультимедиа, но это МНОГО кода, чтобы заставить его работать.

person szatmary    schedule 22.08.2017

Вы можете воспроизвести ts напрямую с индексным файлом m3u8, если нет, вы можете создать файл m3u8, который является просто индексом файла ts.

В некоторых браузерах, таких как Edge, вы напрямую играете ts. См. этот ответ

<video width="352" height="198" controls>
    <source src="index.m3u8" type="application/x-mpegURL">
</video>

Для другого браузера, такого как firefox и chrome, вам нужно передать ts видео с помощью js что-то вроде video.js,

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>videojs-contrib-hls embed</title>

  <link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet">
  <script src="https://unpkg.com/video.js/dist/video.js"></script>
  <script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>

</head>
<body>
  <h1>Video.js Example Embed</h1>

  <video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="268" 
  data-setup='{}'>
    <source src="index.m3u8" type="application/x-mpegURL">
  </video>

  <script>
  </script>

</body>
</html>

Помимо воспроизведения файла ts, вы также можете конвертировать его в mp4.

Вы можете использовать передавать эти файлы ts в ffmpeg и выводить файл mp4.

cat *.ts | ffmpeg -i pipe: -c:a copy -c:v copy output.mp4

или Если ваше имя файла не имеет порядка,

grep .*.ts index.m3u8 | xargs cat | ffmpeg -i pipe: -c:a copy -c:v copy output.mp4

person LF00    schedule 06.08.2019