|
<video></video> и получение видео частями ASP.NET | ☑ | ||
---|---|---|---|---|
0
oleg_km
04.05.20
✎
16:58
|
Упражняюсь в ASP.NET. Есть видео файл mp4 размером например 4 гига. Как его отдавать веб-клиенту частями? Хочу сделать типа локального Youtube
|
|||
1
vde69
04.05.20
✎
17:00
|
библиотеку поищи...
|
|||
2
oleg_km
04.05.20
✎
17:10
|
Второй день ищу. Не пойму как сформулировать запрос
|
|||
3
vde69
04.05.20
✎
17:58
|
||||
4
Сияющий в темноте
04.05.20
✎
18:11
|
отдавать-то нужно не частями,а потоком и клиент уже сам решает насколько быстро нужно получать.
для сервера нужно иметь возможность отдать с производьной точки. |
|||
5
oleg_km
04.05.20
✎
18:14
|
(4) Я могу отдать часть файла mp4 с любого места, но похоже <video> так не умеет?
(3) Так я тоже могу |
|||
6
Serginio1
04.05.20
✎
18:44
|
||||
7
Serginio1
04.05.20
✎
18:46
|
||||
8
Serginio1
04.05.20
✎
18:52
|
||||
9
Serginio1
04.05.20
✎
20:12
|
||||
10
ProgAL
04.05.20
✎
20:22
|
||||
11
Asmody
04.05.20
✎
21:47
|
в самом простом случае достаточно такого:
ffmpeg -i <файл.mp4> -c:v libx264 -crf 21 -preset veryfast -c:a aac -b:a 128k -ac 2 -f hls -hls_time 4 -hls_playlist_type event stream.m3u8 в результате получится много файлов-слайсов типа stream0.ts, stream1.ts, и т.д. длинной по 4 сек (параметр -hls_time) и плей-лист stream.m3u8 всё это выкладываешь в папку на веб-сервере и отдаешь ссылку на плей-лист |
|||
12
oleg_km
04.05.20
✎
21:54
|
(11) Те просто отдавать файл с помощью Range не получится? Типа как здесь в конце:
https://overcoder.net/q/1000624/как-я-могу-потоковое-видео-используя-aspnet-mvc |
|||
13
Asmody
04.05.20
✎
22:16
|
(12) Видео нельзя резать просто так. Правильно резать по I-фреймам, иначе будут квадраты на границе чанков. Плюс должна сохраняться синхра между видео и аудио стримами. Резать файлы в реалтайме - это высоконагруженное дело. Для VOD обычно транскодируют и режут заранее. В реалтайм только вещание обрабатывают.
|
|||
14
oleg_km
05.05.20
✎
18:34
|
(11) Попробовал - проигрывание плейлистов не работает в десктопном хроме, в эдже работает. Но показывает классно, без рывков. Правда это теперь все гопрошные файлы надо нарезать... И качество похоже потерялось исходный размер был 4 гига, стало 1.8 гига
|
|||
15
Garykom
гуру
05.05.20
✎
18:55
|
(14) За качество вот эта часть отвечает "-c:v libx264 -crf 21 -preset veryfast"
тут перекодировка x264 кодеком с "Constant Rate Factor"=21 и veryfast предустановкой дефолтной Кстати не всегда меньший размер это ухудшение качества, можно без заметной потери ужать только долго это и железо надо хорошее. |
|||
16
Garykom
гуру
05.05.20
✎
18:56
|
(15)+ тут слегка на аглицком https://trac.ffmpeg.org/wiki/Encode/H.265
|
|||
17
Garykom
гуру
05.05.20
✎
18:57
|
(16)+ сорри 264 же https://trac.ffmpeg.org/wiki/Encode/H.264
|
|||
18
Serginio1
05.05.20
✎
18:57
|
(14) А ты пробовал (9)
|
|||
19
Serginio1
05.05.20
✎
19:06
|
||||
20
oleg_km
05.05.20
✎
22:08
|
(18) Байтами отдавать? Пробовал, сначала работало в хроме, не работало в эдже. Потом я причесал код - перестало работать в хроме, но заработало в эдже. Теперь что-то нигде не работает. Похоже я на стороне сервера не могу рассчитывать что браузер сам запросить нужные куски файла и нормально склеит видео. Хотя он же с диска как-то читает.
|
|||
21
Asmody
05.05.20
✎
22:45
|
(20) почитай про кодирование MPEG, там все не так просто. В мире потокового видео рулят HLS и MPEG DASH.
|
|||
22
Serginio1
06.05.20
✎
13:04
|
(20) Ну вот в https://odetocode.com/blogs/scott/archive/2018/01/09/streaming-content-in-asp-net-core.aspx
он сам режет HTTP/1.1 206 Partial Content Content-Length: 11 Content-Type: video/mp4 Content-Range: bytes 0-10/10630899 Last-Modified: Wed, 14 May 2014 23:39:15 GMT Accept-Ranges: bytes ETag: "1cf6fcdb79b6573 |
|||
23
Serginio1
06.05.20
✎
13:45
|
||||
24
Serginio1
06.05.20
✎
14:02
|
||||
25
mistеr
06.05.20
✎
14:13
|
(0) VLC ставишь, настраиваешь и он стримит тебе все что хочешь.
|
|||
26
mistеr
06.05.20
✎
14:14
|
Это если "ехать", а не "заморочиться"
|
|||
27
oleg_km
10.05.20
✎
22:01
|
(24) Попробовал .NET Core 3.1 - все работает из коробки. Да и среда .NET Core как-то больше понравилась, более все логично. Буду переносить на .NET Core 3.1
|
|||
28
Serginio1
11.05.20
✎
21:13
|
(27) Да .NET Framework конец приходит. Не будет больше развиваться. https://habr.com/ru/company/microsoft/blog/493390/
Мы также работали над этими выпусками, чтобы завершить перенос моделей приложений из .NET Framework. В .NET Core 3 мы перенесли все наиболее используемые модели приложений, а также представили новые кроссплатформенные инфраструктуры вместо тех, которые не были портированы. В ожидании следующего основного выпуска .NET 5 мы продолжим объединять .NET в единую платформу, включив нашу модель приложения для мобильных устройств .NET (Xamarin) в .NET 5. .NET 5 будет включать ASP.NET Core, Entity Framework Core, WinForms, WPF, Xamarin и ML.NET. Впервые вся платформа будет использовать унифицированный BCL (библиотеки базовых классов) для всех моделей приложений. Наличие версии 5, которая выше, чем у .NET Core и .NET Framework, также дает понять, что .NET 5 — это будущее .NET, единой унифицированной платформы для создания приложений любого типа. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |