Opened 10 years ago
Closed 9 years ago
#4354 closed defect (needs_more_info)
Big file size difference after using -c:v copy and -c:a copy
Reported by: | Atarikid | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | 2.5.2 | Keywords: | mpegts |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description (last modified by )
I noticed some very strange when copying streams.
You can reproduce this with any .m2t or .ts source file.
Just copy the streams with -c:v copy -c:a copy
Note the below example source file has 1 video stream and 1 audio stream.
Do notice the BITRATE has changed from 27253 kb/s to 19490 kb/s
How can this be the case when you copy the streams?
Here is command line and output. Below you can find the ffmpeg info of both source and created file (about %25 smaller in file size)
/Users/atarikid/Library/Application\ Support/iFFmpeg5/FFmpeg -i /Volumes/Data/movies/snl\ alabama\ shakes.m2t -c:a copy -c:v copy -f mpegts -y /Users/atarikid/Movies/snl\ alabama\ shakes.ts ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers built on Jan 1 2015 20:24:48 with llvm-gcc 4.2.1 (LLVM build 2336.11.00) configuration: --prefix=/Volumes/tempdisk/sw --as=yasm --enable-gpl --enable-pthreads --disable-ffplay --disable-ffserver --disable-shared --enable-static --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-zlib --enable-avfilter --enable-fontconfig --enable-libfreetype --enable-libass --enable-libutvideo --enable-filters --enable-postproc --enable-runtime-cpudetect libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 [mpeg2video @ 0x7faf3b824200] Invalid frame dimensions 0x0. Last message repeated 1 times Last message repeated 2 times Last message repeated 3 times Last message repeated 4 times Last message repeated 5 times Last message repeated 6 times Last message repeated 7 times Last message repeated 8 times Last message repeated 9 times Last message repeated 10 times Last message repeated 11 times Last message repeated 12 times Last message repeated 13 times Last message repeated 14 times Last message repeated 14 times [mpegts @ 0x7faf3b81bc00] PES packet size mismatch Input #0, mpegts, from '/Volumes/Data/movies/snl alabama shakes.m2t': Duration: 00:04:52.51, start: 62014.858256, bitrate: 27253 kb/s Program 1 Stream #0:0[0xec9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], max. 25000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0xeca]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), fltp, 384 kb/s Output #0, mpegts, to '/Users/atarikid/Movies/snl alabama shakes.ts': Metadata: encoder : Lavf56.15.102 Stream #0:0: Video: mpeg2video ([2][0][0][0] / 0x0002), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, max. 25000 kb/s, 29.97 fps, 90k tbn, 29.97 tbc Stream #0:1: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), 384 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 2243 fps=0.0 q=-1.0 size= 170284kB time=00:01:15.78 bitrate=18406.0kbits/s frame= 4274 fps=4273 q=-1.0 size= 337113kB time=00:02:23.55 bitrate=19237.2kbits/s frame= 5618 fps=3745 q=-1.0 size= 447000kB time=00:03:08.40 bitrate=19436.3kbits/s frame= 7700 fps=3849 q=-1.0 size= 617824kB time=00:04:17.87 bitrate=19626.9kbits/s [mpegts @ 0x7faf3b81bc00] PES packet size mismatch frame= 8737 fps=3910 q=-1.0 Lsize= 695950kB time=00:04:52.47 bitrate=19493.2kbits/s video:629879kB audio:13695kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.138343%
Original:
Filesize = 996.468.808bytes (996,5MB)
Last login: Thu Mar 5 15:42:41 on console atarikids-MacBook-Pro:~ atarikid$ /Users/atarikid/Desktop/ffmpeg -i /Volumes/Data/movies/snl\ alabama\ shakes.m2t ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers built on Jan 1 2015 20:24:48 with llvm-gcc 4.2.1 (LLVM build 2336.11.00) configuration: --prefix=/Volumes/tempdisk/sw --as=yasm --enable-gpl --enable-pthreads --disable-ffplay --disable-ffserver --disable-shared --enable-static --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-zlib --enable-avfilter --enable-fontconfig --enable-libfreetype --enable-libass --enable-libutvideo --enable-filters --enable-postproc --enable-runtime-cpudetect libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, mpegts, from '/Volumes/Data/movies/snl alabama shakes.m2t': Duration: 00:04:52.51, start: 62014.858256, bitrate: 27253 kb/s Program 1 Stream #0:0[0xec9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], max. 25000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0xeca]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), fltp, 384 kb/s At least one output file must be specified atarikids-MacBook-Pro:~ atarikid$
Passthru version:
Filesize = 712.652.728bytes (712,7MB)
atarikids-MacBook-Pro:~ atarikid$ /Users/atarikid/Desktop/ffmpeg -i /Users/atarikid/Desktop/snl\ alabama\ shakes.ts ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers built on Jan 1 2015 20:24:48 with llvm-gcc 4.2.1 (LLVM build 2336.11.00) configuration: --prefix=/Volumes/tempdisk/sw --as=yasm --enable-gpl --enable-pthreads --disable-ffplay --disable-ffserver --disable-shared --enable-static --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-zlib --enable-avfilter --enable-fontconfig --enable-libfreetype --enable-libass --enable-libutvideo --enable-filters --enable-postproc --enable-runtime-cpudetect libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, mpegts, from '/Users/atarikid/Desktop/snl alabama shakes.ts': Duration: 00:04:52.51, start: 1.400000, bitrate: 19490 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], max. 25000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), fltp, 384 kb/s At least one output file must be specified
Change History (8)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Description: | modified (diff) |
---|
comment:3 by , 10 years ago
Replying to Atarikid:
I noticed some very strange when copying streams.
You can reproduce this with any .m2t or .ts source file.
Just copy the streams with -c:v copy -c:a copy
Note the below example source file has 1 video stream and 1 audio stream.
Do notice the BITRATE has changed from 27253 kb/s to 19490 kb/s
How can this be the case when you copy the streams?
Transport streams may contain null packets to pad out bandwidth to a fixed value which could account for it.
I've never used one, but search for transport stream analyzer and I guess you will be able to find something to look at your streams. Null packets have pid 0x1fff (8191).
follow-up: 5 comment:4 by , 10 years ago
That could only explain why the new new file is smaller. What about the changed bitrate?
comment:5 by , 10 years ago
Replying to Atarikid:
That could only explain why the new new file is smaller. What about the changed bitrate?
Above looks to me that the the bitrates are called for the whole ts.
the last 2 ffmpeg -i outputs show "max 25000" for the actual mpeg2video stream.
I expect that the variable bitrates shown in the first output are accurate for the video stream. but nowhere else really contradicts them.
When doing just ffmpeg -i infile bitrate estimations are just based on looking at a small bit of the start of the file, so the fact that the last output "19490" is less than the 19626.9 that is visible in the first output I expect is just due to that.
comment:6 by , 9 years ago
Please test current FFmpeg git head and please explain your issue: Smaller filesize is usually seen as a feature, not a bug.
comment:7 by , 9 years ago
Keywords: | mpegts added |
---|
comment:8 by , 9 years ago
Resolution: | → needs_more_info |
---|---|
Status: | new → closed |
Any luck with this?