admin管理员组文章数量:1642476
因为电视为安卓系统,屏幕大,所以看电影时喜欢在TV上看,之前都是PC端通过samba(网上邻居)来分享视频,但在TV上观看时,在多人同时用上网时偶尔会卡顿,体验不怎么好。所以就想换个方式来共享视频,所以就选定DLNA了。
Windows:
Windows Media Player----即DLNA服务端又为DLNA客户端,可直接推送视频至TV上,当时系统为Win7,XP的MediaPlayer就不清楚了
AirPlay(官方网站)----DLNA服务端,这款软件可以直接将电脑桌面推送至TV上(带声音),效果同双显示器,发现它后就再也没有使用过HDMI线连接TV了。也可以单独推送视频/图片/音乐至TV上
之后一段时间,PPTV、迅雷视频、腾讯视频等等播放软件都开始支持DLNA了,现在因工作需要已经转至Linux了,所以不怎么玩Windows了,这些软件的DLNA功能怎么样不太清楚。
Linux :
rygel----DLNA服务端,Debain Wheezy源里的版本,因不支持mov、flv、rm、rmvb、mkv等格式的文件分享,用过一段时间后放弃了
MiniDLNA(官网)----DLNA服务端,不支持rm、rmvb格式的文件分享,但可以自己修改源文件来支持,所以就选它了。它还自带一个Web网页,可以显示分享资源数与当前客户端名字等等,在浏览器里打开http://本机IP:8200
1、下载源代码,目前minidlna最新版本1.2.1, 下载地址sourceforge
2、修改源文件
metadata.c
[cpp] view plain copy
- //line 840
- else if( strncmp(ctx->iformatctx->name, "matroska", 8) == 0 )
- xasprintf(&m.mime, "video/x-matroska");
- else if( strcmp(ctx->iformatctx->name, "flv") == 0 )
- xasprintf(&m.mime, "video/x-flv");
- //----添加----
- else if( strcmp(ctx->iformat->name, "rm") == 0 )
- xasprintf(&m.mime, "video/x-pn-realvideo");
- else if( strcmp(ctx->iformat->name, "rmvb") == 0 )
- xasprintf(&m.mime, "video/x-pn-realvideo");
- //---结束----
- if( m.mime )
- goto video_nodlna;
upnpglobalvars.h
[cpp] view plain copy
- // Line 169
- "http-get:*:audio/mp4:*," \
- "http-get:*:audio/x-wav:*," \
- "http-get:*:audio/x-flac:*," \
- "http-get:*:application/ogg:*," \
- //----add----
- "http-get:*:video/x-pn-realvideo:*"
- //----end----
- #define DLNA_FLAG_DLNA_V1_5 0x00100000
- #define DLNA_FLAG_HTTP_STALLING 0x00200000
utils.c
[cpp] view plain copy
- //line 381
- ends_with(file, ".m2t") || ends_with(file, ".mkv") ||
- ends_with(file, ".vob") || ends_with(file, ".ts") ||
- ends_with(file, ".flv") || ends_with(file, ".xvid") ||
- //----add----
- ends_with(file, ".rm") || ends_with(file, ".rmvb") ||
- //----end----
- #ifdef TIVO_SUPPORT
- ends_with(file, ".TiVo") ||
- #endif
- ends_with(file, ".mov") || ends_with(file, ".3gp"));
3、编译步骤
[plain] view plain copy
- sudo apt-get install build-essential libexif-dev libjpeg-dev \
- libid3tag0-dev libFLAC-dev libvorbis-dev libsqlite3-dev libavformat-dev \
- autoconf automake
- ./autogen.sh
- ./configure
- make
- make install
- sudo cp ./linux/minidlna.inot.d.script.tmpl /etc/init.d/minidlna
- sudo cp ./minidlna.conf /etc/minidlna.conf
- # 第一次启动使用-d –v选项看有没有出错
- sudo /usr/local/sbin/minidlnad -d -v
- # 没出错就ctrl+c 结束进程
- # 正常启动
- sudo service minidlna start
- # 刷新列表
- sudo service minidlna restart
4. Minidlna配置
minidlna.conf
[html] view plain copy
- # port for HTTP (descriptions, SOAP, media transfer) traffic
- port=8200
- # network interfaces to serve, comma delimited
- #network_interface=eth0
- # specify the user account name or uid to run as
- #user=jmaggard
- # set this to the directory you want scanned.
- # * if you want multiple directories, you can have multiple media_dir= lines
- # * if you want to restrict a media_dir to specific content types, you
- # can prepend the types, followed by a comma, to the directory:
- # + "A" for audio (eg. media_dir=A,/home/jmaggard/Music)
- # + "V" for video (eg. media_dir=V,/home/jmaggard/Videos)
- # + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
- # + "PV" for pictures and video (eg. media_dir=PV,/home/jmaggard/digital_camera)
- media_dir=/opt
- # set this to merge all media_dir base contents into the root container
- # note: the default is no
- #merge_media_dirs=no
- # set this if you want to customize the name that shows up on your clients
- #friendly_name=My DLNA Server
- # set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
- #db_dir=/var/cache/minidlna
- # set this if you would like to specify the directory where you want MiniDLNA to store its log file
- #log_dir=/var/log
- # set this to change the verbosity of the information that is logged
- # each section can use a different level: off, fatal, error, warn, info, or debug
- #log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
- # this should be a list of file names to check for when searching for album art
- # note: names should be delimited with a forward slash ("/")
- album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
- # set this to no to disable inotify monitoring to automatically discover new files
- # note: the default is yes
- inotify=yes
- # set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
- enable_tivo=no
- # set this to strictly adhere to DLNA standards.
- # * This will allow server-side downscaling of very large JPEG images,
- # which may hurt JPEG serving performance on (at least) Sony DLNA products.
- strict_dlna=no
- # default presentation url is http address on port 80
- #presentation_url=http://www.mylan/index.php
- # notify interval in seconds. default is 895 seconds.
- notify_interval=900
- # serial and model number the daemon will report to clients
- # in its XML description
- serial=12345678
- model_number=1
- # specify the path to the MiniSSDPd socket
- #minissdpdsocket=/var/run/minissdpd.sock
- # use different container as root of the tree
- # possible values:
- # + "." - use standard container (this is the default)
- # + "B" - "Browse Directory"
- # + "M" - "Music"
- # + "V" - "Video"
- # + "P" - "Pictures"
- # + Or, you can specify the ObjectID of your desired root container (eg. 1$F for Music/Playlists)
- # if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
- #root_container=.
- # always force SortCriteria to this value, regardless of the SortCriteria passed by the client
- #force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title
- # maximum number of simultaneous connections
- # note: many clients open several simultaneous connections while streaming
- #max_connections=50
一般只需修改media_dir参数即可 [html] view plain copy
- # V 即视频
- # 此目录下只分享视频文件
- media_dir=V,/home/aa/Videos
- # P 即图片
- # A 即音乐
- # 此目录下分享图片与音乐文件
- media_dir=PA,/home/aa/Public
Debian版minidlna_1.1.4_x64_支持rmvb
注:编译时Linux版本为Kali/Debian Wheezy x64
http://pan.baidu/s/1sjNoo3r
添加RMVB支持后的源代码
http://cloud.189/t/eqI7Zz6jAzMv
minidlna_1.1.5_x64_支持rmvb
注:编译时Linux版本为Kali 2.0 x64
http://pan.baidu/s/1A2ndO
minidlna_1.1.5_支持RMVB_源代码
sudo apt-get install build-essential libexif-dev libjpeg-dev \ libid3tag0-dev libFLAC-dev libvorbis-dev libsqlite3-dev libavformat-dev \ autoconf automake
版权声明:本文标题:MiniDLNA 1.2.1编译 添加对rmvb格式的支持 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729338761a1197303.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论