почему фильм в MKV меньше, чем TS?

Страницы:  1
Ответить
 

hardstep

Стаж: 16 лет 10 месяцев

Сообщений: 42


hardstep · 14-Май-11 16:07 (13 лет 7 месяцев назад, ред. 14-Май-11 16:46)

есть "оригинальный" TS-файл, кодированный в H264 c CBR 50Mbps. 1 аудио дорога и 1 видео. размер - 200MB.
скрытый текст
Код:
General
ID                               : 0 (0x0)
Complete name                    : D:\_mkv_test\q\orginal.ts
Format                           : MPEG-TS
File size                        : 201 MiB
Duration                         : 31s 726ms
Overall bit rate                 : 53.0 Mbps
Video
ID                               : 2064 (0x810)
Menu ID                          : 1 (0x1)
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L5.0
Format settings, CABAC           : Yes
Format settings, ReFrames        : 2 frames
Codec ID                         : 27
Duration                         : 30s 239ms
Bit rate mode                    : Constant
Bit rate                         : 50.0 Mbps
Width                            : 1 920 pixels
Height                           : 1 080 pixels
Display aspect ratio             : 16:9
Frame rate                       : 23.976 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 1.006
Stream size                      : 181 MiB (90%)
Color primaries                  : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics         : BT.709-5, BT.1361
Matrix coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Audio
ID                               : 2068 (0x814)
Menu ID                          : 1 (0x1)
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format version                   : Version 2
Format profile                   : LC
Muxing mode                      : ADTS
Codec ID                         : 15
Duration                         : 30s 250ms
Bit rate mode                    : Constant
Bit rate                         : 124 Kbps
Channel(s)                       : 6 channels
Channel positions                : Front: L C R, Side: L R, LFE
Sampling rate                    : 48.0 KHz
Compression mode                 : Lossy
Stream size                      : 458 KiB (0%)
Language                         : English
tsMuxer'ом 1.10.6 делаю demux и получаю: аудио дорожка - 473kB, видео - 179MB.
собираю MKV с помощью mkvMerge GUI 4.7.0, compression - none, fps указываю как в TS-файле, остальное не трогаю. и получаю размер 151MB.
скрытый текст
Код:
General
Unique ID                        : 192268492225515931263256051939944721396 (0x90A5908D28F54EA794FF27495F106BF4)
Complete name                    : D:\_mkv_test\q\orginal_to_MKV.mkv
Format                           : Matroska
File size                        : 152 MiB
Duration                         : 30s 272ms
Overall bit rate                 : 42.1 Mbps
Encoded date                     : UTC 2011-05-14 12:39:43
Writing application              : mkvmerge v4.7.0 ('Just Like You Imagined') built on Apr 21 2011 01:13:14
Writing library                  : libebml v1.2.0 + libmatroska v1.1.0
Video
ID                               : 1
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L5.0
Format settings, CABAC           : Yes
Format settings, ReFrames        : 2 frames
Format settings, GOP             : M=3, N=33
Codec ID                         : V_MPEG4/ISO/AVC
Duration                         : 30s 280ms
Bit rate mode                    : Constant
Nominal bit rate                 : 50.0 Mbps
Width                            : 1 920 pixels
Height                           : 1 080 pixels
Display aspect ratio             : 16:9
Frame rate                       : 23.976 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 1.006
Color primaries                  : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics         : BT.709-5, BT.1361
Matrix coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Audio
ID                               : 2
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format profile                   : LC
Codec ID                         : A_AAC
Duration                         : 30s 272ms
Channel(s)                       : 6 channels
Channel positions                : Front: L C R, Side: L R, LFE
Sampling rate                    : 48.0 KHz
Compression mode                 : Lossy
т.к. битрейт покадрово в MKV нельзя посмотреть, то тем же tsMuxer'ом перепаковываю в TS и получаю размер 155MB и совершенно иную картину по битрейту.
скрытый текст
Код:
General
ID                               : 1 (0x1)
Complete name                    : D:\_mkv_test\q\orginal_to_MKV_to_TS.ts
Format                           : MPEG-TS
File size                        : 155 MiB
Duration                         : 30s 292ms
Overall bit rate                 : 43.0 Mbps
Maximum Overall bit rate         : 35.5 Mbps
Video
ID                               : 4113 (0x1011)
Menu ID                          : 1 (0x1)
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L5.0
Format settings, CABAC           : Yes
Format settings, ReFrames        : 2 frames
Codec ID                         : 27
Duration                         : 30s 239ms
Bit rate mode                    : Constant
Nominal bit rate                 : 50.0 Mbps
Width                            : 1 920 pixels
Height                           : 1 080 pixels
Display aspect ratio             : 16:9
Frame rate                       : 23.976 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 1.006
Color primaries                  : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics         : BT.709-5, BT.1361
Matrix coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Audio
ID                               : 4352 (0x1100)
Menu ID                          : 1 (0x1)
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format version                   : Version 2
Format profile                   : LC
Muxing mode                      : ADTS
Codec ID                         : 15
Duration                         : 30s 250ms
Bit rate mode                    : Variable
Channel(s)                       : 6 channels
Channel positions                : Front: L C R, Side: L R, LFE
Sampling rate                    : 48.0 KHz
Compression mode                 : Lossy
подозреваю, что изменения проиошли на этапе перепаковывания в MKV, т.к. именно на этом этапе серьезно уменьшился размер файл.
вопрос: что произошло? отчего вдруг из-за перепаковки изменился битрейт?
[Профиль]  [ЛС] 

TDiTP_

Top Loader 05* 2TB

Стаж: 15 лет

Сообщений: 1612

TDiTP_ · 14-Май-11 16:53 (спустя 46 мин.)

hardstep писал(а):
TS-файл, кодированный в H264 c CBR 50Mbps
...........
вопрос: что произошло? отчего вдруг из-за перепаковки изменился битрейт?
Муксер MkvMerge при упаковке в MKV, как и муксер Haali, удаляет некоторую служебную информацию. Это Filler Data, Sequence End Code и что-то еще. Filler Data убирается навсегда (эта инфа и не нужна никому), Sequence End Code (а эта инфа нужна некоторым муксерам, например Scenarist BD и TsMuxer) должен уметь восстанавливать демуксер. Sequence End Code умеют восстанавливать демуксеры TsMuxer'а и eac3to; MkvExtract этого делать не умеет (поэтому поток H264, извлеченный с помощью MkvExtract нельзя будет засунуть в TsMuxer).
Как правило, значительно освободить место позволяет именно Filler Data:
http://forum.doom9.org/showthread.php?p=1363276#post1363276
Dark Shikari писал(а):
Filler RBSP is totally useless in most real situations. Filler is required for CBR HRD, however.
Some notes:
1) Filler is usually applied with filler SEI, not filler RBSP.
2) Filler is needed for CBR mux situations, such as a cable television mux or any other transmission line where the speed is an absolutely constant frequency. Of course, it can easily be added by the muxer or the transmitter.
There is no reason that filler SEIs should ever be on a Blu-ray, as Blu-rays use VBR HRD.
madshi писал(а):
The filler data is just there to achieve CBR or some other stupid aims. So there's no reason to leave it in the stream. It's like zero padded DTS files. No reason really to keep it in the stream. That's why it gets removed by the MKV muxing process.
..........
Filler data is by design and by h264 specification useless for decoders. So why keep it in the stream? Removing it from the stream is in no way "destroying" the stream. It's more like "cleaning up the stream". I don't see you complaining about eac3to removing the zero padding of DTS streams. So why are you complaining about removing useless filler data from h264 streams? The only effect it has is saving space. To my best knowledge there is no other (positive or negative) effect of removing the filler data.
[Профиль]  [ЛС] 

hardstep

Стаж: 16 лет 10 месяцев

Сообщений: 42


hardstep · 14-Май-11 17:27 (спустя 34 мин., ред. 14-Май-11 17:27)

спасибо за грамотный ответ.
правильно ли я понимаю, что Filler Data - это просто "нулики", не содержащие полезной информации, которые подтягивают битрейт каждого отдельного кадра к заданному в CBR уровню?
[Профиль]  [ЛС] 

TDiTP_

Top Loader 05* 2TB

Стаж: 15 лет

Сообщений: 1612

TDiTP_ · 14-Май-11 18:28 (спустя 1 час, ред. 14-Май-11 18:28)

hardstep писал(а):
правильно ли я понимаю, что Filler Data - это просто "нулики"
Что-то вроде.
Вот был похожий случай : https://rutr.life/forum/viewtopic.php?p=40327710#40327710
как оказалось, дело в filler data (eac3to выкидывает это инфо уже при демуксе). Это было видно даже просто в Хэше сырого видеопотока (что-то вроде FF байт заключенных м/у 0C и 80). Подробнее о Filler Data тут.
В общем, ничего страшного в уменьшении размера при перепаковке в MKV я не вижу. Вроде бы ни у одного проигрывателя, как аппаратного, так и стационарного - проблем с проигрыванием такого видео нет. А если такой и найдется, то это уже вопрос к разработчикам плеера, ибо отсутствие некоторой исходной служебной информации - часть спецификации MKV.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error