Updated documentation
This commit is contained in:
@@ -1,22 +1,22 @@
|
|||||||
LMS - Lightweight Media Server
|
LMS - Lightweight Media Server
|
||||||
|
|
||||||
|
|
||||||
LMS is a free media streaming software, released under the GPLv3 license.
|
LMS is a self-hosted media streaming software, released under the GPLv3 license.
|
||||||
It allows you to access your music and your videos using an https web interface.
|
It allows you to access your music and your videos using an https web interface.
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
- Winamp-like interface, suited for large databases
|
||||||
|
- Audio/Video transcode for maximum interoperability and low bandwith requirements
|
||||||
- User management
|
- User management
|
||||||
- Fast "Winamp-style" interface
|
- API available in Protocol Buffers (see src/remote/proto/messages.proto)
|
||||||
- Audio/Video transcode (including downsampling), based on the libav project (see https://www.libav.org/).
|
|
||||||
- Custom API to access data using Protocol Buffers format over TCP/SSL (see https://github.com/google/protobuf/ and src/remote/proto)
|
|
||||||
|
|
||||||
Please note LMS is still under development and will gain more features in the future.
|
Please note LMS is still under development and will gain more features in the future.
|
||||||
An android application is being developped as well.
|
A mobile application based on Kivy is being developped as well.
|
||||||
|
|
||||||
LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited.
|
LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited.
|
||||||
Please note some media files may require significant CPU usage to be transcoded.
|
Please note some media files may require significant CPU usage to be transcoded.
|
||||||
|
|
||||||
I) DEPENCIES
|
I) DEPENDENCIES
|
||||||
|
|
||||||
Debian packages:
|
Debian packages:
|
||||||
g++ autoconf automake libboost-dev libavcodec-dev libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libprotobuf-dev libconfig++-dev libprotobuf-dev protobuf-compiler libjpeg8-dev libavcodec-dev libavformat-dev libavutil-dev
|
g++ autoconf automake libboost-dev libavcodec-dev libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libprotobuf-dev libconfig++-dev libprotobuf-dev protobuf-compiler libjpeg8-dev libavcodec-dev libavformat-dev libavutil-dev
|
||||||
@@ -37,7 +37,7 @@ II) BUILD
|
|||||||
|
|
||||||
III) Setting up SSL materials (required by the SSL server and the web server)
|
III) Setting up SSL materials (required by the SSL server and the web server)
|
||||||
|
|
||||||
This is just an example, you could do whatever you want (ca, self signed cert, etc.)
|
This is just a self signed certificate example, you could do use a CA if you want.
|
||||||
|
|
||||||
Generate a dh file:
|
Generate a dh file:
|
||||||
# openssl dhparam -out dh2048.pem 2048
|
# openssl dhparam -out dh2048.pem 2048
|
||||||
@@ -57,3 +57,9 @@ Create the lms.conf file using the etc/lms.sample.conf
|
|||||||
|
|
||||||
Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key.
|
Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key.
|
||||||
|
|
||||||
|
V) LINKS
|
||||||
|
|
||||||
|
- Wt (http://www.webtoolkit.eu/)
|
||||||
|
- bootstrap3 (http://getbootstrap.com/)
|
||||||
|
- libav project (https://www.libav.org/).
|
||||||
|
- Protocol Buffers (https://github.com/google/protobuf/)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
- OGG metadata -> properly handle metadata nested in the audio stream
|
- OGG metadata -> properly handle metadata nested in the audio stream
|
||||||
|
|
||||||
[Transcode]
|
[Transcode]
|
||||||
- some early end of playback spotted on flac files
|
- some early end of playback spotted on flac files. Spotted on old firefox versions?
|
||||||
|
|
||||||
[UI]
|
[UI]
|
||||||
- handle internationalization
|
- handle internationalization
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
- "signal not exposed" problem if a user logout and login again. bad resource destruction?
|
- "signal not exposed" problem if a user logout and login again. bad resource destruction?
|
||||||
[user/transcoding]
|
[user/transcoding]
|
||||||
- Prefered codecs for audio/video?
|
- Prefered codecs for audio/video?
|
||||||
|
- use a slider instead of a combo box for the bitrates
|
||||||
[admin/Users]
|
[admin/Users]
|
||||||
- do not activate the update period/start time when 'admin' is checked
|
- do not activate the update period/start time when 'admin' is checked
|
||||||
[admin/Database update]
|
[admin/Database update]
|
||||||
@@ -39,10 +40,11 @@
|
|||||||
|
|
||||||
[Audio]
|
[Audio]
|
||||||
- Style eveything nicely...
|
- Style eveything nicely...
|
||||||
- MediaPlayer: move slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478)
|
- MediaPlayer: move the slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478)
|
||||||
- TrackView : handle duration > 1 hour
|
- TrackView : handle duration > 1 hour
|
||||||
- TrackView : Reselect the current selected item when displaying the updated search results
|
- TrackView : Reselect the current selected item when displaying the updated search results
|
||||||
- Add covers in the release filter?
|
- Add covers in the release filter?
|
||||||
|
- Add a download button to get the current playlist in a streamed zip file
|
||||||
|
|
||||||
[Video]
|
[Video]
|
||||||
- implement a decent mediaplayer
|
- implement a decent mediaplayer
|
||||||
|
|||||||
@@ -5,6 +5,16 @@ import "media.proto";
|
|||||||
|
|
||||||
package Remote;
|
package Remote;
|
||||||
|
|
||||||
|
// Every request sent by the client must be a ClientMessage
|
||||||
|
// The server will answer using a ServerMessage
|
||||||
|
//
|
||||||
|
// The client must authenticate first before querying data
|
||||||
|
// If an expected message is received, the connection is dropped by the server
|
||||||
|
//
|
||||||
|
// A header is to be added before the serialized protobuf message in order to keep
|
||||||
|
// track of where one message ends and the next begins.
|
||||||
|
// Format:
|
||||||
|
// MAGIC (4 bytes, 0xDE, 0xAD, 0xBE, 0xEF)- SIZE (4 bytes, big endian encoded) - serialized proto message
|
||||||
message ClientMessage
|
message ClientMessage
|
||||||
{
|
{
|
||||||
enum Type
|
enum Type
|
||||||
|
|||||||
Reference in New Issue
Block a user