diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-16 17:24:08 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-16 17:24:08 +0200 |
commit | cdf95d7b80bd2b78895671da8f462145bb5db522 (patch) | |
tree | f7f8377ee6352b313a45cb13362bbd7143fddccd /stream | |
parent | ad8016d8014af1e8dfb267fcdb51da63ab8ca4a9 (diff) | |
download | jellything-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.rs | 14 |
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 { |