Code Monkey home page Code Monkey logo

Comments (5)

craigmox avatar craigmox commented on May 28, 2024

It's a good idea, and I am using ffmpeg in the project already, but I don't have much experience in its transcoding options. I know there's 10 million of them, so I'm worried how much of a black hole a project like that would be. What settings would you like to see configurable if I ever attempted it?

I would guess Plex is transcoding using ffmpeg too, though. Seems like it's everywhere. What if you tried downloading a test video from cetonproxy and tried transcoding it manually with the ffmpeg command-line app, and see if the same glitches occur? It might point to a different problem in the video stream, or maybe a bug in cetonproxy.

from cetonproxy.

cornesto avatar cornesto commented on May 28, 2024

Completely get it... the ever ending "could do it" vs "should doi it" question.
From what I've read, Plex has developed its on transcoder based of ffmpeg, but its closed source. I am by no means knowledgeable in programming, but I can definitely tinker with ffmpeg to transcode a stream from ceton, test it, and post some parameters. The benefit Im thinking is compressing the stream before it leaves the windows box therefore condensing bandwidth and then have Plex be able to direct play/direct stream it to any agent (including remote users). If it proves useful, maybe something that could be implemented as "experimental"? Enable/disable with a checkbox?

Will post back with test results.

from cetonproxy.

cornesto avatar cornesto commented on May 28, 2024

BTW, i havent been able to cipher very well through the source code, but how is cp using ffmpeg currently? Is it just re-streaming the channel direct from the ceton card? Are you able to point how its doing the re-stream? (No need to type anything extended, I can read through your code if its easier, just not sure where to start).

from cetonproxy.

craigmox avatar craigmox commented on May 28, 2024

So forgive me if you already know this, but an MPEG2 video stream can have multiple channels of video called programs, like when Channel 4 has a bunch of sub channels 4.1, 4.2, etc, it could potentially send all of those video streams in a single MPEG2 stream. When you ask Ceton to tune to a channel, you tell it the program to filter on, so that the video stream it sends back only has a single channel's video stream. However, the Ceton still includes other programs in the stream, but they're completely empty. The DVR software I've seen don't play nice with that and won't play those kind of streams correctly, so cetonproxy uses ffmpeg to strip out those empty programs to only leave the one program that has actual video. This is what the HDHomeRun devices do too.

As far as video streaming flow: Request comes into ProxyWebModuleUnit.pas to start video stream which calls TProxyWebModule.SendTuneResponse. That creates a TCetonVideoStream (inside Ceton.pas) to do the work. That creates a TVideoConverter (inside VideoUtils.pas) to receive video from Ceton and strip out the correct streams for the intended program using ffmpeg. Then it makes the stream data available for the TCetonVideoStream to read, so that it can finally ship it back to the web client.

from cetonproxy.

cornesto avatar cornesto commented on May 28, 2024

No! Thats great info. Time to dig into the ffmpeg-libav writeups and see what I find.

from cetonproxy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.