steep-balloon-41261
05/23/2023, 9:36 AMeager-zoo-16408
05/23/2023, 9:59 AMmagnificent-art-43333
05/23/2023, 11:57 AMsilly-train-16715
05/23/2023, 12:00 PMmagnificent-art-43333
05/23/2023, 12:09 PMmagnificent-art-43333
05/23/2023, 12:11 PMeager-raincoat-52616
05/23/2023, 4:13 PMdry-elephant-14928
05/23/2023, 4:32 PMsilly-train-16715
05/23/2023, 7:23 PMadaptiveStream
is set to true
. When adaptiveStream
is off, example app seems to work just fine, but in my app framerate slowdown is perceptible when adaptiveStream=false
, but I've managed to improve the situation by increasing max bitrate of the layers. Without it video of remote participants is blocky or quality is very poor/blurry.silly-train-16715
05/23/2023, 7:32 PMsilly-train-16715
05/23/2023, 7:35 PMdry-elephant-14928
05/23/2023, 7:36 PMdry-elephant-14928
05/23/2023, 7:37 PMdry-elephant-14928
05/23/2023, 7:38 PMsilly-train-16715
05/23/2023, 7:39 PMdry-elephant-14928
05/23/2023, 7:40 PMsilly-train-16715
05/23/2023, 7:52 PMdry-elephant-14928
05/23/2023, 7:58 PMsilly-train-16715
05/23/2023, 8:03 PMsilly-train-16715
05/23/2023, 8:05 PMfinal videoSimulcastLayers = Platform.isAndroid
? const [
VideoParameters(
dimensions: VideoDimensionsPresets.h180_169,
encoding: VideoEncoding(
maxBitrate: 500 * 1000,
maxFramerate: 20,
),
),
VideoParameters(
dimensions: VideoDimensionsPresets.h360_169,
encoding: VideoEncoding(
maxBitrate: 1000 * 1000,
maxFramerate: 20,
),
)
]
: const [
VideoParameters(
dimensions: VideoDimensionsPresets.h360_169,
encoding: VideoEncoding(
maxBitrate: 1000 * 1000,
maxFramerate: 20,
),
),
VideoParameters(
dimensions: VideoDimensionsPresets.h540_169,
encoding: VideoEncoding(
maxBitrate: 3000 * 1000,
maxFramerate: 20,
),
)
];
await room.connect(
roomServerUrl,
roomToken,
connectOptions: ConnectOptions(
autoSubscribe: currentUser?.isCoach ?? false,
),
roomOptions: RoomOptions(
adaptiveStream: !Platform.isAndroid,
dynacast: true,
defaultVideoPublishOptions: VideoPublishOptions(
simulcast: true,
videoSimulcastLayers: videoSimulcastLayers,
),
defaultCameraCaptureOptions:
CameraCaptureOptions(cameraPosition: newCameraPosition)),
);
}
silly-train-16715
05/23/2023, 8:07 PM..on<TrackSubscribedEvent>((e) async {
if (e.publication.kind == TrackType.VIDEO && Platform.isAndroid) {
await e.publication.setVideoQuality(VideoQuality.LOW);
}
})
freezing-lifeguard-43174
05/24/2023, 1:08 AMdry-elephant-14928
05/24/2023, 7:12 AMsilly-train-16715
05/24/2023, 8:07 AMvideoSimulcastLayers
and it gave bad results: some testers complained about bad video quality and other/same testers complained about remote participant framerate degradation.
Or do you mean setting maxFramerate
to those numbers that are given in video_parameters.dart
?freezing-lifeguard-43174
05/24/2023, 8:23 AMsilly-train-16715
05/24/2023, 9:56 AMsilly-train-16715
05/24/2023, 9:58 AMdefaultCameraCaptureOptions
. I'll try to modify it toosilly-train-16715
05/24/2023, 10:51 AMfreezing-lifeguard-43174
05/24/2023, 11:13 AMfreezing-lifeguard-43174
05/24/2023, 11:14 AMfreezing-lifeguard-43174
05/24/2023, 11:16 AMStats Monitor API
soon so we can track the RTC stats. This should help us locate the cause of the low frame rate/bit rate.silly-train-16715
05/24/2023, 12:41 PMsilly-train-16715
05/24/2023, 12:54 PMfreezing-lifeguard-43174
05/25/2023, 8:17 AMsilly-train-16715
05/25/2023, 10:34 AMfreezing-lifeguard-43174
05/25/2023, 11:22 AMfreezing-lifeguard-43174
05/25/2023, 11:25 AMdisconnecting from surface 0xb4000070c31e0010, reason disconnectFromSurface
After this log prints, the decoder is reset and starts dropping framessilly-train-16715
05/25/2023, 11:25 AMdry-elephant-14928
05/25/2023, 11:59 PMsilly-train-16715
05/27/2023, 9:07 AMfreezing-lifeguard-43174
05/27/2023, 11:47 AMsilly-train-16715
05/27/2023, 1:37 PMdry-elephant-14928
05/27/2023, 6:09 PMsilly-train-16715
05/27/2023, 6:11 PMsilly-train-16715
05/27/2023, 6:27 PMVideoPublishOptions
?dry-elephant-14928
05/27/2023, 6:28 PMsilly-train-16715
05/27/2023, 6:38 PMdry-elephant-14928
05/27/2023, 9:25 PMfreezing-lifeguard-43174
06/02/2023, 11:43 PMpubspec.yaml
and check if dropped frames are fixed, In addition, if you update to the client-sdk-flutter/example
of the latest commit, you can see video statistics, bit rate, frame rate, resolution, etc. from the main video Widgets.
dependency_overrides:
flutter_webrtc:
git:
url: <https://github.com/flutter-webrtc/flutter-webrtc.git>
ref: fix/frame-drops-on-android-hw-decoder
silly-train-16715
06/05/2023, 9:23 PMsilly-train-16715
06/09/2023, 11:05 AMffmpeg
process to strem music to previously generated rtmp URL with this code (JS)
const ffmpeg = childProcess.spawn(
`ffmpeg`, [`-re`, `-ss`, `${toHHMMSS(req.body.seekSeconds)}`, `-stream_loop`, `-1`, `-i`, `${concat}`, `-c:v`, `libx264`, `-c:a`, `aac`, `-f`, `flv`, `${req.body.rtmpUrl}`],
{
cwd: process.cwd() + '/songs'
}
);
It looks like some parts of a song are dropping and it becomes choppy. I haven't tried it using cloud project with h264 turned off yet, but I'll let you know.silly-train-16715
06/09/2023, 12:20 PMmagnificent-art-43333
06/09/2023, 3:19 PMdry-elephant-14928
06/10/2023, 7:32 AMsilly-train-16715
06/10/2023, 7:32 AMdry-elephant-14928
06/10/2023, 7:33 AMsilly-train-16715
06/10/2023, 7:33 AMsilly-train-16715
06/10/2023, 7:34 AMdry-elephant-14928
06/10/2023, 7:34 AMdry-elephant-14928
06/10/2023, 7:34 AMsilly-train-16715
06/10/2023, 7:35 AMsilly-train-16715
06/10/2023, 7:35 AMsilly-train-16715
06/10/2023, 7:38 AMsilly-train-16715
06/10/2023, 9:04 AMtoHHMMSS
transforms seconds to MM:SS format, and we pass list of mp3 files with concat
silly-train-16715
06/10/2023, 10:05 AMdry-elephant-14928
06/10/2023, 5:33 PMsilly-train-16715
06/10/2023, 9:57 PM-c:a
from aac
to mp3
and added -vbr 5
.
It would be great if someone added section to docs on how to use ffmpeg to stream video/audio to room using Ingress and potential pitfalls like one I experienced so it would be not just try and error method. There is a section in livekit-cli REAME but it's pretty small. This PR conversation was helpful too when I first tried to stream something to a room: https://github.com/livekit/livekit-cli/pull/25
Thanksmagnificent-art-43333
06/11/2023, 6:37 AMsilly-train-16715
08/03/2023, 10:12 PMsilly-train-16715
08/17/2023, 3:35 PMsilly-train-16715
08/17/2023, 3:38 PMfreezing-lifeguard-43174
08/18/2023, 8:45 AMdry-elephant-14928
08/18/2023, 5:41 PMsilly-train-16715
08/18/2023, 7:14 PMdry-elephant-14928
08/18/2023, 7:21 PMdry-elephant-14928
08/18/2023, 7:21 PMsilly-train-16715
08/18/2023, 9:14 PMdry-elephant-14928
08/18/2023, 9:15 PMsilly-train-16715
08/18/2023, 9:17 PMdry-elephant-14928
08/18/2023, 9:18 PMfreezing-lifeguard-43174
08/19/2023, 12:52 AMfreezing-lifeguard-43174
08/19/2023, 12:57 AMsilly-train-16715
08/19/2023, 8:06 AMsilly-train-16715
08/19/2023, 9:28 AMdry-elephant-14928
08/19/2023, 5:29 PMsilly-train-16715
08/20/2023, 7:52 AMdry-elephant-14928
08/21/2023, 12:33 AM