I have been trying to speed up transcoding MP4 or MPEG-TS files, but I found that the total bit rate of the output is still VBR.
I have tried CPU and GPU！Will the GPU not be transcoded to CBR?
Code:General ID : 1 (0x1) Complete name : C:\Users\zgllo\Videos\歌_2.ts Format : MPEG-TS File size : 3.81 MiB Duration : 9 s 520 ms Overall bit rate mode : Variable Overall bit rate : 3 348 kb/s Video ID : 20 (0x14) Menu ID : 1 (0x1) Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4 Format settings : 2 Ref Frames Format settings, CABAC : No Format settings, Reference frames : 2 frames Codec ID : 27 Duration : 9 s 560 ms Bit rate mode : Constant Bit rate : 2 988 kb/s Nominal bit rate : 2 500 kb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate : 25.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Interlaced Scan type, store method : Separated fields Scan order : Top Field First Bits/(Pixel*Frame) : 0.058 Stream size : 3.41 MiB (89%) Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 Audio ID : 21 (0x15) Menu ID : 1 (0x1) Format : MPEG Audio Format version : Version 1 Format profile : Layer 2 Codec ID : 3 Duration : 9 s 600 ms Bit rate mode : Constant Bit rate : 192 kb/s Channel(s) : 2 channels Sampling rate : 48.0 kHz Frame rate : 41.667 FPS (1152 SPF) Compression mode : Lossy Delay relative to video : -10 ms Stream size : 225 KiB (6%) Menu ID : 4096 (0x1000) Menu ID : 1 (0x1) Duration : 9 s 520 ms List : 20 (0x14) (AVC) / 21 (0x15) (MPEG Audio) Service name : Service01 Service provider : FFmpeg Service type : digital television
+ Reply to Thread
Results 1 to 3 of 3
The video encoder can flag the video stream to represent that the encoding mode was: "try to keep the bitrate rather constant, if possible"; but in general, it is not the case, bitrates of compressed video streams will always vary, only uncompressed video can have a constant bitrate. So don't count much on this flag in a video stream.
Audio streams can be forced to a constant bitrate. But this is mainly achieved by wasting space, by stuffing smaller frames. This flag is a bit more reliable.
The container, after all, is a third separate case. There are containers which may have special layouts for either constant or variable bitrate streams as content. Such a container in CBR layout may not be able to guarantee sync between video and audio if they have a variable bitrate instead. Other containers are per se "able to handle variable bitrates". This flag doesn't tell you much more than that.
Variable bitrate is nothing bad. Instead, it is the only way to keep the visual quality rather constant, despite variable video content ... a scene with fine details or much motion needs a lot more bitrate than a still scene of a misty landscape, or even a moment of blackness. You don't want a black fade waste as much bitrate as a high speed chase.
And it does not matter at all whether a CPU or a GPU encodes the video. VBR is easier to achieve than CBR, because the encoder has more freedom to respond to the requirements of the material. CBR is only useful when you have speed limits to read the encoded video (e.g. from a slow medium like an optical disc, or as a transfer via a network).
Last edited by LigH.de; 9th Aug 2019 at 03:06.
Thanks for your answer, because the video has another problem with PCR jitter, I have no way to detect it through ETR101 290, and finally I actually use IPTV VOD to play