2015-01-14 5 views
1

Я хочу, чтобы WebRTC закодировал и воспроизвел поток h264 (NAL) (локальный файл). В учебнике WebRTC getUserMedia используется для подключения локальной камеры к системе, я не знаю, поддерживает ли функция getUserMedia локальный файл потока, такой как поток h264.WebRTC - может getUserMedia использовать локальный поток?

Если это не сработает, возможно, мне следует изменить исходный код WebRTC (я изучаю его). Вопрос: Если я изменяю код WebRTC, как я могу интегрировать новый код в браузер? Сделал это плагин?

+0

Благодарим вас за ответ на мой вопрос. Я нашел ** [ffmpeg.js] (https://github.com/muaz-khan/WebRTC-Experiment/tree/master/ffmpeg) **, чтобы перекодировать мой файл в mp4, чтобы я мог играть в Интернете. –

ответ

0

Во-первых, вы правы. getusermedia не будет работать для вас. Однако есть несколько вариантов.

  1. Взломайте поток, используя RTCDataChannel. Разрыв медиа-потока и доставка каждого пакета, а затем его обработка на стороне клиента.
  2. Take a look at this demo для прессованных медиапотоков. Я не верю, что H264 адресован, но он может помочь вам на вашем пути (возможно, только для Firefox).
  3. Используйте какой-то прерыватель/конечный пункт webrtc, который является родным для потока файла. Я специально знаю, что другие (в том числе и я) были потоковый H264 в Firefox через Janus-Gateway

Пар отступления:

  • Firefox поддерживает только Baseline профилей в потоковом h264 для WebRTC PeerConnection
  • Chrome делает не поддерживает h264 для WebRTC на всех
0

вы пытаетесь иметь GetUserMedia возвращение h.264 закодированный поток?

  • В этом случае сегодня это возможно только с Firefox сегодня, при определенной настройке (cisco 264 plugin) и только для базового профиля.
  • Хром пообещал в ноябре добавить эту емкость, но нет временной шкалы, которую я знаю о Ожидании, по крайней мере, во втором квартале 2015 года.
  • Используя наш (temasys) коммерческий плагин, вы скоро сможете это сделать в IE и Safari.

Это единственные варианты на клиентской стороне, о которых я могу думать. На стороне сервера вы можете использовать все, что вы хотите перекодировать, в том числе janus, kurento, powermedia, licode/lynkia, ...

Примечание: использование других средств, таких как Datachannel или WebSocket, вполне приемлемо для передачи файлов, но значительно уменьшит пользовательский опыт, так как у вас не было бы всех дополнительных механизмов восстановления (и безопасности), включенных в SRTP, DTLS, а также не было бы конкретных проблемных медиа-улучшений, которые находятся в webRTC, таких как дрожание, буферы, netQ, ect ...

1

Firefox поддерживает расширение для элемента <video>, которое вы можете использовать для этого.

Во-первых, установить источник видеоэлемент:

v1.src = "file:///..."; 

Тогда вы можете позвонить в (в настоящее время приставкой) mozCaptureStream или mozCaptureStreamUntilEnded функцию, чтобы получить MediaStream.

stream = v1.mozCaptureStream(); 

proposed specification.

Обратите внимание, что вам необходимо убедиться, что файл того же происхождения относительно страницы. То же правило происхождения для file:///, вероятно, вызовет проблемы. В противном случае ваш MediaStream не будет доступен вам. Один из способов обеспечить, чтобы не устанавливать местоположение напрямую, а загружать файл с помощью элемента <input type="file">.

Как указано в других ответах, Firefox в настоящее время поддерживает только базовый профиль H.264.

Смежные вопросы