remove ffpapi references
This commit is contained in:
parent
4dc6feab30
commit
26ec945921
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,7 +20,6 @@
|
|||||||
*.deb
|
*.deb
|
||||||
*.rpm
|
*.rpm
|
||||||
ffplayout.1.gz
|
ffplayout.1.gz
|
||||||
ffpapi.1.gz
|
|
||||||
/assets/*.db*
|
/assets/*.db*
|
||||||
/dist/
|
/dist/
|
||||||
/public/
|
/public/
|
||||||
|
@ -59,10 +59,6 @@ For preview stream, read: [/docs/preview_stream.md](/docs/preview_stream.md)
|
|||||||
|
|
||||||
**\* Experimental features do not guarantee the same stability and may fail under unusual circumstances. Code and configuration options may change in the future.**
|
**\* Experimental features do not guarantee the same stability and may fail under unusual circumstances. Code and configuration options may change in the future.**
|
||||||
|
|
||||||
## **ffplayout-api (ffpapi)**
|
|
||||||
|
|
||||||
ffpapi serves the [frontend](https://github.com/ffplayout/ffplayout-frontend) and it acts as a [REST API](/ffplayout-api/README.md) for controlling the engine, manipulate playlists, add settings etc.
|
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- RAM and CPU depends on video resolution, minimum 4 threads and 3GB RAM for 720p are recommend
|
- RAM and CPU depends on video resolution, minimum 4 threads and 3GB RAM for 720p are recommend
|
||||||
|
2
debian/postinst
vendored
2
debian/postinst
vendored
@ -19,7 +19,7 @@ if [ ! -d "/usr/share/ffplayout/db" ]; then
|
|||||||
|
|
||||||
IP=$(hostname -I | cut -d ' ' -f1)
|
IP=$(hostname -I | cut -d ' ' -f1)
|
||||||
|
|
||||||
/usr/bin/ffpapi -i -d "${IP}:8787"
|
/usr/bin/ffplayout -i -d "${IP}:8787"
|
||||||
|
|
||||||
chown -R ${sysUser}: "/usr/share/ffplayout"
|
chown -R ${sysUser}: "/usr/share/ffplayout"
|
||||||
chown -R ${sysUser}: "/var/lib/ffplayout"
|
chown -R ${sysUser}: "/var/lib/ffplayout"
|
||||||
|
@ -29,12 +29,9 @@ RUN dnf update -y && \
|
|||||||
RUN [[ -f /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm ]] || wget -q "https://github.com/ffplayout/ffplayout/releases/download/v${FFPLAYOUT_VERSION}/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm" -P /tmp/ && \
|
RUN [[ -f /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm ]] || wget -q "https://github.com/ffplayout/ffplayout/releases/download/v${FFPLAYOUT_VERSION}/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm" -P /tmp/ && \
|
||||||
dnf install -y /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
dnf install -y /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
||||||
rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
||||||
sed -i "s/User=ffpu/User=root/g" /usr/lib/systemd/system/ffpapi.service && \
|
|
||||||
sed -i "s/User=ffpu/User=root/g" /usr/lib/systemd/system/ffplayout.service && \
|
sed -i "s/User=ffpu/User=root/g" /usr/lib/systemd/system/ffplayout.service && \
|
||||||
sed -i "s/User=ffpu/User=root/g" /usr/lib/systemd/system/ffplayout@.service && \
|
|
||||||
systemctl enable ffplayout && \
|
systemctl enable ffplayout && \
|
||||||
systemctl enable ffpapi && \
|
ffplayout -u admin -p admin -m contact@example.com
|
||||||
ffpapi -u admin -p admin -m contact@example.com
|
|
||||||
|
|
||||||
EXPOSE 8787
|
EXPOSE 8787
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ You can take a look at the [Dockerfile](Dockerfile)
|
|||||||
## Storage
|
## Storage
|
||||||
|
|
||||||
There are some folders/files that are important for ffplayout to work well such as:
|
There are some folders/files that are important for ffplayout to work well such as:
|
||||||
- **/usr/share/ffplayout/db** => where all the data for the `ffpapi` are stored (user/pass etc)
|
- **/usr/share/ffplayout/db** => where all the data are stored (user/pass etc)
|
||||||
- **/var/lib/ffplayout/tv-media** => where the media are stored by default (configurable)
|
- **/var/lib/ffplayout/tv-media** => where the media are stored by default (configurable)
|
||||||
- **/var/lib/ffplayout/playlists** => where playlists are stored (configurable)
|
- **/var/lib/ffplayout/playlists** => where playlists are stored (configurable)
|
||||||
- **/etc/ffplayout/ffplayout.yml** => the core config file
|
- **/etc/ffplayout/ffplayout.yml** => the core config file
|
||||||
|
@ -139,7 +139,6 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib
|
|||||||
COPY --from=build /usr/local/ /usr/local/
|
COPY --from=build /usr/local/ /usr/local/
|
||||||
|
|
||||||
ADD ./overide.conf /etc/systemd/system/ffplayout.service.d/overide.conf
|
ADD ./overide.conf /etc/systemd/system/ffplayout.service.d/overide.conf
|
||||||
ADD ./overide.conf /etc/systemd/system/ffpapi.service.d/overide.conf
|
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
dnf update -y \
|
dnf update -y \
|
||||||
@ -155,8 +154,7 @@ RUN \
|
|||||||
rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm && \
|
||||||
mkdir -p /home/ffpu && chown -R ffpu: /home/ffpu && \
|
mkdir -p /home/ffpu && chown -R ffpu: /home/ffpu && \
|
||||||
systemctl enable ffplayout && \
|
systemctl enable ffplayout && \
|
||||||
systemctl enable ffpapi && \
|
ffplayout -u admin -p admin -m contact@example.com
|
||||||
ffpapi -u admin -p admin -m contact@example.com
|
|
||||||
|
|
||||||
EXPOSE 8787
|
EXPOSE 8787
|
||||||
|
|
||||||
|
@ -102,8 +102,7 @@ RUN yum update -y \
|
|||||||
&& echo 'Docker!' | passwd --stdin root \
|
&& echo 'Docker!' | passwd --stdin root \
|
||||||
&& rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm \
|
&& rm /tmp/ffplayout-${FFPLAYOUT_VERSION}-1.x86_64.rpm \
|
||||||
&& mkdir -p /home/ffpu && chown -R ffpu: /home/ffpu \
|
&& mkdir -p /home/ffpu && chown -R ffpu: /home/ffpu \
|
||||||
&& systemctl enable ffplayout \
|
&& systemctl enable ffplayout
|
||||||
&& systemctl enable ffpapi
|
|
||||||
|
|
||||||
EXPOSE 8787
|
EXPOSE 8787
|
||||||
RUN echo "/usr/local/lib" >> /etc/ld.so.conf.d/nvidia.conf
|
RUN echo "/usr/local/lib" >> /etc/ld.so.conf.d/nvidia.conf
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## Advanced settings
|
## Advanced settings
|
||||||
|
|
||||||
Within **/etc/ffplayout/advanced.yml** you can control all ffmpeg inputs/decoder output and filters.
|
With **advanced settings** you can control all ffmpeg inputs/decoder output and filters.
|
||||||
|
|
||||||
> **_Note:_** Changing these settings is for advanced users only! There will be no support or guarantee that it will work and be stable after changing them!
|
> **_Note:_** Changing these settings is for advanced users only! There will be no support or guarantee that it will work and be stable after changing them!
|
||||||
|
|
||||||
|
47
docs/api.md
47
docs/api.md
@ -1,9 +1,9 @@
|
|||||||
## Possible endpoints
|
### Possible endpoints
|
||||||
|
|
||||||
Run the API thru the systemd service, or like:
|
Run the API thru the systemd service, or like:
|
||||||
|
|
||||||
```BASH
|
```BASH
|
||||||
ffpapi -l 127.0.0.1:8787
|
ffplayout -l 127.0.0.1:8787
|
||||||
```
|
```
|
||||||
|
|
||||||
For all endpoints an (Bearer) authentication is required.\
|
For all endpoints an (Bearer) authentication is required.\
|
||||||
@ -72,7 +72,7 @@ curl -X GET 'http://127.0.0.1:8787/api/user/2' -H 'Content-Type: application/jso
|
|||||||
-H 'Authorization: Bearer <TOKEN>'
|
-H 'Authorization: Bearer <TOKEN>'
|
||||||
```
|
```
|
||||||
|
|
||||||
#### ffpapi Settings
|
#### Settings
|
||||||
|
|
||||||
**Get Settings from Channel**
|
**Get Settings from Channel**
|
||||||
|
|
||||||
@ -87,9 +87,7 @@ curl -X GET http://127.0.0.1:8787/api/channel/1 -H "Authorization: Bearer <TOKEN
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "Channel 1",
|
"name": "Channel 1",
|
||||||
"preview_url": "http://localhost/live/preview.m3u8",
|
"preview_url": "http://localhost/live/preview.m3u8",
|
||||||
"config_path": "/etc/ffplayout/ffplayout.yml",
|
|
||||||
"extra_extensions": "jpg,jpeg,png",
|
"extra_extensions": "jpg,jpeg,png",
|
||||||
"service": "ffplayout.service",
|
|
||||||
"utc_offset": "+120"
|
"utc_offset": "+120"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -104,7 +102,7 @@ curl -X GET http://127.0.0.1:8787/api/channels -H "Authorization: Bearer <TOKEN>
|
|||||||
|
|
||||||
```BASH
|
```BASH
|
||||||
curl -X PATCH http://127.0.0.1:8787/api/channel/1 -H "Content-Type: application/json" \
|
curl -X PATCH http://127.0.0.1:8787/api/channel/1 -H "Content-Type: application/json" \
|
||||||
-d '{ "id": 1, "name": "Channel 1", "preview_url": "http://localhost/live/stream.m3u8", "config_path": "/etc/ffplayout/ffplayout.yml", "extra_extensions": "jpg,jpeg,png"}' \
|
-d '{ "id": 1, "name": "Channel 1", "preview_url": "http://localhost/live/stream.m3u8", "extra_extensions": "jpg,jpeg,png"}' \
|
||||||
-H "Authorization: Bearer <TOKEN>"
|
-H "Authorization: Bearer <TOKEN>"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -112,7 +110,7 @@ curl -X PATCH http://127.0.0.1:8787/api/channel/1 -H "Content-Type: application/
|
|||||||
|
|
||||||
```BASH
|
```BASH
|
||||||
curl -X POST http://127.0.0.1:8787/api/channel/ -H "Content-Type: application/json" \
|
curl -X POST http://127.0.0.1:8787/api/channel/ -H "Content-Type: application/json" \
|
||||||
-d '{ "name": "Channel 2", "preview_url": "http://localhost/live/channel2.m3u8", "config_path": "/etc/ffplayout/channel2.yml", "extra_extensions": "jpg,jpeg,png", "service": "ffplayout@channel2.service" }' \
|
-d '{ "name": "Channel 2", "preview_url": "http://localhost/live/channel2.m3u8", "extra_extensions": "jpg,jpeg,png" }' \
|
||||||
-H "Authorization: Bearer <TOKEN>"
|
-H "Authorization: Bearer <TOKEN>"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -130,7 +128,7 @@ curl -X DELETE http://127.0.0.1:8787/api/channel/2 -H "Authorization: Bearer <TO
|
|||||||
curl -X GET http://127.0.0.1:8787/api/playout/config/1 -H 'Authorization: Bearer <TOKEN>'
|
curl -X GET http://127.0.0.1:8787/api/playout/config/1 -H 'Authorization: Bearer <TOKEN>'
|
||||||
```
|
```
|
||||||
|
|
||||||
Response is a JSON object from the ffplayout.yml
|
Response is a JSON object from the ffplayout.toml
|
||||||
|
|
||||||
**Update Config**
|
**Update Config**
|
||||||
|
|
||||||
@ -210,38 +208,19 @@ curl -X GET http://127.0.0.1:8787/api/control/1/media/current
|
|||||||
**Response:**
|
**Response:**
|
||||||
|
|
||||||
```JSON
|
```JSON
|
||||||
{
|
{
|
||||||
"jsonrpc": "2.0",
|
"media": {
|
||||||
"result": {
|
|
||||||
"current_media": {
|
|
||||||
"category": "",
|
"category": "",
|
||||||
"duration": 154.2,
|
"duration": 154.2,
|
||||||
"out": 154.2,
|
"out": 154.2,
|
||||||
"seek": 0.0,
|
"in": 0.0,
|
||||||
"source": "/opt/tv-media/clip.mp4"
|
"source": "/opt/tv-media/clip.mp4"
|
||||||
},
|
},
|
||||||
"index": 39,
|
"index": 39,
|
||||||
"play_mode": "playlist",
|
"ingest": false,
|
||||||
"played_sec": 67.80771999300123,
|
"mode": "playlist",
|
||||||
"remaining_sec": 86.39228000699876,
|
"played": 67.808
|
||||||
"start_sec": 24713.631999999998,
|
}
|
||||||
"start_time": "06:51:53.631"
|
|
||||||
},
|
|
||||||
"id": 1
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Get next Clip**
|
|
||||||
|
|
||||||
```BASH
|
|
||||||
curl -X GET http://127.0.0.1:8787/api/control/1/media/next -H 'Authorization: Bearer <TOKEN>'
|
|
||||||
```
|
|
||||||
|
|
||||||
**Get last Clip**
|
|
||||||
|
|
||||||
```BASH
|
|
||||||
curl -X GET http://127.0.0.1:8787/api/control/1/media/last
|
|
||||||
-H 'Content-Type: application/json' -H 'Authorization: Bearer <TOKEN>'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### ffplayout Process Control
|
#### ffplayout Process Control
|
||||||
|
@ -7,32 +7,26 @@ ffplayout provides ***.deb** and ***.rpm** packages, which makes it more easy to
|
|||||||
3. install ffmpeg/ffprobe, or compile and copy it to **/usr/local/bin/**
|
3. install ffmpeg/ffprobe, or compile and copy it to **/usr/local/bin/**
|
||||||
4. activate systemd services:
|
4. activate systemd services:
|
||||||
- `systemctl enable ffplayout`
|
- `systemctl enable ffplayout`
|
||||||
- `systemctl enable --now ffpapi`
|
5. add admin:
|
||||||
5. add admin user to ffpapi:
|
- `ffplayout -a`
|
||||||
- `ffpapi -a`
|
|
||||||
6. use a revers proxy for SSL, Port is **8787**.
|
6. use a revers proxy for SSL, Port is **8787**.
|
||||||
7. login with your browser, address without proxy would be: **http://[IP ADDRESS]:8787**
|
7. login with your browser, address without proxy would be: **http://[IP ADDRESS]:8787**
|
||||||
|
|
||||||
Default location for playlists and media files are: **/var/lib/ffplayout/**.
|
Default location for playlists and media files are: **/var/lib/ffplayout/**.
|
||||||
|
|
||||||
When you don't need the frontend and API, skip enable the systemd service **ffpapi**.
|
|
||||||
|
|
||||||
When playlists are created and the ffplayout output is configured, you can start the process: `systemctl start ffplayout`, or click start in frontend.
|
When playlists are created and the ffplayout output is configured, you can start the process: `systemctl start ffplayout`, or click start in frontend.
|
||||||
|
|
||||||
If you want to configure ffplayout over terminal, you can edit **/etc/ffplayout/ffplayout.yml**.
|
|
||||||
|
|
||||||
### Manual Install
|
### Manual Install
|
||||||
-----
|
-----
|
||||||
|
|
||||||
- install ffmpeg/ffprobe, or compile and copy it to **/usr/local/bin/**
|
- install ffmpeg/ffprobe, or compile and copy it to **/usr/local/bin/**
|
||||||
- download the latest archive from [release](https://github.com/ffplayout/ffplayout/releases/latest) page
|
- download the latest archive from [release](https://github.com/ffplayout/ffplayout/releases/latest) page
|
||||||
- copy the ffplayout and ffpapi binary to `/usr/bin/`
|
- copy the ffplayout binary to `/usr/bin/`
|
||||||
- copy **assets/ffplayout.yml** to `/etc/ffplayout`
|
- copy **assets/ffplayout.yml** to `/etc/ffplayout`
|
||||||
- create folder `/var/log/ffplayout`
|
- create folder `/var/log/ffplayout`
|
||||||
- create system user **ffpu**
|
- create system user **ffpu**
|
||||||
- give ownership from `/etc/ffplayout` and `/var/log/ffplayout` to **ffpu**
|
- give ownership from `/etc/ffplayout` and `/var/log/ffplayout` to **ffpu**
|
||||||
- copy **assets/ffpapi.service**, **assets/ffplayout.service** and **assets/ffplayout@.service** to `/etc/systemd/system`
|
- copy **assets/ffplayout.service** to `/etc/systemd/system`
|
||||||
- copy **assets/11-ffplayout** to `/etc/sudoers.d/`
|
- copy **assets/ffplayout.1.gz** to `/usr/share/man/man1/`
|
||||||
- copy **assets/ffpapi.1.gz** and **assets/ffplayout.1.gz** to `/usr/share/man/man1/`
|
|
||||||
- copy **public** folder to `/usr/share/ffplayout/`
|
- copy **public** folder to `/usr/share/ffplayout/`
|
||||||
- activate service and run it: `systemctl enable --now ffpapi ffplayout`
|
- activate service and run it: `systemctl enable --now ffplayout`
|
||||||
|
@ -72,7 +72,7 @@ In this mode you can output directly to a hls playlist. The nice thing here is,
|
|||||||
|
|
||||||
HLS output is currently the default, mostly because it works out of the box and don't need a streaming target. In default settings it saves the segments to **/usr/share/ffplayout/public/live/**.
|
HLS output is currently the default, mostly because it works out of the box and don't need a streaming target. In default settings it saves the segments to **/usr/share/ffplayout/public/live/**.
|
||||||
|
|
||||||
**It is recommend to serve the HLS stream with nginx or another web server, and not with ffpapi (which is more meant for previewing).**
|
**It is recommend to serve the HLS stream with nginx or another web server, and not with ffplayout (which is more meant for previewing).**
|
||||||
|
|
||||||
**HLS multiple outputs example:**
|
**HLS multiple outputs example:**
|
||||||
|
|
||||||
|
@ -2,10 +2,10 @@ use static_files::NpmBuild;
|
|||||||
|
|
||||||
fn main() -> std::io::Result<()> {
|
fn main() -> std::io::Result<()> {
|
||||||
if !cfg!(debug_assertions) && cfg!(feature = "embed_frontend") {
|
if !cfg!(debug_assertions) && cfg!(feature = "embed_frontend") {
|
||||||
NpmBuild::new("../ffplayout-frontend")
|
NpmBuild::new("../frontend")
|
||||||
.install()?
|
.install()?
|
||||||
.run("generate")?
|
.run("generate")?
|
||||||
.target("../ffplayout-frontend/.output/public")
|
.target("../frontend/.output/public")
|
||||||
.change_detection()
|
.change_detection()
|
||||||
.to_resource_dir()
|
.to_resource_dir()
|
||||||
.build()
|
.build()
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
/// Run the API thru the systemd service, or like:
|
/// Run the API thru the systemd service, or like:
|
||||||
///
|
///
|
||||||
/// ```BASH
|
/// ```BASH
|
||||||
/// ffpapi -l 127.0.0.1:8787
|
/// ffplayout -l 127.0.0.1:8787
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// For all endpoints an (Bearer) authentication is required.\
|
/// For all endpoints an (Bearer) authentication is required.\
|
||||||
@ -377,7 +377,7 @@ async fn remove_user(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// #### ffpapi Settings
|
/// #### Settings
|
||||||
///
|
///
|
||||||
/// **Get Settings from Channel**
|
/// **Get Settings from Channel**
|
||||||
///
|
///
|
||||||
@ -392,9 +392,7 @@ async fn remove_user(
|
|||||||
/// "id": 1,
|
/// "id": 1,
|
||||||
/// "name": "Channel 1",
|
/// "name": "Channel 1",
|
||||||
/// "preview_url": "http://localhost/live/preview.m3u8",
|
/// "preview_url": "http://localhost/live/preview.m3u8",
|
||||||
/// "config_path": "/etc/ffplayout/ffplayout.toml",
|
|
||||||
/// "extra_extensions": "jpg,jpeg,png",
|
/// "extra_extensions": "jpg,jpeg,png",
|
||||||
/// "service": "ffplayout.service",
|
|
||||||
/// "utc_offset": "+120"
|
/// "utc_offset": "+120"
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
@ -430,7 +428,7 @@ async fn get_all_channels(pool: web::Data<Pool<Sqlite>>) -> Result<impl Responde
|
|||||||
///
|
///
|
||||||
/// ```BASH
|
/// ```BASH
|
||||||
/// curl -X PATCH http://127.0.0.1:8787/api/channel/1 -H "Content-Type: application/json" \
|
/// curl -X PATCH http://127.0.0.1:8787/api/channel/1 -H "Content-Type: application/json" \
|
||||||
/// -d '{ "id": 1, "name": "Channel 1", "preview_url": "http://localhost/live/stream.m3u8", "config_path": "/etc/ffplayout/ffplayout.toml", "extra_extensions": "jpg,jpeg,png"}' \
|
/// -d '{ "id": 1, "name": "Channel 1", "preview_url": "http://localhost/live/stream.m3u8", "extra_extensions": "jpg,jpeg,png"}' \
|
||||||
/// -H "Authorization: Bearer <TOKEN>"
|
/// -H "Authorization: Bearer <TOKEN>"
|
||||||
/// ```
|
/// ```
|
||||||
#[patch("/channel/{id}")]
|
#[patch("/channel/{id}")]
|
||||||
@ -454,7 +452,7 @@ async fn patch_channel(
|
|||||||
///
|
///
|
||||||
/// ```BASH
|
/// ```BASH
|
||||||
/// curl -X POST http://127.0.0.1:8787/api/channel/ -H "Content-Type: application/json" \
|
/// curl -X POST http://127.0.0.1:8787/api/channel/ -H "Content-Type: application/json" \
|
||||||
/// -d '{ "name": "Channel 2", "preview_url": "http://localhost/live/channel2.m3u8", "config_path": "/etc/ffplayout/channel2.toml", "extra_extensions": "jpg,jpeg,png", "service": "ffplayout@channel2.service" }' \
|
/// -d '{ "name": "Channel 2", "preview_url": "http://localhost/live/channel2.m3u8", "extra_extensions": "jpg,jpeg,png" }' \
|
||||||
/// -H "Authorization: Bearer <TOKEN>"
|
/// -H "Authorization: Bearer <TOKEN>"
|
||||||
/// ```
|
/// ```
|
||||||
#[post("/channel/")]
|
#[post("/channel/")]
|
||||||
|
@ -230,7 +230,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
.run()
|
.run()
|
||||||
.await
|
.await
|
||||||
} else {
|
} else {
|
||||||
error!("Run ffpapi with listen parameter!");
|
error!("Run ffplayout with listen parameter!");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,7 @@ pub async fn run_args() -> Result<(), i32> {
|
|||||||
let mut args = ARGS.clone();
|
let mut args = ARGS.clone();
|
||||||
|
|
||||||
if args.listen.is_none() && !args.ask && args.username.is_none() {
|
if args.listen.is_none() && !args.ask && args.username.is_none() {
|
||||||
eprintln!("Wrong number of arguments! Run ffpapi --help for more information.");
|
eprintln!("Wrong number of arguments! Run ffplayout --help for more information.");
|
||||||
|
|
||||||
return Err(0);
|
return Err(0);
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ CREATE TABLE
|
|||||||
task_help TEXT NOT NULL DEFAULT "Run an external program with a given media object. The media object is in json format and contains all the information about the current clip. The external program can be a script or a binary, but should only run for a short time.",
|
task_help TEXT NOT NULL DEFAULT "Run an external program with a given media object. The media object is in json format and contains all the information about the current clip. The external program can be a script or a binary, but should only run for a short time.",
|
||||||
task_enable INTEGER NOT NULL DEFAULT 0,
|
task_enable INTEGER NOT NULL DEFAULT 0,
|
||||||
task_path TEXT NOT NULL DEFAULT "",
|
task_path TEXT NOT NULL DEFAULT "",
|
||||||
output_help TEXT NOT NULL DEFAULT "The final playout compression. Set the settings to your needs. 'mode' has the options 'desktop', 'hls', 'null', 'stream'. Use 'stream' and adjust 'output_param:' settings when you want to stream to a rtmp/rtsp/srt/... server.\nIn production don't serve hls playlist with ffpapi, use nginx or another web server!",
|
output_help TEXT NOT NULL DEFAULT "The final playout compression. Set the settings to your needs. 'mode' has the options 'desktop', 'hls', 'null', 'stream'. Use 'stream' and adjust 'output_param:' settings when you want to stream to a rtmp/rtsp/srt/... server.\nIn production don't serve hls playlist with ffplayout, use nginx or another web server!",
|
||||||
output_mode TEXT NOT NULL DEFAULT "hls",
|
output_mode TEXT NOT NULL DEFAULT "hls",
|
||||||
output_param TEXT NOT NULL DEFAULT "-c:v libx264 -crf 23 -x264-params keyint=50:min-keyint=25:scenecut=-1 -maxrate 1300k -bufsize 2600k -preset faster -tune zerolatency -profile:v Main -level 3.1 -c:a aac -ar 44100 -b:a 128k -flags +cgop -f hls -hls_time 6 -hls_list_size 600 -hls_flags append_list+delete_segments+omit_endlist -hls_segment_filename /usr/share/ffplayout/public/live/stream-%d.ts /usr/share/ffplayout/public/live/stream.m3u8",
|
output_param TEXT NOT NULL DEFAULT "-c:v libx264 -crf 23 -x264-params keyint=50:min-keyint=25:scenecut=-1 -maxrate 1300k -bufsize 2600k -preset faster -tune zerolatency -profile:v Main -level 3.1 -c:a aac -ar 44100 -b:a 128k -flags +cgop -f hls -hls_time 6 -hls_list_size 600 -hls_flags append_list+delete_segments+omit_endlist -hls_segment_filename /usr/share/ffplayout/public/live/stream-%d.ts /usr/share/ffplayout/public/live/stream.m3u8",
|
||||||
FOREIGN KEY (channel_id) REFERENCES channels (id) ON UPDATE CASCADE ON DELETE CASCADE
|
FOREIGN KEY (channel_id) REFERENCES channels (id) ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
source $(dirname "$0")/man_create.sh
|
source $(dirname "$0")/man_create.sh
|
||||||
target=$1
|
target=$1
|
||||||
|
|
||||||
if [ ! -f 'ffplayout-frontend/package.json' ]; then
|
if [ ! -f 'frontend/package.json' ]; then
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -34,10 +34,9 @@ for target in "${targets[@]}"; do
|
|||||||
|
|
||||||
cross build --release --target=$target
|
cross build --release --target=$target
|
||||||
|
|
||||||
cp ./target/${target}/release/ffpapi.exe .
|
|
||||||
cp ./target/${target}/release/ffplayout.exe .
|
cp ./target/${target}/release/ffplayout.exe .
|
||||||
zip -r "ffplayout-v${version}_${target}.zip" assets docker docs LICENSE README.md CHANGELOG.md ffplayout.exe ffpapi.exe -x *.db -x *.db-shm -x *.db-wal -x '11-ffplayout' -x *.service
|
zip -r "ffplayout-v${version}_${target}.zip" assets docker docs LICENSE README.md CHANGELOG.md ffplayout.exe -x *.db -x *.db-shm -x *.db-wal -x '11-ffplayout' -x *.service
|
||||||
rm -f ffplayout.exe ffpapi.exe
|
rm -f ffplayout.exe
|
||||||
else
|
else
|
||||||
if [[ -f "ffplayout-v${version}_${target}.tar.gz" ]]; then
|
if [[ -f "ffplayout-v${version}_${target}.tar.gz" ]]; then
|
||||||
rm -f "ffplayout-v${version}_${target}.tar.gz"
|
rm -f "ffplayout-v${version}_${target}.tar.gz"
|
||||||
@ -45,20 +44,19 @@ for target in "${targets[@]}"; do
|
|||||||
|
|
||||||
cross build --release --target=$target
|
cross build --release --target=$target
|
||||||
|
|
||||||
cp ./target/${target}/release/ffpapi .
|
|
||||||
cp ./target/${target}/release/ffplayout .
|
cp ./target/${target}/release/ffplayout .
|
||||||
tar -czvf "ffplayout-v${version}_${target}.tar.gz" --exclude='*.db' --exclude='*.db-shm' --exclude='*.db-wal' assets docker docs LICENSE README.md CHANGELOG.md ffplayout ffpapi
|
tar -czvf "ffplayout-v${version}_${target}.tar.gz" --exclude='*.db' --exclude='*.db-shm' --exclude='*.db-wal' assets docker docs LICENSE README.md CHANGELOG.md ffplayout
|
||||||
rm -f ffplayout ffpapi
|
rm -f ffplayout
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ "${#targets[@]}" == "5" ]] || [[ $targets == "x86_64-unknown-linux-musl" ]]; then
|
if [[ "${#targets[@]}" == "5" ]] || [[ $targets == "x86_64-unknown-linux-musl" ]]; then
|
||||||
cargo deb --no-build --target=x86_64-unknown-linux-musl -p ffplayout --manifest-path=ffplayout-engine/Cargo.toml -o ffplayout_${version}-1_amd64.deb
|
cargo deb --no-build --target=x86_64-unknown-linux-musl -p ffplayout --manifest-path=ffplayout/Cargo.toml -o ffplayout_${version}-1_amd64.deb
|
||||||
cargo generate-rpm --payload-compress none --target=x86_64-unknown-linux-musl -p ffplayout-engine -o ffplayout-${version}-1.x86_64.rpm
|
cargo generate-rpm --payload-compress none --target=x86_64-unknown-linux-musl -p ffplayout -o ffplayout-${version}-1.x86_64.rpm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${#targets[@]}" == "5" ]] || [[ $targets == "aarch64-unknown-linux-gnu" ]]; then
|
if [[ "${#targets[@]}" == "5" ]] || [[ $targets == "aarch64-unknown-linux-gnu" ]]; then
|
||||||
cargo deb --no-build --target=aarch64-unknown-linux-gnu --variant=arm64 -p ffplayout --manifest-path=ffplayout-engine/Cargo.toml -o ffplayout_${version}-1_arm64.deb
|
cargo deb --no-build --target=aarch64-unknown-linux-gnu --variant=arm64 -p ffplayout --manifest-path=ffplayout/Cargo.toml -o ffplayout_${version}-1_arm64.deb
|
||||||
fi
|
fi
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
yes | rm -f assets/ffplayout.1.gz
|
yes | rm -f assets/ffplayout.1.gz
|
||||||
yes | rm -f assets/ffpapi.1.gz
|
|
||||||
|
|
||||||
engine_docs=(
|
engine_docs=(
|
||||||
"README.md"
|
"README.md"
|
||||||
"ffplayout-engine/README.md"
|
"docs/api.md"
|
||||||
|
"ffplayout/README.md"
|
||||||
"docs/install.md"
|
"docs/install.md"
|
||||||
"docs/output.md"
|
"docs/output.md"
|
||||||
"docs/live_ingest.md"
|
"docs/live_ingest.md"
|
||||||
@ -18,7 +18,5 @@ api_docs=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
pandoc "${engine_docs[@]}" -s --wrap=preserve -t man -o assets/ffplayout.1
|
pandoc "${engine_docs[@]}" -s --wrap=preserve -t man -o assets/ffplayout.1
|
||||||
pandoc "${api_docs[@]}" -s --wrap=preserve -t man -o assets/ffpapi.1
|
|
||||||
|
|
||||||
gzip assets/ffplayout.1
|
gzip assets/ffplayout.1
|
||||||
gzip assets/ffpapi.1
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user