user25196: I'm trying to get rid of the 1st of two audio tracks in an mp4 file. But each time I run:
ffmpeg -i test.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4

ffmpeg seems to reencode the file.
The output says:
Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 23.98 (24000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Duration: 01:01:37.25, start: 0.-83411, bitrate: 4086 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 23.98 tbr, 90k tbn, 180k tbc
    Stream #0.1(deu): Audio: aac, 48000 Hz, 5.1, s16
    Stream #0.2(eng): Audio: aac, 48000 Hz, 5.1, s16
    Stream #0.3(und): Subtitle: text / 0x74786574
File 'new_file2.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'new_file2.mp4':
    Stream #0.0(und): Video: 0x0000, yuv420p, 1280x720, q=2-31, 90k tbn, 90k tbc
    Stream #0.1(eng): Audio: 0x0000, 48000 Hz, 5.1, s16
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.2 -> #0.1
Press [q] to stop encoding
frame=33700 fps=944 q=-1.0 size=  583098kB time=1405.53 bitrate=3398.5kbits/s 

And this process takes quite some time, that's why I think it reencodes instead of copying. 
Any idea why this is? Maybe the different frame rate between container and codec?
Thanks!

user18155: The first line of the output you provided explains the problem:

Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 23.98 (24000/1001)


and then the last three values in the 4th line tell about it in detail:

    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 23.98 tbr, 90k tbn, 180k tbc


which mean, in words:

I guess the frame rate 23.98 fps from the input video stream.
The time base in the input container is set to (1/90000) seconds.
The time base in its video stream is set to (1/180000) seconds.

Now, return to the the first line of your output, after the semicolon:

180000.00 (180000/1) -> 23.98 (24000/1001)


It means: Your stream's framerate is 180,000 frames per second, but I will convert it to 23.98 fps.
The same is in the mentioned 4th line, in the form 23.98 tbr. It's the FFmpeg's guessed value.
So you are right, the conversion occurs, for both selected streams (video and audio one). You may see it from other lines of your output:

Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.2 -> #0.1
Press [q] to stop encoding


because in the case of copying them it would be as these:

Stream mapping:
  Stream #0.0 -> #0.0 (copy)
  Stream #0.2 -> #0.1 (copy)
Press [q] to stop


The conclusion:
Your command is correct, but your input file is damaged.
You may convince yourself about it by applying the same command to other, correct input file.

25196: <p>I'm trying to get rid of the 1st of two audio tracks in an mp4 file. But each time I run:</p>

<pre><code>ffmpeg -i test.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
</code></pre>

<p>ffmpeg seems to reencode the file.
The output says:</p>

<pre><code>Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -&gt; 23.98 (24000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Duration: 01:01:37.25, start: 0.-83411, bitrate: 4086 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 23.98 tbr, 90k tbn, 180k tbc
    Stream #0.1(deu): Audio: aac, 48000 Hz, 5.1, s16
    Stream #0.2(eng): Audio: aac, 48000 Hz, 5.1, s16
    Stream #0.3(und): Subtitle: text / 0x74786574
File 'new_file2.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'new_file2.mp4':
    Stream #0.0(und): Video: 0x0000, yuv420p, 1280x720, q=2-31, 90k tbn, 90k tbc
    Stream #0.1(eng): Audio: 0x0000, 48000 Hz, 5.1, s16
Stream mapping:
  Stream #0.0 -&gt; #0.0
  Stream #0.2 -&gt; #0.1
Press [q] to stop encoding
frame=33700 fps=944 q=-1.0 size=  583098kB time=1405.53 bitrate=3398.5kbits/s 
</code></pre>

<p>And this process takes quite some time, that's why I think it reencodes instead of copying. 
Any idea why this is? Maybe the different frame rate between container and codec?
Thanks!</p>
 18155: <p>The first line of the output you provided explains the problem:</p>

<blockquote>
<pre><code>Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -&gt; 23.98 (24000/1001)
</code></pre>
</blockquote>

<p>and then the last three values in the 4<sup>th</sup> line tell about it in detail:</p>

<blockquote>
<pre><code>    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 23.98 tbr, 90k tbn, 180k tbc
</code></pre>
</blockquote>

<p>which mean, in words:</p>

<ul>
<li>I guess the frame rate <code>23.98</code> fps from the input video stream.</li>
<li>The time base in the input container is set to <code>(1/90000)</code> seconds.</li>
<li>The time base in its video stream is set to <code>(1/180000)</code> seconds.</li>
</ul>

<p>Now, return to the the first line of your output, after the semicolon:</p>

<blockquote>
<pre><code>180000.00 (180000/1) -&gt; 23.98 (24000/1001)
</code></pre>
</blockquote>

<p>It means: <em>Your stream's framerate is 180,000 frames per second, but I will convert it to 23.98 fps.</em></p>

<p>The same is in the mentioned 4<sup>th</sup> line, in the form <code>23.98 tbr</code>. It's the FFmpeg's guessed value.</p>

<p>So you are right, <em>the conversion occurs,</em> for both selected streams (video and audio one). You may see it from other lines of your output:</p>

<blockquote>
<pre><code>Stream mapping:
  Stream #0.0 -&gt; #0.0
  Stream #0.2 -&gt; #0.1
Press [q] to stop encoding
</code></pre>
</blockquote>

<p>because in the case of <em>copying</em> them it would be as these:</p>

<blockquote>
<pre><code>Stream mapping:
  Stream #0.0 -&gt; #0.0 (copy)
  Stream #0.2 -&gt; #0.1 (copy)
Press [q] to stop
</code></pre>
</blockquote>

<p><strong>The conclusion:</strong></p>

<p>Your command is correct, but your input file is damaged.</p>

<p>You may convince yourself about it by applying the same command to other, correct input file.</p>
