Answers.Body: <p>In general, the codecs involved in a pure muxing command are the decoders and bitstream parsers for the codecs of the streams in the input file.</p>
  
  <p>Even though there's no decoding or encoding requested in a pure muxing command, ffmpeg uses the decoders to acquire the attributes of the streams in the input. These attributes are then passed on to the muxer, which will write in the header/metadata section(s) of the output file. This has to be done because the attributes of an encoded stream is stored in a form specific to that codec.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-30T17:27:07.707Z
Answers.Text: The video codec is Avid DNxHD (in an MXF container). The audio is PCM. So which codecs are required for that? MPEG LA suggested it's the AVC library. Not sure.
Answers.UserDisplayName: d0g
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-30T18:13:44.093Z
Answers.Text: ffmpeg does not require AVC decoder in order to decode DNxHD. I don't know if DNxHD decoder is relevant in terms of MPEG-LA patents.
Answers.UserDisplayName: Gyan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-30T18:19:39.337Z
Answers.Text: I found an easier solution ... I'm going to let the end user download their own copy of ffmpeg – my app just calls it.
Answers.UserDisplayName: d0g
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-30T06:16:17.273Z
Answers.LastActivityDate: 2019-10-30T06:16:17.273Z
Answers.UserDisplayName: Gyan
Body: <p>I developed an app that uses <code>ffmpeg</code> for some simple muxing, which I am going to sell. I contacted MPEG LA about licensing, and they said I the license I need depends on which codecs I use.</p>
  
  <p>Is there any way to determine which codecs/libraries are actually being used by a particular <code>ffmpeg</code> command?</p>
  
  <p>If not, is there any way to temporarily disable/enable options to see if they are required for a given operation?</p>
  
  <p>FWIW, my operation doesn't re-encode anything. It uses <code>c:v copy</code> and <code>c:a copy</code> with a <code>map</code> function to re-arrange audio tracks. In some cases it converts <code>pcm_s24be</code> to <code>pcm_s24le</code>.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-10-30T03:22:59.817Z
Comments.Text: I'm voting to close this question as off-topic because it’s a legal question.
Comments.UserDisplayName: SlimSCSI
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-10-30T06:10:24.560Z
Comments.Text: There's no legal question being asked - the goal is *determine which codecs/libraries are actually being used by a particular ffmpeg command*
Comments.UserDisplayName: Gyan
Tags: <ffmpeg>
Title: How to determine which modules needed for licensing FFmpeg as part of an app
UserDisplayName: d0g
ThreadText: # How to determine which modules needed for licensing FFmpeg as part of an app
  
  (Asked by: username_0 on 2019-10-29)
  
  I developed an app that uses `ffmpeg` for some simple muxing, which I am going to sell. I contacted MPEG LA about licensing, and they said I the license I need depends on which codecs I use.
  
  Is there any way to determine which codecs/libraries are actually being used by a particular `ffmpeg` command?
  
  If not, is there any way to temporarily disable/enable options to see if they are required for a given operation?
  
  FWIW, my operation doesn't re-encode anything. It uses `c:v copy` and `c:a copy` with a `map` function to re-arrange audio tracks. In some cases it converts `pcm_s24be` to `pcm_s24le`.
  
  **Tags:** ffmpeg
  
  > **Comments:**
  > **username_1**: I'm voting to close this question as off-topic because it’s a legal question.  
  > **username_2**: There's no legal question being asked - the goal is *determine which codecs/libraries are actually being used by a particular ffmpeg command*  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2019-10-30. Score: 2
  
  In general, the codecs involved in a pure muxing command are the decoders and bitstream parsers for the codecs of the streams in the input file.
  
  Even though there's no decoding or encoding requested in a pure muxing command, ffmpeg uses the decoders to acquire the attributes of the streams in the input. These attributes are then passed on to the muxer, which will write in the header/metadata section(s) of the output file. This has to be done because the attributes of an encoded stream is stored in a form specific to that codec.
  
  > **Comments:**
  > **username_0**: The video codec is Avid DNxHD (in an MXF container). The audio is PCM. So which codecs are required for that? MPEG LA suggested it's the AVC library. Not sure.  
  > **username_2**: ffmpeg does not require AVC decoder in order to decode DNxHD. I don't know if DNxHD decoder is relevant in terms of MPEG-LA patents.  
  > **username_0**: I found an easier solution ... I'm going to let the end user download their own copy of ffmpeg – my app just calls it.  
  
  ---
  
  