aboutsummaryrefslogtreecommitdiff
path: root/stream
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-16 17:24:08 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-16 17:24:08 +0200
commitcdf95d7b80bd2b78895671da8f462145bb5db522 (patch)
treef7f8377ee6352b313a45cb13362bbd7143fddccd /stream
parentad8016d8014af1e8dfb267fcdb51da63ab8ca4a9 (diff)
downloadjellything-cdf95d7b80bd2b78895671da8f462145bb5db522.tar
jellything-cdf95d7b80bd2b78895671da8f462145bb5db522.tar.bz2
jellything-cdf95d7b80bd2b78895671da8f462145bb5db522.tar.zst
webm and mpeg4 fragments semi fixedrewrite-stream
Diffstat (limited to 'stream')
-rw-r--r--stream/src/fragment.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/stream/src/fragment.rs b/stream/src/fragment.rs
index 2ce3c78..dfe101e 100644
--- a/stream/src/fragment.rs
+++ b/stream/src/fragment.rs
@@ -6,7 +6,7 @@
use crate::{stream_info, SMediaInfo};
use anyhow::{anyhow, bail, Result};
use jellybase::common::stream::StreamContainer;
-use jellyremuxer::matroska_to_mpeg4;
+use jellyremuxer::{matroska_to_mpeg4, matroska_to_webm::matroska_to_webm};
use jellytranscoder::fragment::transcode;
use log::warn;
use std::sync::Arc;
@@ -72,10 +72,18 @@ pub async fn fragment_stream(
},
)
.await?;
- eprintln!("{:?}", location.abs());
+
let mut frag = File::open(location.abs()).await?;
match container {
- StreamContainer::WebM => {}
+ StreamContainer::WebM => {
+ tokio::task::spawn_blocking(move || {
+ if let Err(err) =
+ matroska_to_webm(SyncIoBridge::new(frag), SyncIoBridge::new(b))
+ {
+ warn!("webm transmux failed: {err}");
+ }
+ });
+ }
StreamContainer::Matroska => {
tokio::task::spawn(async move {
if let Err(err) = tokio::io::copy(&mut frag, &mut b).await {