Продолжаю разбираться с Dreambox'ом и вещанием через HomeMediaServer (пока еще не работает,
но надежда, как известно, умирает последней

)
1. Пока не удалось заставить сервер не транскодировать поток который он принимает от Dreambox'a
http://dreambox_ip:31339/0,0640,0641,0643,0642
Dreambox по этой ссылке вещает в формате: видео MPEG2, аудио: MP3 (? MP2), контейнер: ts
причем можно например записать видео на диск в формате .ts c помощью wget или сконвертировать его
.mpg (подробности тут:
http://www.howtoforge.com/record-dreamb ... ttp-stream
Но вот как заставить HomeMediaServer просто ретранслировать этот поток без изменений ?
2. Вопрос по приоритетам транскодирования - правильно я понял, что наивысший приоритет будет иметь
профиль транскодирования, который задан в опции "Регистрация типа файлов медиа-ресурсов" - если он
(профиль) задан, то не зависимо от того, указано ли расширение файла в списке "Встроенная поддержка
файлов" или нет - будет происходить транскодирование в соответствии с этим профилем ?
Если же профиль не задан и расширение файла присутствует в списке встроенной поддержки - то по
теоретически транскодирования не должно происходить ? Или есть еще настройки которые я не упомянул здесь ?
3. MIME типы и DLNA типы - какой приоритет они имеют и возможно ли переопределение ?
В Dreambox'e используется вариант upnp cервера
ushare
http://ushare.geexbox.org
а в качестве клиента идет
djmount - который монтирует каталоги upnp сервера как виртуальную файловую
систему
http://djmount.sourceforge.net/
Поскольку для этих программ доступен исходный код - я посмотрел определение MIME типов которые они
поддерживают и возник вопрос если эти определения отличаются от тех, что представлены в HMS как
он будет с ними работать ?
---cut from mime.c file (uShare)---
const struct mime_type_t MIME_Type_List[] = {
/* Video files */
{ "asf", UPNP_VIDEO, "http-get:*:video/x-ms-asf:"},
{ "avc", UPNP_VIDEO, "http-get:*:video/avi:"},
{ "avi", UPNP_VIDEO, "http-get:*:video/avi:"},
{ "dv", UPNP_VIDEO, "http-get:*:video/x-dv:"},
{ "divx", UPNP_VIDEO, "http-get:*:video/avi:"},
{ "wmv", UPNP_VIDEO, "http-get:*:video/x-ms-wmv:"},
{ "mjpg", UPNP_VIDEO, "http-get:*:video/x-motion-jpeg:"},
{ "mjpeg", UPNP_VIDEO, "http-get:*:video/x-motion-jpeg:"},
{ "mpeg", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "mpg", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "mpe", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "mp2p", UPNP_VIDEO, "http-get:*:video/mp2p:"},
{ "vob", UPNP_VIDEO, "http-get:*:video/mp2p:"},
{ "mp2t", UPNP_VIDEO, "http-get:*:video/mp2t:"},
{ "m1v", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "m2v", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
{ "mpg2", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
{ "mpeg2", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
{ "m4v", UPNP_VIDEO, "http-get:*:video/mp4:"},
{ "m4p", UPNP_VIDEO, "http-get:*:video/mp4:"},
{ "mp4ps", UPNP_VIDEO, "http-get:*:video/x-nerodigital-ps:"},
{ "ts", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
{ "ogm", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "mkv", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "rmvb", UPNP_VIDEO, "http-get:*:video/mpeg:"},
{ "mov", UPNP_VIDEO, "http-get:*:video/quicktime:"},
{ "hdmov", UPNP_VIDEO, "http-get:*:video/quicktime:"},
{ "qt", UPNP_VIDEO, "http-get:*:video/quicktime:"},
{ "bin", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
{ "iso", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
/* Audio files */
{ "3gp", UPNP_AUDIO, "http-get:*:audio/3gpp:"},
{ "aac", UPNP_AUDIO, "http-get:*:audio/x-aac:"},
{ "ac3", UPNP_AUDIO, "http-get:*:audio/x-ac3:"},
{ "aif", UPNP_AUDIO, "http-get:*:audio/aiff:"},
{ "aiff", UPNP_AUDIO, "http-get:*:audio/aiff:"},
{ "at3p", UPNP_AUDIO, "http-get:*:audio/x-atrac3:"},
{ "au", UPNP_AUDIO, "http-get:*:audio/basic:"},
{ "snd", UPNP_AUDIO, "http-get:*:audio/basic:"},
{ "dts", UPNP_AUDIO, "http-get:*:audio/x-dts:"},
{ "rmi", UPNP_AUDIO, "http-get:*:audio/midi:"},
{ "mid", UPNP_AUDIO, "http-get:*:audio/midi:"},
{ "mp1", UPNP_AUDIO, "http-get:*:audio/mp1:"},
{ "mp2", UPNP_AUDIO, "http-get:*:audio/mp2:"},
{ "mp3", UPNP_AUDIO, "http-get:*:audio/mpeg:"},
{ "mp4", UPNP_AUDIO, "http-get:*:audio/mp4:"},
{ "m4a", UPNP_AUDIO, "http-get:*:audio/mp4:"},
{ "ogg", UPNP_AUDIO, "http-get:*:audio/x-ogg:"},
{ "wav", UPNP_AUDIO, "http-get:*:audio/wav:"},
{ "pcm", UPNP_AUDIO, "http-get:*:audio/l16:"},
{ "lpcm", UPNP_AUDIO, "http-get:*:audio/l16:"},
{ "l16", UPNP_AUDIO, "http-get:*:audio/l16:"},
{ "wma", UPNP_AUDIO, "http-get:*:audio/x-ms-wma:"},
{ "mka", UPNP_AUDIO, "http-get:*:audio/mpeg:"},
{ "ra", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"},
{ "rm", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"},
{ "ram", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"},
{ "flac", UPNP_AUDIO, "http-get:*:audio/x-flac:"},
/* Images files */
{ "bmp", UPNP_PHOTO, "http-get:*:image/bmp:"},
{ "ico", UPNP_PHOTO, "http-get:*:image/x-icon:"},
{ "gif", UPNP_PHOTO, "http-get:*:image/gif:"},
{ "jpeg", UPNP_PHOTO, "http-get:*:image/jpeg:"},
{ "jpg", UPNP_PHOTO, "http-get:*:image/jpeg:"},
{ "jpe", UPNP_PHOTO, "http-get:*:image/jpeg:"},
{ "pcd", UPNP_PHOTO, "http-get:*:image/x-ms-bmp:"},
{ "png", UPNP_PHOTO, "http-get:*:image/png:"},
{ "pnm", UPNP_PHOTO, "http-get:*:image/x-portable-anymap:"},
{ "ppm", UPNP_PHOTO, "http-get:*:image/x-portable-pixmap:"},
{ "qti", UPNP_PHOTO, "http-get:*:image/x-quicktime:"},
{ "qtf", UPNP_PHOTO, "http-get:*:image/x-quicktime:"},
{ "qtif", UPNP_PHOTO, "http-get:*:image/x-quicktime:"},
{ "tif", UPNP_PHOTO, "http-get:*:image/tiff:"},
{ "tiff", UPNP_PHOTO, "http-get:*:image/tiff:"},
/* Playlist files */
{ "pls", UPNP_PLAYLIST, "http-get:*:audio/x-scpls:"},
{ "m3u", UPNP_PLAYLIST, "http-get:*:audio/mpegurl:"},
{ "asx", UPNP_PLAYLIST, "http-get:*:video/x-ms-asf:"},
/* Subtitle Text files */
{ "srt", UPNP_TEXT, "http-get:*:text/srt:"}, /* SubRip */
{ "ssa", UPNP_TEXT, "http-get:*:text/ssa:"}, /* SubStation Alpha */
{ "stl", UPNP_TEXT, "http-get:*:text/srt:"}, /* Spruce */
{ "psb", UPNP_TEXT, "http-get:*:text/psb:"}, /* PowerDivX */
{ "pjs", UPNP_TEXT, "http-get:*:text/pjs:"}, /* Phoenix Japanim */
{ "sub", UPNP_TEXT, "http-get:*:text/sub:"}, /* MicroDVD */
{ "idx", UPNP_TEXT, "http-get:*:text/idx:"}, /* VOBsub */
{ "dks", UPNP_TEXT, "http-get:*:text/dks:"}, /* DKS */
{ "scr", UPNP_TEXT, "http-get:*:text/scr:"}, /* MACsub */
{ "tts", UPNP_TEXT, "http-get:*:text/tts:"}, /* TurboTitler */
{ "vsf", UPNP_TEXT, "http-get:*:text/vsf:"}, /* ViPlay */
{ "zeg", UPNP_TEXT, "http-get:*:text/zeg:"}, /* ZeroG */
{ "mpl", UPNP_TEXT, "http-get:*:text/mpl:"}, /* MPL */
/* Miscellaneous text files */
{ "bup", UPNP_TEXT, "http-get:*:text/bup:"}, /* DVD backup */
{ "ifo", UPNP_TEXT, "http-get:*:text/ifo:"}, /* DVD information */
{ NULL, NULL, NULL}
};
---cut from mime.c file (uShare)---
---cut from media_file.c file (djmount)---
/******************************************************************************
* MIME Types
*****************************************************************************/
/*
* MIME types below come from :
* - base :
http://freedesktop.org/wiki/Software_2f ... ime_2dinfo
* - ogg :
http://www.rfc-editor.org/rfc/rfc3534.txt
* - matroska :
http://www.matroska.org/technical/specs/notes.html
* - additional types (e.g. "text/..." subtitles) for interoperability
* with GeeXboX uShare :
http://ushare.geexbox.org/ (file src/mime.c)
*/
/*
* This list is used to determine :
*
* 1) if a given MIME type will be served as a playlist (if .playlist field
* is not NULL), or directly as a raw file.
* 2) the file extension to give to the file (if not present in the DIDL-Lite
* object's title). Default if NULL : use the MIME subtype,
* without any "*-" prefix. Examples : "audio/x-ac3" -> "ac3"
* and "video/x-ms-wmv" -> "wmv".
*
* NOTE : this list is *ordered*, because the search on mimetype is done
* by matching the begining of the string only.
*/
...
static const MimeType MIMES[] = {
/*
* Audio files
*/
{ "audio/mpeg", "m3u", "mp3" },
{ "audio/vnd.rn-realaudio", "ram", "ram" },
{ "audio/x-pn-realaudio", "ram", "ram" },
// matches also "audio/x-pn-realaudio-plugin"
{ "audio/x-realaudio", "ram", "ram" },
{ "audio/basic", "m3u", "au" },
{ "audio/prs.sid", "m3u", "sid" },
{ "audio/x-scpls", NULL, "pls" },
{ "audio/x-mpegurl", NULL, "m3u" },
{ "audio/x-matroska", "m3u", "mka" },
// Default for all other audio files : x-aac, x-ac3, x-ogg, wav, ...
{ "audio/", "m3u", NULL },
/*
* Video files
*/
{ "video/vnd.rn-realvideo", "ram", "ram" },
{ "video/x-msvideo", "m3u", "avi" },
{ "video/x-motion-jpeg", "m3u", "mjpg" },
{ "video/quicktime", "m3u", "mov" },
{ "video/x-matroska", "m3u", "mkv" },
{ "video/mpeg", "m3u", "mpg" },
{ "video/mp2p", "m3u", "vob" },
// Default for all other video files : asf, mpeg2, x-ms-wmv, ...
{ "video/", "m3u", NULL },
/*
* Image files
*/
{ "image/jpeg", NULL, "jpg" },
{ "image/svg+xml", NULL, "svg" },
{ "image/x-xwindowdump", NULL, "xwd" },
{ "image/x-win-bitmap", NULL, "cur" },
{ "image/x-portable-anymap", NULL, "pnm" },
{ "image/x-portable-bitmap", NULL, "pbm" },
{ "image/x-portable-pixmap", NULL, "ppm" },
{ "image/x-portable-graymap", NULL, "pgm" },
{ "image/x-xpixmap", NULL, "xpm" },
{ "image/x-xbitmap", NULL, "xbm" },
{ "image/x-photo-cd", NULL, "pcd" },
{ "image/x-quicktime", NULL, "qti" },
{ "image/x-icon", NULL, "ico" },
{ "image/tiff", NULL, "tif" },
// Default for all other image files : bmp, gif, png, ...
{ "image/", NULL, NULL },
/*
* Multimedia files
*/
{ "application/ogg", "m3u", "ogg" },
{ "application/vnd.rn-realmedia", "ram", "ram" },
{ "application/x-matroska", "m3u", "mkv" },
/*
* Text files (e.g. subtitles)
*/
{ "text/plain", NULL, "txt" },
// Default for all text files : sub, idx, ssa, ifo, ...
{ "text/", NULL, NULL },
{ NULL, NULL, NULL }
};
---cut from media_file.c file (djmount)---