home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 262,377 of 264,096   
   Simon Clubley to Lawrence D'Oliveiro   
   Re: Local Versus Global Command Options   
   14 Feb 25 13:38:59   
   
   From: clubley@remove_me.eisner.decus.org-Earth.UFP   
      
   On 2025-02-13, Lawrence D'Oliveiro  wrote:   
   >   
   > What?s the most complex *nix command you?ve come across? I think it   
   > has to be ffmpeg. This looks broadly like   
   >   
   >     ffmpeg «local-input-options-1» -i «infile-1» \   
   >         «local-input-options-2» -i «infile-2» ... \   
   >         «local-output-options-1» «outfile-1» \   
   >         «local-output-options-2» «outfile-2» ...   
   >   
   > The convention is that options apply to the immediately following file   
   > specification: this is prefixed with ?-i? for an input file, and is a   
   > plain argument for an output file. Note the lack of ?global? options:   
   > all settings apply to a particular file.   
   >   
   > But that?s not where it ends. Certain of the options can specify   
   > ?filtergraphs?, which are entire chains of effects operations to be   
   > applied to a particular video or audio stream. The man page talks   
   > about ?simple? versus ?complex? filtergraphs, but even the ?simple?   
   > ones can be pretty complex.   
   >   
   > Filtergraphs can also be used during real-time playback, with the   
   > ?ffplay? command. For example:   
   >   
   >     ffplay -autoexit -vf scale=1152:864,setsar=0.9 \   
   >         'Sun Is Shining (Official Video).mp4'   
   >   
   > That ?-vf? option specifies a sequence of video filters, first to   
   > scale up the video to make more use of my screen, and ?setsar? (?Set   
   > Source Aspect Ratio?) to fix distortion in the shape of the image   
   > (everybody looking squashed) from the original digitization of the   
   > video.   
   >   
   > What would DCL-style syntax for ffmpeg look like? I suppose one   
   > obvious equivalence would be   
   >   
   >     ffmpeg -   
   >         «infile-1»/«local-input-options-1»,«infile-2»/«local-i   
   put-options-2»,... -   
   >         «outfile-1»/«local-output-options-1»,«outfile-2»/«loca   
   -output-options-2»,... -   
   >   
   > (being very careful about where the commas go), but what about the   
   > syntax for filtergraphs? Would it be something like   
   >   
   >     /vf=(«filter-name-1»=«filter-params-1»,«filter-name-2»=«fi   
   ter-params-2»...)   
   >   
   > Does DCL have provision for this sort of complexity?   
      
   Not in any meaningful way. There's no way to validate the syntax or   
   parameters of a filter or other ffmpeg syntax with DCL. For a simple   
   example, when merging two files, one with an audio stream and one with   
   a video stream, into a MP4 output container then specifying the input and   
   output video stream numbers would be a parameter along the lines of "0:v:0".   
      
   How would you even specify in DCL the first and last fields are numbers   
   and the middle field is a letter from a list of valid values ?   
      
   You can use DCL syntax in the way you specify, but the vast majority   
   of the parsing would still have to be done in ffmpeg as it is at the   
   moment. DCL syntax doesn't really give you anything extra.   
      
   Similar comments apply to mplayer BTW, and to make something clear to   
   people reading this (which is only implied above), the filters MUST be   
   executed in the order given. For example, with mplayer, I might first   
   use a crop filter to get rid of black bars within a frame and then   
   apply a scale filter to the resulting frame.   
      
   Simon.   
      
   --   
   Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP   
   Walking destinations on a map are further away than they appear.   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca