examples: webrtc: rust: Set keyframe-max-dist=2000 and picture-id-mode=15-bit for VP8 and perfect-timestamps=true for audio

This makes it in sync with the C sendrecv and generally behaves better.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
This commit is contained in:
Sebastian Dröge 2023-01-19 20:38:41 +02:00 committed by GStreamer Marge Bot
parent 083b9f2a6e
commit 6541dccaea
2 changed files with 3 additions and 10 deletions

View file

@ -157,9 +157,9 @@ impl App {
// Create the GStreamer pipeline
let pipeline = gst::parse_launch(
&format!(
"videotestsrc is-live=true ! vp8enc deadline=1 ! rtpvp8pay pt=96 ! tee name=video-tee ! \
"videotestsrc is-live=true ! vp8enc deadline=1 keyframe-max-dist=2000 ! rtpvp8pay pt=96 picture-id-mode=15-bit ! tee name=video-tee ! \
queue ! fakesink sync=true \
audiotestsrc wave=ticks is-live=true ! opusenc ! rtpopuspay pt=97 ! application/x-rtp,encoding-name=OPUS ! tee name=audio-tee ! \
audiotestsrc wave=ticks is-live=true ! opusenc perfect-timestamp=true ! rtpopuspay pt=97 ! application/x-rtp,encoding-name=OPUS ! tee name=audio-tee ! \
queue ! fakesink sync=true \
audiotestsrc wave=silence is-live=true ! audio-mixer. \
audiomixer name=audio-mixer sink_0::mute=true ! audioconvert ! audioresample ! autoaudiosink \
@ -192,13 +192,6 @@ impl App {
// Channel for outgoing WebSocket messages from other threads
let (send_ws_msg_tx, send_ws_msg_rx) = mpsc::unbounded::<WsMessage>();
// Asynchronously set the pipeline to Playing
pipeline.call_async(|pipeline| {
pipeline
.set_state(gst::State::Playing)
.expect("Couldn't set pipeline to Playing");
});
let app = App(Arc::new(AppInner {
pipeline,
video_tee,

View file

@ -115,7 +115,7 @@ impl App {
> {
// Create the GStreamer pipeline
let pipeline = gst::parse_launch(
"videotestsrc pattern=ball is-live=true ! vp8enc deadline=1 ! rtpvp8pay name=vpay pt=96 ! webrtcbin. \
"videotestsrc pattern=ball is-live=true ! vp8enc deadline=1 keyframe-max-dist=2000 ! rtpvp8pay name=vpay pt=96 picture-id-mode=15-bit ! webrtcbin. \
audiotestsrc is-live=true ! opusenc perfect-timestamp=true ! rtpopuspay name=apay pt=97 ! application/x-rtp,encoding-name=OPUS ! webrtcbin. \
webrtcbin name=webrtcbin"
)?;