Merge branch 'main' into main

This commit is contained in:
jb-alvarado 2022-03-24 14:56:35 +01:00 committed by GitHub
commit c362d7e1a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 5 deletions

7
.cargo/config Normal file
View File

@ -0,0 +1,7 @@
[target.x86_64-apple-darwin]
linker = "x86_64-apple-darwin20.4-clang"
ar = "x86_64-apple-darwin20.4-ar"
[target.aarch64-apple-darwin]
linker = "aarch64-apple-darwin20.4-clang"
ar = "aarch64-apple-darwin20.4-ar"

View File

@ -3,8 +3,6 @@
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
Next generation 24/7 playout, based on [Rust](https://www.rust-lang.org/).
The main purpose of ffplayout is to provide a 24/7 broadcasting solution that plays a *json* playlist for every day, while keeping the current playlist editable.
**Check [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend): web-based GUI for ffplayout**
@ -19,7 +17,7 @@ The main purpose of ffplayout is to provide a 24/7 broadcasting solution that pl
- send emails with error message
- overlay a logo
- overlay text, controllable through [messenger](https://github.com/ffplayout/messenger) or [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend) (needs ffmpeg with libzmq)
- **EBU R128 loudness** normalization (single pass) (experimental)
- EBU R128 loudness normalization (single pass)
- loop playlist infinitely
- trim and fade the last clip, to get full 24 hours
- when playlist is not 24 hours long, loop filler clip until time is full
@ -36,7 +34,7 @@ The main purpose of ffplayout is to provide a 24/7 broadcasting solution that pl
- **aevalsrc** (if video have no audio)
- **apad** (add silence if audio duration is to short)
- **tpad** (add black frames if video duration is to short)
output):
- output:
- **stream**
- **desktop**
@ -130,6 +128,6 @@ ffplayout also allows the passing of parameters:
You can run the command like:
```SHELL
```Bash
./ffplayout.py -l none -p ~/playlist.json -o desktop
```

View File

@ -28,3 +28,29 @@ Running `cargo build` ends up in a binary which depend on **libc.so**. But you c
Compile with: `cargo build --release --target=x86_64-unknown-linux-musl`.
This release should run on any Linux distro.
### Compile from Linux for macOS
Add toolchain:
```Bash
# for arm64
rustup target add aarch64-apple-darwin
# for x86_64
rustup target add x86_64-apple-darwin
```
Follow this guide: [rust-cross-compile-linux-to-macos](https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html)
Or setup [osxcross](https://github.com/tpoechtrager/osxcross) correctly.
Add **osxcross/target/bin** to your **PATH** and run cargo with:
```Bash
# for arm64
CC="aarch64-apple-darwin20.4-clang -arch arm64e" cargo build --release --target=aarch64-apple-darwin
# for x86_64
CC="o64-clang" cargo build --release --target=x86_64-apple-darwin
```

View File

@ -189,6 +189,7 @@ pub fn play(rt_handle: &Handle) {
error!("Encoder error: {e}")
}
kill_dec = true;
live_on = false;
}