[FFmpeg-trac] #6645(undetermined:new): Feature Request: Virtual Extension Parameter

FFmpeg trac at avcodec.org
Thu Sep 7 23:50:29 EEST 2017


#6645: Feature Request: Virtual Extension Parameter
-------------------------------------+-------------------------------------
             Reporter:               |                     Type:
  thomas_johnson                     |  enhancement
               Status:  new          |                 Priority:  important
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 This is more like feature request rather than an issue, but you may
 consider it an issue if you want.

 A huge amount of users recently asked me similar questions, and because
 there is no official solution, I'm filing this issue here, and I hope it
 will be fixed (implemented) soon.

 I'm writting an UI application which asks user to provide input file path
 and input format (separatelly) and output file path and output format
 (separatelly). So, for example, user may enter:

 Input Path: "./1.exe"
 Input Format: "mkv"
 Output Path: "./1.bmp"
 Output Format: "jpg"

 And then my application should generate command line parameters for ffmpeg
 such that ffmpeg reads file "1.exe" like it is in "mkv" format, then
 converts it to "jpg" format and then save it to "1.bmp", but in "jpg"
 format. I though that it will not require a lot of work, but then i
 realized that it is not easy at all.

 The main problem is because ffmpeg detects input/output format primarily
 by file extension. However, if the extension differs from the format, the
 things get very complicated. The main reason for it is because there is no
 official list (pattern) that describes which command line parameters need
 to be used in order to encode in specific extension (while the real
 extension may be different).

 For most file formats, I've noticed that "-c:v ext -image2" will encode it
 in extension "ext" (assuming it is supported extension) no matter what
 real output file extenion is. However, there a lot of exceptions. For
 example, "jpg" requires "-c:v singlejpeg" instead of "-c:v jpg".

 I also noticed that for video formats one should pass "-f ext" in order to
 encode it to specific extension "ext". However, there are also a lot of
 exceptions. For example, "mkv" file format requires "-f matroska" instead
 of "-f mkv".

 This is the feature request I'm filing: please create and publish official
 list which will provide command line parameters for each extension. It may
 be a table with two collumns: first collumn containing extensions and the
 second column containing command line parameters required in order to
 ffmpeg encode file in that specific extension (no matter what real
 extension is).

 Or, even better, implement a specific parameter (you may call it "virtual
 extension") which will allow users to override real extension (for input
 or output file) which will be used internally by ffmpeg while
 muxing/demuxing, and then save it to real file path.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6645>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list