flowly-mpegts 0.2.1

Mpeg2Ts format streaming parser
Documentation
use std::pin::pin;

use flowly::{Service, ServiceExt, io::file::FileReader};
use flowly_flv::FlvDemuxer;
use flowly_mpegts::Mpeg2TsMuxer;
use futures::TryStreamExt;
use tokio::io::AsyncWriteExt;

#[tokio::main]
async fn main() {
    let mut out = tokio::io::stdout();

    let flow = flowly::flow() //-
        .flow(FileReader::default())
        .flow(FlvDemuxer::default())
        .flow(Mpeg2TsMuxer::default());

    let mut stream = pin!(flow.handle(futures::stream::iter([Ok::<_, std::io::Error>(
        "/home/andrey/demo/h264/test.flv"
    )])));

    while let Some(data) = stream.try_next().await.unwrap() {
        out.write_all(&data).await.unwrap();
    }
}