I am using ffmpeg to convert AAC audio from TS (Transport Stream) container format to M4A container format. My intention is (or was) to perform this without re-encoding. However there seem to be two ways of getting ffmpeg to do this, producing different results.
The source file, with [.ts] extension, is VBR, overall 162 kb/s, size 8.5 MB
A "straight" use of... ffmpeg -i infile.ts outputfile.m4a ..produced an [.m4a] file of AAC with VBR, 162 kb/s, size 7.1 MB I assume this reduction in size is due to the TS format's transmission-error tolerance data having been "filtered out".
However when I included parameter [-codec copy]... ffmpeg -i infile.ts -codec copy outfile.m4a ...this produced an [.m4a] file of AAC with CBR, 93.3 kb/s, size 5.1 MB I guess this implies the audio has been re-encoded, from VBR to CBR, presumably losing some audio data in re- (lossy) compression (unless such BR conversion is cleverer than that).
Have I interpreted the above correctly? Is it the case that the product of the "straight" (no -codec parameter) ffmpeg run is likely to have better (or exactly) preserved the quality of the original? Or is the CBR product of the second ffmpeg run likely to have the same (or indistinguishably different) audio quality?