Using Freebox at home, I’m lucky to have a tool to display video, music,… directly on my TV screen.
I have disks storing such multimedia content on my FreeNAS.
I was looking for a server distributing it on my home network, and I came to pms-linux, now known as ps3mediaserver
Installation
One year ago, I manually installed everything necessary, but things have changed.
On my Ubuntu server (10.04), I just need to add a specific repository to get things installed:
sudo add-apt-repository ppa:happy-neko/ps3mediaserver sudo apt-get update sudo apt-get install ps3mediaserver
That’s all ! Nothing else to install…
Now, if you want to proceed manually, you will need to install:
- mplayer
- mencoder (with a special installation required on Lucid because of a bug)
- ffmpeg
- (optional) vlc
- (optional) dcraw
- (optional) tsmuxer
- libmediainfo0 (specific repository: ppa:shiki/mediainfo)
Then you can install pms-linux:
sudo apt-get install pms-linux
Configuration
ps3mediaserver is provided with a nice User Interface.
You can start it by using command sudo ps3mediaserver
My Freebox is immediately detected as potential “renderer”, as well as my FreeNAS server (but not properly recognized: this is a non-issue, as I will never use it to display media !)
Using this interface, I personally modified the following parameters:
- List of directories to manage (Navigation tab)
- interface language (General Configuration tab)
- transconding setup (Transcoding tab)
Note that this will create configuration file in ~root/.config/ps3mediaserver
(files PMS.conf & WEB.conf)
But, when starting ps3mediaserver as a service (file /etc/init.d/ps3mediaserver
), it looks for configuration file in /etc/ps3mediaserver
…
So, I decided to setup a small hack to solve this.
Once config files are created in root directory with GUI, I stopped it (button “Quit”), and I did this:
sudo -s cd ~root/.config/ps3mediaserver mv PMC.conf WEB.conf /etc/ps3mediaserver/. ln -s /etc/ps3mediaserver/PMS.conf . ln -s /etc/ps3mediaserver/WEB.conf . exit
Note: in order to start when system is starting also, ps3mediaserver uses a start/stop script located in /etc/init.d/ps3mediaserver
(which is normal behavior…).
But… this script relies on a configuration file (/etc/default/ps3mediaserver
), which overwrites parameter PS3MS_START
. Remember to set it to “1” if you want service to autostart…
Then, I customized this configuration file (PMS.conf) even further (that’s up to you):
- I removed all sub-titles (parameter
mencoder_audiosublangs
) - I also removed thumbnails (parameter
thumbnails
) - I changed the default quality for transcoding (parameter
mencoder_encode
) - As my TV is not audio 5.1, I switched audio parameter back to “stereo” (parameter
audiochannels
)
Details of PMS.conf values are available here.
For your information, here is my PMS.conf file:
folders =/mnt/BT,/mnt/Multimedia,/mnt/Photos hostname = port = language = en thumbnails = false thumbnail_seek_pos = 60 use_mplayer_for_video_thumbs = false nbcores = turbomode = false minimized = false hidevideosettings = true usecache = false embed_dts_in_pcm = true charsetencoding = 850 engines = tsmuxer,mencoder,ffmpegaudio,mplayeraudio,tsmuxeraudio,mplayervideodump,mencoderwebvideo,vlcvideo,mplayerwebaudio,vlcaudio,rawthumbs autoloadsrt = true avisynth_convertfps = true avisynth_script = #AviSynth script is now fully customisable !\u0001#You must use the following variables (\"clip\" being the avisynth variable of the movie):\u0001#<movie>: insert the complete DirectShowSource instruction [ clip=DirectShowSource(movie, convertfps) ]\u0001#<sub>: insert the complete TextSub/VobSub instruction if there's any detected srt/sub/idx/ass subtitle file\u0001#<moviefilename>: variable of the movie filename, if you want to do all this by yourself\u0001#Be careful, the custom script MUST return the clip object\u0001<movie>\u0001<sub>\u0001return clip transcode_block_multiple_connections = false tsmuxer_forcefps = true tsmuxer_preremux_pcm = false tsmuxer_preremux_ac3 = false tsmuxer_mux_all_audiotracks = false audiochannels = 2 audiobitrate = 640 maximumbitrate = 0 skiploopfilter = false prevents_sleep_mode = true enable_archive_browsing = true maxvideobuffer = 400 mencoder_fontconfig = true mencoder_font = Ubuntu mencoder_forcefps = false mencoder_usepcm = false mencoder_usepcm_for_hq_audio_only = false mencoder_intelligent_sync = true subs_color = -1 mencoder_remux_mpeg2 = true mencoder_remux_ac3 = false mencoder_decode = mencoder_encode = keyint=5:vqscale=1:vqmin=2 mencoder_vobsub_subtitle_quality = 4 mencoder_overscan_compensation_width = 0 mencoder_overscan_compensation_height = 0 mencoder_nooutofsync = true mencoder_audiolangs = fr,en mencoder_sublangs = en mencoder_audiosublangs = off mencoder_subfribidi = false mencoder_ass = true mencoder_ass_defaultstyle = true mencoder_ass_scale = 1.0 mencoder_ass_margin = 40 mencoder_ass_outline = 2 mencoder_ass_shadow = 0 mencoder_noass_scale = 3 mencoder_noass_subpos = 13 mencoder_noass_blur = 1 mencoder_noass_outline = 4 mencoder_subcp = utf-8 mencoder_disablesubs = true mencoder_yadif = false mencoder_scaler = false mencoder_scalex = 0 mencoder_scaley = 0 ffmpeg = -g 1 -qscale 1 -qmin 2 image_thumbnails = false uuid = 31dd4720-add9-416d-b07b-64248304283f hide_enginenames = true hide_transcode_folder = true notranscode = m2ts,ts audio_thumbnails_method = 0 forced_sub_tags = forced_sub_lang = off hide_extensions = true
I also wanted a special handling of some attributes for my Freebox.
So I went and modified file /etc/ps3mediaserver/FreeboxHD.conf
- I forced not to transcode files that were created by Freebox itself (when recording a TV program and moving it to my multimedia disk): m2ts and ts extension files. This is done through parameter “StreamExtensions”
- I removed automatic extension creation for transcoded files (parameter “UseSameExtension”)
For reference, here is my FreeboxHD.conf
file:
RendererName=Freebox RendererIcon=freebox.png UserAgentSearch=fbxupnpav|libfbxhttp Video=true Audio=true Image=true SeekByTime=false #Freebox supports only Mpeg-TS : TranscodeVideo=MPEGTSAC3 MimeTypesChanges=video/mpeg=video/mp2t TranscodeAudio=WAV DefaultVBVBufSize=true MuxH264ToMpegTS=true MuxDTSToMpeg=false WrapDTSIntoPCM=false MuxLPCMToMpeg=false #fine tuned :p MaxVideoBitrateMbps=30(2400) MaxVideoWidth=0 MaxVideoHeight=0 TranscodeAudioTo441kHz=true TranscodeExtensions=wmv,asf StreamExtensions=mkv,m2ts,ts
Enjoy your multimedia server !