more ignores, ignore errors on server, add info for srt ingest

This commit is contained in:
jb-alvarado 2022-10-26 09:37:28 +02:00
parent bf5b0ecd1f
commit 2f8c2deebc
4 changed files with 22 additions and 7 deletions

View File

@ -2,10 +2,16 @@
With live ingest you have the possibility to switch from playlist, or folder mode to a live stream.
It works in a way, that it crate a ffmpeg instance in _listen_ (_server_) mode. For example when you stream over RTMP to it, you can set the ingest input parameters to:
It works in a way, that it create a ffmpeg instance in _listen_ (_server_) mode. For example when you stream over RTMP to it, you can set the ingest input parameters to:
```
-f live_flv -listen 1 -i rtmp://localhost:1936/live/stream
-f live_flv -listen 1 -i rtmp://0.0.0.0:1936/live/my-secrete-streaming-key
```
For SRT you could use:
```
-f mpegts -i 'srt://0.0.0.0:40077?mode=listener&passphrase=12345abcde'
```
Have in mind, that the ingest mode **can't** pull from a server, it only can act as its own server and listen for income.

View File

@ -10,6 +10,7 @@ use simplelog::*;
use ffplayout_lib::utils::{
controller::ProcessUnit::*, test_tcp_port, Media, PlayoutConfig, ProcessControl,
FFMPEG_IGNORE_ERRORS,
};
use ffplayout_lib::vec_strings;
@ -53,7 +54,9 @@ fn server_monitor(
proc_ctl.kill_all();
}
log_line(line, level);
if !FFMPEG_IGNORE_ERRORS.iter().any(|i| line.contains(*i)) {
log_line(line, level);
}
}
Ok(())

View File

@ -19,11 +19,15 @@ pub const IMAGE_FORMAT: [&str; 21] = [
];
// Some well known errors can be safely ignore
pub const FFMPEG_IGNORE_ERRORS: [&str; 5] = [
pub const FFMPEG_IGNORE_ERRORS: [&str; 9] = [
"ac-tex damaged",
"corrupt decoded frame in stream",
"corrupt input packet in stream",
"end mismatch left",
"Packet corrupt",
"Referenced QT chapter track not found",
"skipped MB in I-frame at",
"Thread message queue blocking",
"Warning MVs not available",
];

View File

@ -640,6 +640,10 @@ pub fn stderr_reader(
for line in buffer.lines() {
let line = line?;
if FFMPEG_IGNORE_ERRORS.iter().any(|i| line.contains(*i)) {
continue;
}
if line.contains("[info]") {
info!(
"<bright black>[{suffix}]</> {}",
@ -650,9 +654,7 @@ pub fn stderr_reader(
"<bright black>[{suffix}]</> {}",
line.replace("[warning] ", "")
)
} else if (line.contains("[error]") || line.contains("[fatal]"))
&& !FFMPEG_IGNORE_ERRORS.iter().any(|i| line.contains(*i))
{
} else if line.contains("[error]") || line.contains("[fatal]") {
error!(
"<bright black>[{suffix}]</> {}",
line.replace("[error] ", "").replace("[fatal] ", "")