Installation de Fuppes sous Gentoo

Introduction

L’une des fonctionnalités de la Playstation 3 est la possibilité de se connecter à des serveurs UPnP, et ainsi profiter des images, musiques et vidéos disponibles sur votre serveur sans avoir besoin de les transférer. La lecture se fait en streaming.

1. Installation des dépendances

L’installation se fera via SVN. Si vous ne l’avez pas déjà, installez simplement SVN…

1
emerge -va dev-util/subversion

La compilation se fera via autoconf…

1
emerge -va sys-devel/autoconf

La fonction de transcodage est fournie par ffmpeg… Il vous faudra donc l’installer. Commencez par ajouter les flags de “use” utiles à votre make.conf. Selon Gentoo-portage.com, les flags supportés sont:
aac altivec amr debug doc ieee1394 a52 encode imlib ipv6 mmx ogg vorbis oss test theora threads truetype v4l x264 xvid network zlib sdl X

Ensuite il suffit de lancer l’emerge:

1
emerge -va media-video/ffmpeg

Allez boire un café, ca peut prendre un certain temps…

2. Installation depuis les sources

Rien de compliqué ici. Je me contente de vous faire un copier-coller de la documentation de Fuppes. J’ai juste ajouté des directives à configure.

1
2
3
4
5
6
svn co http://fuppes-svn.ulrich-voelkel.de/trunk fuppes<br />
cd fuppes/<br />
autoreconf -vfi<br />
./configure --enable-video-transcoding--enable-default-http-port=1025  --prefix=/usr<br />
make<br />
make install

Configurer le lancement automatique

Le script init.d n’est pas installé par défaut. Il vous suffit de le créer et de faire un copier-coller.

Créez les répertoires et utilisateurs utilisés par ce script:

1
2
3
mkdir /etc/fuppes<br />
mkdir /var/log/fuppes<br />
mkdir /var/lib/fuppes

Créez /etc/init.d/fuppes contenant le script suivant:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/sbin/runscript<br />
# $Header: $</p>
<p>depend() {<br />
        use net<br />
}</p>
<p>start() {<br />
        ebegin "Starting Fuppes"<br />
        start-stop-daemon --start --quiet --exec /usr/bin/fuppesd \<br />
                --chuid fuppes -- --config-dir /etc/fuppes \<br />
                --database-file /var/lib/fuppes/fuppes.db \<br />
                2>> /var/log/fuppes/fuppes.err \<br />
                >> /var/log/fuppes/fuppes.log<br />
        eend $?<br />
}</p>
<p>stop() {<br />
        ebegin "Stopping Fuppes"<br />
        start-stop-daemon --stop --quiet --exec /usr/bin/fuppesd<br />
        eend $?<br />
}

en le rendant exécutable.

Ajoutez-le en tant que service lancé au démarrage:

1
rc-update -a fuppes default

Configuration

Le script d’init aura besoin d’un fichier de configuration. Vous pourrez le modifier plus tard. Voici une bonne base (MON fichier de config)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;fuppes_config version="0.7.2.3"&gt;<br />
  &lt;shared_objects&gt;<br />
    &lt;dir&gt;/tmp&lt;/dir&gt;<br />
  &lt;/shared_objects&gt;<br />
  &lt;network&gt;<br />
    &lt;interface&gt;eth0&lt;/interface&gt;<br />
    &lt;http_port&gt;1025&lt;/http_port&gt;<br />
    &lt;allowed_ips&gt;<br />
      &lt;ip&gt;192.168.1.1&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.2&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.3&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.4&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.5&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.6&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.7&lt;/ip&gt;<br />
      &lt;ip&gt;192.168.1.8&lt;/ip&gt;<br />
    &lt;/allowed_ips&gt;<br />
  &lt;/network&gt;<br />
  &lt;content_directory&gt;<br />
    &lt;local_charset&gt;UTF-8&lt;/local_charset&gt;<br />
    &lt;!--libs used for metadata extraction when building the database. [true|false]--&gt;<br />
    &lt;use_imagemagick&gt;false&lt;/use_imagemagick&gt;<br />
    &lt;use_taglib&gt;true&lt;/use_taglib&gt;<br />
    &lt;use_libavformat&gt;true&lt;/use_libavformat&gt;<br />
  &lt;/content_directory&gt;<br />
  &lt;transcoding&gt;<br />
    &lt;audio_encoder&gt;lame&lt;/audio_encoder&gt;<br />
    &lt;transcode_vorbis&gt;true&lt;/transcode_vorbis&gt;<br />
    &lt;transcode_musepack&gt;true&lt;/transcode_musepack&gt;<br />
    &lt;transcode_flac&gt;true&lt;/transcode_flac&gt;<br />
  &lt;/transcoding&gt;<br />
  &lt;device_settings&gt;<br />
    &lt;device name="default"&gt;<br />
      &lt;!--specify the maximum length for file names (0 or empty = unlimited)--&gt;<br />
      &lt;max_file_name_length&gt;0&lt;/max_file_name_length&gt;<br />
      &lt;!--[file|container]--&gt;<br />
      &lt;playlist_style&gt;file&lt;/playlist_style&gt;<br />
      &lt;show_childcount_in_title&gt;true&lt;/show_childcount_in_title&gt;<br />
      &lt;enable_dlna&gt;false&lt;/enable_dlna&gt;<br />
      &lt;transcoding_release_delay&gt;4&lt;/transcoding_release_delay&gt;<br />
      &lt;file_settings&gt;<br />
        &lt;!--audio files--&gt;<br />
        &lt;file ext="mp3"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/mpeg&lt;/mime_type&gt;<br />
          &lt;dlna&gt;MP3&lt;/dlna&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="ogg"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;application/octet-stream&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;ext&gt;mp3&lt;/ext&gt;<br />
            &lt;mime_type&gt;audio/mpeg&lt;/mime_type&gt;<br />
            &lt;dlna&gt;MP3&lt;/dlna&gt;<br />
            &lt;http_encoding&gt;chunked&lt;/http_encoding&gt;<br />
            &lt;decoder&gt;vorbis&lt;/decoder&gt;<br />
            &lt;encoder&gt;lame&lt;/encoder&gt;<br />
            &lt;bitrate&gt;192&lt;/bitrate&gt;<br />
            &lt;samplerate&gt;44100&lt;/samplerate&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="mpc"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;application/octet-stream&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;ext&gt;mp3&lt;/ext&gt;<br />
            &lt;mime_type&gt;audio/mpeg&lt;/mime_type&gt;<br />
            &lt;dlna&gt;MP3&lt;/dlna&gt;<br />
            &lt;http_encoding&gt;chunked&lt;/http_encoding&gt;<br />
            &lt;decoder&gt;musepack&lt;/decoder&gt;<br />
            &lt;encoder&gt;lame&lt;/encoder&gt;<br />
            &lt;bitrate&gt;192&lt;/bitrate&gt;<br />
            &lt;samplerate&gt;44100&lt;/samplerate&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="wav"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/x-wav&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="flac"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/x-flac&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;ext&gt;mp3&lt;/ext&gt;<br />
            &lt;mime_type&gt;audio/mpeg&lt;/mime_type&gt;<br />
            &lt;dlna&gt;MP3&lt;/dlna&gt;<br />
            &lt;http_encoding&gt;chunked&lt;/http_encoding&gt;<br />
            &lt;decoder&gt;flac&lt;/decoder&gt;<br />
            &lt;encoder&gt;lame&lt;/encoder&gt;<br />
            &lt;bitrate&gt;192&lt;/bitrate&gt;<br />
            &lt;samplerate&gt;44100&lt;/samplerate&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="wma"&gt;<br />
          &lt;type&gt;AUDIO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/x-ms-wma&lt;/mime_type&gt;<br />
          &lt;dlna&gt;WMAFULL&lt;/dlna&gt;<br />
        &lt;/file&gt;<br />
        &lt;!--image files--&gt;<br />
        &lt;file ext="jpg"&gt;<br />
          &lt;ext&gt;jpeg&lt;/ext&gt;<br />
          &lt;type&gt;IMAGE_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;image/jpeg&lt;/mime_type&gt;<br />
          &lt;convert enabled="false"&gt;<br />
            &lt;!--&lt;dcraw enabled="true"&gt;-q 0&lt;/dcraw&gt;--&gt;<br />
            &lt;ext&gt;png&lt;/ext&gt;<br />
            &lt;mime_type&gt;image/png&lt;/mime_type&gt;<br />
            &lt;height&gt;0&lt;/height&gt;<br />
            &lt;width&gt;0&lt;/width&gt;<br />
            &lt;!--set "greater" to "true" if you only want to resize images greater than "height" or "width"--&gt;<br />
            &lt;greater&gt;false&lt;/greater&gt;<br />
            &lt;!--set "less" to "true" if you only want to resize images less than "height" or "width"--&gt;<br />
            &lt;less&gt;false&lt;/less&gt;<br />
            &lt;!--set "less" and "greater" to "false" if you always want to resize--&gt;<br />
          &lt;/convert&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="bmp"&gt;<br />
          &lt;type&gt;IMAGE_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;image/bmp&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="png"&gt;<br />
          &lt;type&gt;IMAGE_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;image/png&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="gif"&gt;<br />
          &lt;type&gt;IMAGE_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;image/gif&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;!--video files--&gt;<br />
        &lt;file ext="mpg"&gt;<br />
          &lt;ext&gt;mpeg&lt;/ext&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/mpeg&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="mp4"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/mp4&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="avi"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-msvideo&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="wmv"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-ms-wmv&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="vob"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-ms-vob&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="vdr"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-extension-vdr&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;ext&gt;vob&lt;/ext&gt;<br />
            &lt;mime_type&gt;video/x-ms-vob&lt;/mime_type&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="flv"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;application/x-flash-video&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="asf"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-ms-asf&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;!--playlists--&gt;<br />
        &lt;file ext="pls"&gt;<br />
          &lt;type&gt;PLAYLIST&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/x-scpls&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="m3u"&gt;<br />
          &lt;type&gt;PLAYLIST&lt;/type&gt;<br />
          &lt;mime_type&gt;audio/x-mpegurl&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
      &lt;/file_settings&gt;<br />
    &lt;/device&gt;<br />
    &lt;device name="PS3" enabled="true"&gt;<br />
      &lt;user_agent&gt;UPnP/1.0 DLNADOC/1.00&lt;/user_agent&gt;<br />
      &lt;user_agent&gt;PLAYSTATION3&lt;/user_agent&gt;<br />
      &lt;enable_dlna&gt;true&lt;/enable_dlna&gt;<br />
      &lt;transcoding_release_delay&gt;50&lt;/transcoding_release_delay&gt;<br />
      &lt;file_settings&gt;<br />
        &lt;file ext="ogg"&gt;<br />
          &lt;type&gt;AUDIO_ITEM_MUSIC_TRACK&lt;/type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;http_encoding&gt;stream&lt;/http_encoding&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="avi"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-divx&lt;/mime_type&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="mkv"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;video/x-matroska&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;transcoder&gt;ffmpeg&lt;/transcoder&gt;<br />
            &lt;ext&gt;mpg&lt;/ext&gt;<br />
            &lt;mime_type&gt;video/mpeg&lt;/mime_type&gt;<br />
            &lt;video_codec&gt;mpeg1video&lt;/video_codec&gt;<br />
            &lt;audio_codec&gt;mp2&lt;/audio_codec&gt;<br />
            &lt;audio_samplerate&gt;44100&lt;/audio_samplerate&gt;<br />
            &lt;audio_bitrate&gt;192000&lt;/audio_bitrate&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
        &lt;file ext="flv"&gt;<br />
          &lt;type&gt;VIDEO_ITEM&lt;/type&gt;<br />
          &lt;mime_type&gt;application/x-flash-video&lt;/mime_type&gt;<br />
          &lt;transcode enabled="true"&gt;<br />
            &lt;ext&gt;mpg&lt;/ext&gt;<br />
            &lt;mime_type&gt;video/mpeg&lt;/mime_type&gt;<br />
            &lt;transcoder&gt;ffmpeg&lt;/transcoder&gt;<br />
            &lt;video_codec&gt;mpeg1video&lt;/video_codec&gt;<br />
            &lt;audio_codec&gt;mp2&lt;/audio_codec&gt;<br />
            &lt;audio_samplerate&gt;44100&lt;/audio_samplerate&gt;<br />
            &lt;video_bitrate&gt;1800000&lt;/video_bitrate&gt;<br />
          &lt;/transcode&gt;<br />
        &lt;/file&gt;<br />
      &lt;/file_settings&gt;<br />
    &lt;/device&gt;<br />
  &lt;/device_settings&gt;<br />
&lt;/fuppes_config&gt;<br />

Ma configuration active la lecture de divx, place le serveur web sur le port 1025 et partage “/tmp”… Ce paramètre devrait être changé pour un répertoire contenant des mp3 ou des vidéos. Cette config devrait faire transcoder les matroska et vidéos .flv, mais pour l’instant je n’ai pas réussi à activer cela…

Il ne vous reste plus qu’à lancer le serveur via /etc/init.d/fuppes. Vous pourrez aussi accéder à l’interface web via le port 1025…

N’hésitez pas à laisser vos commentaires et questions si “ça marche pas”!

3 réponses à “Installation de Fuppes sous Gentoo”

9 03 2008
9 03 2008
9 03 2008
ThaNerd (13:53:02) :

La partie qui indique de traiter les .avi comme DivX est elle aussi importante…

Laisser un commentaire

Vous pouvez utiliser ces balises html : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

retaggr