DNLA SHARE вывод контента на SMART телевизоры
Модератор: immortal
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
Но этот вариант из приложения ютуб не катит. Уже нашел решение, добавил в пост! И ведь работает!!
5 пункт модуля почти готов!
5 пункт модуля почти готов!
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
nick7zmail берешься? Я помогу, чем смогу.directman66 писал(а): Мне кажется в модуле должно быть:
1) Список устройств с определением типа (модель телевизора , модель колонки или ресивера (Google Home, Echo dot...), название медиаприставкии (MAG245/250, wr320, китайские свистки, chromecast.. ). Поиск видимо придется осуществлять несколькими алгоритмами (DIAL, M-SEARCH, HTTP REST....)
2) В зависимости от типа устройства должен меняться протокол взаимодействия.
3) Привязка к HOOK SAY для колонок (чтобы Алиса на нее вещала свои сообщения)
4) Если файл лежит где-то локально, для его воспроизведения нужно поднимать web сервер или dnla. Как вариант можно попробовать использовать виртуальный хост apache2. Если файл лежит в сети по протоколам samba или ftp - пока мне не понятно что делать.
В статье из 1 поста ( https://hms.lostcut.net/viewtopic.php?id=119 ) в исходниках чувак как раз таки поднимает простенький simple server и по нему отдает поток. В принципе примеров реализации на php полно. Думаю легко решаемо.
5) Отправка ссылки приложению Youtube на телевизоре.
6) Раскурить что за TTS используют аналогичные проекты (для google home, Alexa). В какомто коде на джите видел использование движка гугл переводчика для проговаривания текста.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: DNLA SHARE вывод контента на SMART телевизоры
Дак да...попробую...может что и выйдет путного))
Отправлено с моего Xperia XZ1 Compact через Tapatalk
Отправлено с моего Xperia XZ1 Compact через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: DNLA SHARE вывод контента на SMART телевизоры
А разве трансляции ютуб вообще относятся каким-то боком к Dlna?directman66 писал(а):Но этот вариант из приложения ютуб не катит. Уже нашел решение, добавил в пост! И ведь работает!!
5 пункт модуля почти готов!
Отправлено с моего Xperia XZ1 Compact через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
Если есть такая возможность, почему-бы не воспользоваться. Например говоришь Алисе, включи на телевизоре Машу и Медведь, или например Включи Дудя на Ютубе! В итоге ссылку ютуб мы открываем по протоколу upnp, без приложения для телевизоров, которое постоянно зависает и тормозит. И есть не на всех телевизорах. У меня оно иногда просто висит и не открывается.nick7zmail писал(а):А разве трансляции ютуб вообще относятся каким-то боком к Dlna?directman66 писал(а):Но этот вариант из приложения ютуб не катит. Уже нашел решение, добавил в пост! И ведь работает!!
5 пункт модуля почти готов!
Отправлено с моего Xperia XZ1 Compact через Tapatalk
Хотелось бы скачать исходники https://hms.lostcut.net/youtube/g.php
Можно ли как это сделать ?
нашел https://github.com/WendyH/HMS-Youtube
Добавил 7 пункт
7) Сделать upnp сканер ресурсов домашней сети, чтобы была БД домашнего контента, который можно отправить на телевизор/Cast устройство.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
Вот эти функции нужно переделать на php https://github.com/WendyH/testdlna/blob ... na/DLNA.cs
Словарь mime устройств:
Получение метаданых:
Генерация xml
Словарь mime устройств:
СпойлерПоказать
Код: Выделить всё
private static IDictionary<string, string> VideoMIMEmappings = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) {
#region Big freaking list of mime types
{".3g2" , "video/3gpp"},
{".3gp" , "video/3gpp"},
{".3gp2", "video/3gpp2"},
{".3gpp", "video/3gpp"},
{".asf" , "video/x-ms-asf"},
{".asr" , "video/x-ms-asf"},
{".asx" , "video/x-ms-asf"},
{".avi" , "video/avi"},
{".dif" , "video/x-dv"},
{".divx", "video/avi"},
{".dvr-ms","video/x-ms-dvr"},
{".dv" , "video/x-dv"},
{".evo" , "video/mpeg"},
{".flv" , "video/x-flv"},
{".IVF" , "video/x-ivf"},
{".lsf" , "video/x-la-asf"},
{".lsx" , "video/x-la-asf"},
{".m1v" , "video/mpeg"},
{".m2t" , "video/vnd.dlna.mpeg-tts"},
{".m2ts", "video/vnd.dlna.mpeg-tts"},
{".m2v" , "video/mpeg"},
{".m4v" , "video/mp4"},
{".mkv" , "video/x-matroska"},
{".mod" , "video/mpeg"},
{".mov" , "video/quicktime"},
{".movie","video/x-sgi-movie"},
{".mp2v", "video/mpeg"},
{".mp4" , "video/mp4"},
{".mp4v", "video/mp4"},
{".mpe" , "video/mpeg"},
{".mpeg", "video/mpeg"},
{".mpg" , "video/mpeg"},
{".mpv2", "video/mpeg"},
{".mqv" , "video/quicktime"},
{".mts" , "video/vnd.dlna.mpeg-tts"},
{".ogm" , "video/x-ogm"},
{".nsc" , "video/x-ms-asf"},
{".qt" , "video/quicktime"},
{".smpg" , "video/x-mpegurl"},
{".ssif" , "video/vnd.dlna.mpeg-tts"},
{".tp" , "video/mpeg"},
{".ts" , "video/vnd.dlna.mpeg-tts"},
{".tts" , "video/vnd.dlna.mpeg-tts"},
{".vbk" , "video/mpeg"},
{".vob" , "video/mpeg"},
{".webm" , "video/webm"},
{".wm" , "video/x-ms-wm"},
{".wmp" , "video/x-ms-wmp"},
{".wmv" , "video/x-ms-wmv"},
{".wmx" , "video/x-ms-wmx"},
{".wvx" , "video/x-ms-wvx"},
{".wtv" , "video/wtv"},
{".xvid" , "video/avi"},
{".aac" , "audio/vnd.dlna.adts"},
{".ac3" , "audio/ac3"},
{".ADT" , "audio/vnd.dlna.adts"},
{".ADTS" , "audio/vnd.dlna.adts"},
{".aif" , "audio/aiff"},
{".aifc" , "audio/aiff"},
{".aiff" , "audio/aiff"},
{".amr" , "audio/amr"},
{".ape" , "audio/x-ape"},
{".au" , "audio/basic"},
{".awb" , "audio/awb"},
{".cda" , "audio/cda"},
{".dff" , "audio/x-dff"},
{".dsf" , "audio/x-dsf"},
{".dts" , "audio/dts"},
{".flac" , "audio/x-flac"},
{".m3u" , "audio/x-mpegurl"},
{".m4a" , "audio/mp4"},
{".mid" , "audio/mid"},
{".midi" , "audio/mid"},
{".mka" , "audio/x-matroska"},
{".mp1" , "audio/mpeg"},
{".mp2" , "audio/mpeg"},
{".mp3" , "audio/mpeg"},
{".mpa" , "audio/mpeg"},
{".rmi" , "audio/mid"},
{".s16be" , "audio/L16"},
{".smp3" , "audio/x-mpegurl"},
{".snd" , "audio/basic"},
{".wav" , "audio/x-wav"},
{".wax" , "audio/x-ms-wax"},
{".wma" , "audio/x-ms-wma"},
{ ".bmp" , "image/bmp"},
{ ".bw" , "image/bw"},
{ ".cel" , "image/cel"},
{ ".cut" , "image/cut"},
{ ".dib" , "image/dib"},
{ ".emf" , "image/emf"},
{ ".eps" , "image/eps"},
{ ".fax" , "image/fax"},
{ ".gif" , "image/gif"},
{ ".icb" , "image/icb"},
{ ".ico" , "image/x-icon"},
{ ".jfif" , "image/jpeg"},
{ ".jpe" , "image/jpeg"},
{ ".jpeg" , "image/jpeg"},
{ ".jpg" , "image/jpeg"},
{ ".jps" , "image/x-jps|image/jpeg"},
{ ".pbm" , "image/pbm"},
{ ".pcc" , "image/pcc"},
{ ".pcd" , "image/pcd"},
{ ".pcx" , "image/pcx"},
{ ".pdd" , "image/pdd"},
{ ".pgm" , "image/pgm"},
{ ".pic" , "image/pic"},
{ ".png" , "image/png"},
{ ".pns" , "iimage/pns|image/png"},
{ ".ppm" , "image/ppm"},
{ ".psd" , "image/psd"},
{ ".psp" , "image/psp"},
{ ".rgb" , "image/rgb"},
{ ".rgba" , "image/rgba"},
{ ".rla" , "image/rla"},
{ ".rle" , "image/rle"},
{ ".rpf" , "image/rpf"},
{ ".scr" , "image/scr"},
{ ".sgi" , "image/sgi"},
{ ".svg" , "image/svg+xml"},
{ ".tga" , "image/tga"},
{ ".tif" , "image/tiff"},
{ ".tiff" , "image/tiff"},
{ ".wdp" , "image/vnd.ms-photo"}
Получение метаданых:
СпойлерПоказать
Код: Выделить всё
private string GetDIDLVideoMetadata(string fileUri, string title, string time, string date, int size = 0, string itemId = "advert", string parentId = "0", int restricted = 1) {
string mime = (MIMEtype.Length > 0) ? MIMEtype : GetMIMEfromExt(Path.GetExtension(fileUri));
Console.WriteLine("Установлен MIME-тип файла: " + mime);
StringBuilder sb = new StringBuilder();
sb.AppendLine("<DIDL-Lite xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:dlna=\"urn:schemas-dlna-org:metadata-1-0/\">");
sb.AppendLine("<item id=\"" + itemId + "\" parentID=\"" + parentId + "\" restricted=\"" + restricted + "\">");
sb.AppendLine("<upnp:storageMedium>UNKNOWN</upnp:storageMedium>");
sb.AppendLine("<upnp:writeStatus>UNKNOWN</upnp:writeStatus>");
sb.AppendLine("<dc:title>" + title + "</dc:title>");
sb.AppendLine("<upnp:class>object.item.videoItem</upnp:class>");
sb.AppendLine("<dc:date>" + date + "</dc:date>");
sb.AppendLine("<res protocolInfo=\"http-get:*:" + mime + ":*\" duration=\"" + time + "\" size=\"" + size + "\">" + fileUri + "</res>");
sb.AppendLine("</item></DIDL-Lite>");
return sb.ToString();
Генерация xml
СпойлерПоказать
Код: Выделить всё
private void SetPayload(string parameterName = "", string parameterValue = "", string additionalData = "") {
StringBuilder sb = new StringBuilder();
sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.AppendLine("<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">");
sb.AppendLine(" <s:Body>");
sb.AppendLine(" <u:" + SoapCommand + " xmlns:u=\"" + NameSpace + "\">");
if (SoapService=="AVTransport") sb.AppendLine (" <InstanceID>0</InstanceID>");
if (parameterName .Length > 0 ) sb.AppendFormat(" <" + parameterName + ">{0}</" + parameterName + ">\r\n", parameterValue);
if (additionalData.Length > 0 ) sb.AppendLine (" " + additionalData);
sb.AppendLine(" </u:" + SoapCommand + ">");
sb.AppendLine(" </s:Body>");
sb.AppendLine("</s:Envelope>");
RequestPayload = sb.ToString();
}
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
не, и у меня не dot версия, а полноценная с большими колонками.directman66 писал(а): Echo dot добавился?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
Гугл хоум мини тоже не появился. С ними придется отдельно что-то решать.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
а откуда у тебя информация что Амазон Эко поддерживаеn DNLA или upnp? Я погуглил и не нашёл подтверждение. Но нашёл опровержение в викиdirectman66 писал(а):Гугл хоум мини тоже не появился. С ними придется отдельно что-то решать.
It does not appear to be capable of playing music streamed from a local UPnP/DLNA media server.
- За это сообщение автора Gelezako поблагодарил:
- directman66 (Пт фев 16, 2018 3:13 pm)
- Рейтинг: 1.16%
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: DNLA SHARE вывод контента на SMART телевизоры
Запусти bubbleupnp и посмотри, есть ли возможность на него отправить звук. Если есть - значит поддерживает. А без этой технологии вряд ли они бы выпустили ip колонку.Gelezako писал(а):а откуда у тебя информация что Амазон Эко поддерживаеn DNLA или upnp? Я погуглил и не нашёл подтверждение. Но нашёл опровержение в викиdirectman66 писал(а):Гугл хоум мини тоже не появился. С ними придется отдельно что-то решать.It does not appear to be capable of playing music streamed from a local UPnP/DLNA media server.
Отправлено с моего Redmi Note 3 через Tapatalk
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram