0

Hi. Me and my friend is working on this major project where we are trying to create a many to many file convertor for a lot of media and file types ( for eg pdf to doc and visa versa, jpg to png , mp4 to flv , or mp4 to gif , whatever the possibilities are )

If anyone has done something like this, then please share your insights : how this is gonna work, what concepts are involved , where to look for this kind of info, etc.
Currently from what i have gathered, it would be almost impossible to convert to a few proprietary formats (like rar, psd or autocad's dwg) but there are still free softwares and websites doing it openly. How so?

Comments
  • 1
    I never did it on massive scale, but that’s how I would build it :
    First, you need a “reader” for any known input type which will produce a standardized output (ex : Video, image, sound, text, formatted text etc). So for example it will take ANY video/animated file and produce a standard middleware object which will represent a video.
    Then you need an encoder which will take your standard middleware object and save to a compatible filetype.
    There are plenty of libs to read and to write file formats. The difficulty will be to define this “middleware” format. As you want to work with videos, probably can’t keep in RAM. Using a temporary file seems overkill, but easiest solution. Maybe do it by streaming reads and outputs ? But that will add complexity.

    ofc, just thought about it for like 2 minutes, a lot to define, try and fail. But seems awsome as project
  • 1
    And you have some libs for propritary formats.

    Examp[le DWG :

    https://directory.fsf.org/wiki/...

    Ofc, no idea if it is still up to date
  • 0
    ddg: linux convert $format0 to $format1
    ddg: how to call linux processes from $language
  • 1
    I would start at the users. Look at who you're targeting and what they might want. Ask yourself if having too many options would confuse the users, think about how the options would be presented to them.

    Develop a roadmap with the features you intend to deliver, prioritize them, and do a quick Moscow exercise to prioritize the work.

    Lastly, most others chose to be domain specific. You can get most of the way there using existing libraries in the background, but you may run afoul of licensing if you decide to sell it.

    Either way, you're going to be writing a fuckton of configuration UI.

    Example libs:
    https://imagemagick.org/index.php
    https://help.libreoffice.org/6.4/...
  • 0
Add Comment