Hi,
I have an m2ts container with a H.246 video stream (interlaced 1080/50i
fields, 25 full fps) and a AC3 audio stream. This was originally recorded on
a Panasonic HD camcorder, and the edited in Sony Vegas, and encoded on
output using Sony AVC codec.
I simply want to repackage this to mp4 leading video unchanged and
transcoding audio to AAC.
This is the command I'm using:
ffmpeg -i input.m2ts -c:v copy -c:a aac output.mp4
This works and produces a video which plays OK but there are some very odd
things with the frame rate, and other aspects that make it very hard to
believe the video has just been copied into the new container unchanged.
. MediaInfo (and ffprobe) both report the output has a frame rate of
50fps (they also report the input has 25fps)
. In an NLE (Sony Vegas) the output shows double the number of
frames (at same point in movie the frame number is double). Stepping through
frame by frame I can see these extra frames in the timeline of the output
compared to the input file.
. Media info reports differing size between input and output video
stream and a different bit rate (and so does ffprobe)! Input: 661MiB &
14.8Mbs; Output: 705MiB & 15.8Mbps. Both report same length 6m15s.
. 661Mib/6m15s = 14.8Mbps & 705Mib/6m15s = 15.8Mbps - so both are
"self-consistent" set of data - but why different between input and output
file?
. The input file is 768MB and the output is 728MB, but the
(re-encoded) audio stream only differs by ~3MB (according to MediaInfo)
Despite this the movie plays at correct rate! I'm sure it's not re-encoding
the video as its quick (e.g. video stream is processed at roughly 15x
realtime), but it is doing something odd to change frame rate, and size
bit/rates as well.
Please can anyone explain what is going on - and how I can get ffmpeg to
make a truly unchanged copy of my video stream from the m2ts into the mp4
container?
Console output below, followed by ffprobe of input and output, and following
this MediaInfo properties of input and output
Thanks for any help!
=
ffmpeg -i input.m2ts -c:v copy -c:a aac output.mp4
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-dxva2
--enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --ena
ble-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca -
-enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc
--enable-libmodplug --enable-libmp3lame --enable-libopencore-am
rnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libsnappy --enab
le-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis -
-enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxavs --enable-libxvid --enable-lib
zimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat57. 56.100 / 57. 56.100
libavdevice57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc54. 1.100 / 54. 1.100
Input #0, mpegts, from 'input.m2ts':
Duration: 00:06:15.30, start: 0.941611, bitrate: 16767 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top
first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 9
0k tbn, 50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo,
fltp, 192 kb/s
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf57.56.100
Stream #0:0: Video: h264 (High) ([33][0][0][0] / 0x0021), yuv420p(top
first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 50 t
br, 90k tbn, 90k tbc
Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo,
fltp, 128 kb/s
Metadata:
encoder : Lavc57.64.101 aac
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
frame=18764 fps=501 q=-1.0 Lsize= 728688kB time=00:06:15.27
bitrate=15906.8kbits/s speed= 10x
video:722507kB audio:5917kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.036225%
[aac @ 0050cf20] Qavg: 787.823
=
ffprobe input.m2ts
ffprobe version 3.2.2 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-dxva2
--enable-libmfx --enable-nvenc --enable-avis