Open abacklundtvmedia opened 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.
Developing a GUI, native or web, is time-consuming. Providing a full-featured GUI would consume a large part of the development bandwidth, at the expense of new features. The idea of TSDuck is to be easily extensible. Whenever you need something, it is straightforward to implement. In the time I used TSDuck for DTV tests and debug, I used to add new features to existing plugins in a few minutes and implement fully new plugins in a couple of hours, documentation and tests included. Adding the burden of a GUI would break this paradigm.
TSDuck is a low-level lab tool for DTV engineers who already master the standards, the technology, the gory details of the signalisation and need to control tiny details for lab purpose. This type of audience (me included) wants precise control over everything and wants scriptable / reproducible / automatable tools. GUI's tend to be used by less skilled operators who just want to click somewhere to perform some high-level task. This is a different use case.
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.
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.