tsduck / tsduck

MPEG Transport Stream Toolkit
https://tsduck.io
BSD 2-Clause "Simplified" License
826 stars 208 forks source link

[FEAT] Web interface for configuring and using TSDuck #1457

Open abacklundtvmedia opened 4 months ago

abacklundtvmedia commented 4 months ago

Has anyone built a web interface for using TSDuck? We're looking for a solution, with a web interface, that can do similar things to what TSDuck can and optimally we would like to use TSDuck of course. Use case would be to setup test channels running in looped mode, with possibility to inject SCTE-35 splicing in/out.

lelegard commented 4 months ago

Hi @abacklundtvmedia

The question of a GUI for TSDuck, native or web, has been asked many times. The short answer is no, I never wanted to dive into this and I will probably never do.

There are several reasons for not wanting a general-purpose GUI for TSDuck. By "general-purpose GUI", I mean offering all features of TSDuck in a GUI.

It is difficult to combine the needs of R&D or lab engineers with the needs of operators in production. TSDuck clearly falls in the first category.

In principle, TSDuck is similar to ffmeg: a command line extensible framework with plugins. Mastering the command line is not necessarily easy but TSDuck's documentation is much better than ffmpeg's one (having a comprehensive documentation for TSDuck comes from my frustration with the poor documentation for ffmpeg). AFAIK, there is no general-purpose ffmpeg GUI which addresses all ffmpeg features. One of the most advanced ffmpeg GUI is AviDemux. But it gives access to a very limited subset of ffmpeg features. It is also awkward to use because the generic / command-line / plugin-based structure of ffmpeg is not easily transposed as a GUI. Not having a general-purpose GUI for such a widely-accepted tool as ffmpeg is a symptom that this is not an easy task.

However, there is room for specialized and targeted GUI tools on top on TSDuck or ffmpeg. More than 10 years ago, I developed a Qt-based GUI on top of ffmpeg for specialized operations, typically transcoding TV recordings for DVD storage or portable devices, including the usual audio and subtitles mess.

If you have a specialized use case for GUI on top of TSDuck, this can be the start of a new project on your own. I recommend publishing it as an open source project. Consider this as a contribution to the DTV community, in return for all the free value you got from TSDuck.

But these specialized GUI's would typically be specific projects, not a part of the main TSDuck project.