- 1 llink user guide
This is a wiki, if you think there is room for improvement and additions, please make your contribution!
It all starts with a configuration before you can start the llink media server. There are two files,
jukebox.conf, located in the llink directory.
Open them with a text editor and follow the instructions to make llink work to your specifications.
If you run llink from a another directory than where the llink binary is located, you must specify this when starting:
llink -f /path/to/llink.conf -w /path/to/skin/
Read the .conf files carefully and update them correctly.
When using a normal browser on a PC to use llink it is recommended to use the Moon skin. Other skins may be difficult to navigate and click on links.
A simple guide for Windows is located here: llink windows installation
It may be useful for people using other OS too.
In *nix systems you can use symlinks to help organize your media. On Windows you can use a tool called "Junctions" for NTFS drives. There is a binary with the lundftpd binary for Windows. But with multiple ROOT command support in the config files, there should be no need for symlinks.
Normally you launch llink by double clicking the llink.exe (Windows) or typing
./llink in shell (*nix).
This would start llink with the configurations as specified in the llink.conf.
Turning to your TV/Projector screen, llink should be auto-discovered by the NMT and display as "llink-daemon" or similar in the media source list. Then you navigate to it and click Enter on the remote to launch.
If the "llink-daemon" doesn't show up, you may be able to launch llink via one of the available Web Services on the NMT.
Add <IP of your source>:<port, default 8001>, ex:
192.168.1.2:8001, and then you should be able to start via the Web Service menu.
On *nix machines with multiple ethernet interfaces (gateway/router) running llink, add a route for SSDP for the internal interface to get the "llink-daemon" to show up in the media sources.
route add -net 220.127.116.11 netmask 255.0.0.0 eth1
Replace eth1 with the interface serving the NMT, you may like to add the line to "local.start" or similiar depending on distribution.
/llink - Media server engine. ./llink [-hd] [-f file] [...] options: -h : display usage help (this output) -d : stay in foreground, do not detach -v <int> : enable verbose debug information -f <file> : set configuration file to read (default: llink.conf -w <path> : Change to directory after starting -x : Scan ROOTs for media to generate XML files for jukebox skin -X : Same as -x, but XML files are saved in redirect path -s : Syabas subtitle bug that sends filename.sub$garbage -L : disable LinkTheater fix, don't close keep-alive for errors
llink verbose output options
This is good for debug, troubleshooting or just getting to know how llink works.
./llink -v <Level>
Level Debug description 0 this message 1 general debug messages 2 ssdp debug 4 http requests and header replies 8 unrar messages 16 skin messages 32 root messages 60 medium verbose messages 64 extnfo messages 128 xmlscan messages 255 very verbose 256 query messages (replies to SSDP) 512 libdvdread messages 1024 visited db messages 2048 external script messages 4096 UPnP messages
undvd makes it possible to play BD and DVD file structures ISO/IMG/video_ts etc. even straight from RAR archive files without unpacking.
./undvd <command parameter> [options] <path to archive> [filename]
./undvd - an 'unrar' clone for DVD/ISO/IMG/VIDEO_TS images. DVD and Bluray ./undvd cmd [options] archive [filename] cmd: v/l: list contents of archive p: send contents of filename in archive to stdout x: extract contents of filename in archive options: -sk <n> : seek to offset byte-count. Eg -sk100 to start from byte 100 -R <file>: filename inside RAR-archive. -R filename.iso -X <cmd> : Set direct path to unrar -A <0,1> : Audio stream solution All other options are currently silently ignored ./undvd p -sk 1234 filename.iso video.avi ./undvd p -R filename.iso -sk 1234 filename.rar video.avi Audio stream solution: 0 - no nothing, send full stream (VLC etc can handle multiple audio) 1 - patch first block only (PCH/NMT plays first stream encountered) If you want RAR streaming to have a chance of working, you need to get the special unrar with seek patched (option -sk)
llink uses a special unrar version with additional seek function, with kind permission from the original unrar author. Unrar can be used for it's normal operation aswell.
$ ./unrar -h UNRAR 3.71 beta 1 freeware Copyright (c) 1993-2007 Alexander Roshal Usage: unrar <command> -<switch 1> -<switch N> <archive> <files...> <@listfiles...> <path_to_extract\> <Commands> e Extract files to current directory l[t,b] List archive [technical, bare] p Print file to stdout t Test archive files v[t,b] Verbosely list archive [technical,bare] x Extract files with full path <Switches> - Stop switches scanning ad Append archive name to destination path ap<path> Set path inside archive av- Disable authenticity verification check c- Disable comments show cfg- Disable read configuration cl Convert names to lower case cu Convert names to upper case dh Open shared files ep Exclude paths from names ep3 Expand paths to full including the drive letter f Freshen files id[c,d,p,q] Disable messages ierr Send all messages to stderr inul Disable all messages kb Keep broken extracted files n<file> Include only specified file n@ Read file names to include from stdin n@<list> Include files in specified list file o+ Overwrite existing files o- Do not overwrite existing files or Rename files automatically ow Save or restore file owner and group p[password] Set password p- Do not query password r Recurse subdirectories sl<size> Process files with size less than specified sm<size> Process files with size more than specified sk<size> Seek to byte offset size (-m0 archives only) ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format tn<time> Process files newer than <time> to<time> Process files older than <time> ts<m,c,a>[N] Save or restore file time (modification, creation, access) u Update files v List all volumes ver[n] File version control vp Pause before each volume x<file> Exclude specified file x@ Read file names to exclude from stdin x@<list> Exclude files in specified list file y Assume Yes on all queries
Browsing your media
Use the color buttons on the Popcorn Hour A-100 remote control to browse through the media directories.
- Red = Parent directory. Pressing it many times will eventually take you to the media root
- Green = Refresh
- Yellow = Previous page
- Blue = Next page
- Navigation buttons 'Up / Down' = Go up and down in media list (A-100)
- Enter button = Enter directory/Play media (central round button on the A-100)
- Play button = Play all media in the current directory
- Setup button = Sort all presented media
Define as many sorting styles as wanted, and llink will cycle them when requested to change. The first one is the default way llink will use when started. Press the 'Setup' button on the remote control to sort, and toggle with additional key press.
llink default sort cycle is:
SORT| by name | newest first | by reverse name | oldest first
# The list flags are: # # -t Sort list in date order # -N Sort list in name order # -r Reverse sorting order # -D Sort directories before files. (Like Windows) # -s Sort list in size order # -C Case insensitive sorting. (Like Windows) # -a Show dot-files # -W Show directory content size instead of block count (expensive) # -G If found ".genre" file, display this instead of group field. # #SORT|SET="-CND"|SET="-Ct"|SET="-CNDr"|SET="-Ctr" SORT|SET="-WCND"|SET="-WCt"|SET="-WCNDr"|SET="-WCtr"
As specified in the configuration, you can place supported subtitle files either in the same directory as the movie, or in a separate directory just for subs, e.g. a re-direct folder which is specified in the llink configuration file. In either case, the sub file must have the exact same name as the movie file, apart from the extension.
When using external subtitles with ISO, IMG or TS_folder, you must rename the subtitle file to the same as the movie file played, for instance an ISO called Some.Movie.iso will not play a subtitle file called Some.Movie.srt, instead you need to see what the actually played file is called inside the ISO.
The subtitle format support follows what Syabas NMT supplies in their firmware. For the A-100 model look here: PopcornHour.com
At the time of writing this documentation, there is a bug in the NMT firmware that incorrectly replaces the extension with .SUB without string termination. (Garbage follows the filename.) You can use llink -s to enable a work around until Syabas can fix said bug.
Skins with cover art and media info
The file jukebox.conf holds the configuration needed to run the cover art & media info skin "Jukebox". Another jukebox style skin is "Kamishi_skies". Normally we only want to see movies from a Jukebox skin, which the jukebox.conf is optimized for.
The movie information is stored in xml files, one for each movie. You will need to download cover art and populate an xml file with movie meta information - llink can display the supported tags listed here: Llink:macros.
Creating xml's manually can be tedious work on large volume media libraries, so luckily we can use various utilities to scrape information from the imdb site.
Note: just like the default configuration file
llink.conf you have to edit the
jukebox.conf file before you start llink!
- Set the path(s) to your media ROOT's
- Set the path to the xml re-direct folder, e.g. create a directory with both read/write permissions where llink can store the additional files needed.
- llink should be compatible with the MyMovies application (Windows only, free for personal use), which can auto-generate xml files for your collection.
- Another tool is the open source java based imdbit, originally created by Wesley Elder.
- Yet another option is to use PiXL. Popeys's Imdb to Xml for Llink, which is a web service for manual or scripted media scraping. More detailed information and scripts can be found here.
- llink features it's own basic command line imdb scraper too. To run that type:
./llink -d -X -f jukebox.confor
./llink -d -x -f jukebox.confdepending upon if you use a re-direct folder or not. (Skip the ./ if you work in Windows environment). This will start a process where you can choose an imdb code listed that correspond to your media files and trigger download of album art and media information. If none is suggested just search www.imdb.com in a browser and enter the imdb code manually.
If you have movies that are not properly indexed in imdb you can always edit the xml files manually. Under normal circumstances this should hopefully be a matter of a few exceptions.
Once you are done, or if you already have your xml's and album art files in place, just start llink normally with the corresponding conf file, for instance:
./llink -f jukebox.conf
Pressing the Menu button on the remote control invokes a special llink menu (from v2.0.8).
- Play All: Play all media in a directory.
- Delete: Deletes file or directory. Note: recursive delete may be enabled, check your conf file!
- Unrar: Unrar's a RAR archive. May take some time if used on a small resource device such as a NAS. Note: [info]
- Mount: Mounts an iso file. This is a WISH item to be added to, ntfs-3g etc.
- Enter PIN: Sets a pin code PIN that enables the display of hidden .directories until you clear the PIN, or a 15 minute timeout. Default pin is: 1234
- Clear PIN: Remove pin access on a file or directory
- Quit llink: Tries to quit llink gracefully. Useful when running llink from a mounted share, for instance a USB stick.
You can add or remove items in the menu by editing the skin html files, for example adding custom user scripts.
Parental control with pincode
Put the movies you want to protect in .directories, eg directories where the name begins with a '.' (dot) such as
.Horror. Define the PIN number in the conf file. Windows users can use Windows style $Horror$ names as well.
EXPERIMENTAL: If you want to run more than one instance of llink, for example one with jukebox skin and another with the Aquarius, make jukebox.conf and llink.conf (or whatever you name the conf files) to use distinct port numbers. The default for llink is 8001, and Jukebox 8002. Also make sure the
NAME=llink-daemon is unique in each conf file, ie call one llink-daemon, the other llink-jukebox.
With this you can start two instances, or as many as you want.
Playing from a DVD disc drive
You can access a USB DVD drive or a shared drive from a PC/Mac. You should be able to play all non-encrypted discs and some retail discs. The latter depends upon libdvdcss capacity. Please note that playback is basic; Time seek, fast forward and rewind do not work but you can use numeric keys on the remote to skip (1 for 10%, 2 for 20% etc.).
Remove the # comment in the following line in the llink.conf file:
Then update the path to your DVD drive. On a Mac the path could be found like this in Terminal:
# diskutil list /dev/disk4 #: TYPE NAME SIZE IDENTIFIER 0: DRHORRIBLE *3.8 Gi disk4
Which will resulting line in the llink.conf file:
On llink for Windows it could look like:
(This section needs to be verified, but it's probably path=D:\ or d:/)
If the DVD drive is connected via USB to your NMT the line could look like this:
(This section needs to be verified, but it's probably path=/dev/disk1)
And if the drive is shared from a PC/Mac, played from the llink-nmt; map the shared disc in the NMT settings over NFS or SMB and use:
(This section needs to be verified, but it's probably path=/opt/sybhttpd/localhost.drives/NETWORK_SHARE/<the drive share name>)
Watching live TV
With some minor changes, you can watch live TV streams via llink on your NMT device. Read more here: Llink:Live_TV
Using external jukeboxes
You can run other more or less "static" jukeboxes such as YAMJ through llink and still benefit from the many possibilities llink offers:
- On the NMT forum: http://www.networkedmediatank.com/showthread.php?tid=22634 or http://www.networkedmediatank.com/showthread.php?tid=22634
- On the YAMJ wiki: http://code.google.com/p/moviejukebox/wiki/Using_YAMJ_With_LLink
In order for llink and YAMJ (or other external Jukebox) to work, two conditions need to be met:
- the index file must be named index.html
- the index file must be in a llink ROOT folder (defined in the llink.conf file)
Playing mts files directly from Camcorder
According to a user on the NMT forum, by using llink-nmt on a PopcornHour A-110 it was possible to play all AVCHD files with mts extension directly from the camcorder (a SONY TG1, aka TG3 in Europe).