Получите webTorrent для воспроизведения файла .mp4, хранящегося в приватной корзине s3 AWS

Я использую responsejs и колбу. После получения торрента файла .mp4, хранящегося в частном ведре s3, я пытаюсь отобразить и воспроизвести его в браузере с помощью webtorrent. Но видеоконтент не загружается

Это следующий вопрос к Загрузите и воспроизведите 1 ГБ .mp4 в reactjs, хранящемся в частной корзине s3. На данный момент ведро s3 общедоступно. Поскольку частный файл выдает ошибку.

Код для справки - https://codepen.io/drngke/pen/abNGbEg

const magnet = 'https://datavocal.s3.amazonaws.com/s3outputx.mp4.torrent'

const client = new WebTorrent()

client.add(magnet, (torrent) => {
  console.log(torrent.files)
  
   torrent.files[0].appendTo('body')

});
client.on("error", (err) => console.log(err))

person jsdbt    schedule 11.09.2020    source источник
comment
Я видел ваш исходный пост и так и не ответил (извините). Я ответил на этот вопрос тем, что смог выяснить ... К сожалению, я не думаю, что это возможно, хотя я бы приветствовал второй анализ, если я что-то неправильно понял.   -  person v25    schedule 11.09.2020


Ответы (1)


Я не уверен, что это сработает.

Из документов webtorrent:

Чтобы BitTorrent работал через WebRTC (единственный P2P-транспорт, работающий в сети), мы внесли некоторые изменения в протокол. Таким образом, клиент WebTorrent на основе браузера или одноранговый веб-узел может подключаться только к другим клиентам, которые поддерживают WebTorrent / WebRTC.

И далее:

Для передачи файлов одноранговым веб-узлам используйте клиент, поддерживающий WebTorrent, например WebTorrent Desktop, настольный клиент со знакомым пользовательским интерфейсом, который может подключаться к одноранговым веб-узлам, гибридному веб-торренту, программе командной строки или Instant.io, веб-сайту.

Поэтому я предполагаю, что S3 должен поддерживать WebTorrent / WebRTC, а я не думаю, что это будет.

введите описание изображения здесь

Если я правильно понимаю приведенную выше диаграмму, вы можете запустить гибридный клиент между S3 и вашими веб-узлами, однако тогда вам нужно будет разместить гибрид где-нибудь, что сделает S3 избыточным в этой настройке.

person v25    schedule 11.09.2020
comment
Спасибо за ответ. Я получил аналогичный ответ и по WebTorrent github. Что мне нужно запустить собственный гибридный одноранговый узел на частном сервере. AWS не имеет одноранговых браузеров (также называемых одноранговыми узлами WebRTC), заполняющих файл. Теперь я пытаюсь отправить этот файл из фляги, чтобы он реагировал с помощью send_file и терпел неудачу. Если вы знаете, как отправлять и транслировать видео в формате mp4 в reactjs, это будет очень полезно. - person jsdbt; 11.09.2020
comment
(1) Почему бы не оставить в стороне сложные торрент-файлы и просто сохранить где-нибудь в Интернете актуальный файл MP4 (например, DropBox, Github или папку на вашем собственном веб-сайте). (2) Протестируйте другой MP4, например этот, он воспроизводится при использовании в качестве торрента на вашем сервере S3? Этот тест подтвердит, является ли ваш собственный файл проблемой, не вызывающей воспроизведения. - person VC.One; 11.09.2020
comment
@ VC.One (2) Пробовал использовать mp4. по-прежнему получаю тот же результат в браузере. Codepen для справки - codepen.io/drngke/pen/abNGbEg. Для (1) Пользователь загружает данные, поэтому не может сохранить их в Dropbox, верно? Торрент сейчас мне не очень нравится. Попытка загрузить файл в бэкэнд (флакон), а затем отправить его во фронтенд (отреагировать). Если у вас есть идеи, как это сделать, поделитесь. - person jsdbt; 11.09.2020
comment
Фигурный. Мне просто нужно было передать конечную точку, которая возвращает фактический путь к файлу. Итак, для @ app.route ('/ vid / ‹filename›'), который возвращает send_file ('path_of_video'), передайте ‹video src = '/ vid / output.mp4'› › - person jsdbt; 12.09.2020