This forum has been archived. All content is frozen. Please use KDE Discuss instead.

variable bit rate h264, am I using it or not?

Tags: None
(comma "," separated)
sdowney717
Registered Member
Posts
33
Karma
0
I have no idea. I did a lot of googling and lots of talk about what it is in ffmpeg and not much examples. Lots of people wanted to use cbr and examples for that were given.
I want VBR on my encodes.
Does anyone use the kdenlive gui? I get the feeling people use a lot of commandline.

Here is what I have for encoding from that.

This does 3000 bit something, I have no idea if it is variable or constant.

The line vb=3000k sets a bit rate.

f=mp4 hq=1 acodec=aac ab=%audiobitrate+'k' ar=48000 pix_fmt=yuv420p vcodec=libx264 minrate=0 vb=3000k g=250 bf=3 b_strategy=1 subcmp=2 cmp=2 coder=1 flags=+loop flags2=dct8x8 qmax=51 subq=7 qmin=10 qcomp=0.6 qdiff=4 trellis=1 aspect=%dar pass=%passes movflags=faststart
sdowney717
Registered Member
Posts
33
Karma
0
again not much info here
http://forum.videohelp.com/threads/194088-Need-help-with-ffmpeg-2-pass-VBR-encoding

last post shows this

-b 3000K -minrate 0K -maxrate 8000K

is that the way you set a vbr??
target is around 3000k, range from 0 to 8000k??
yellow_drupal
Registered Member
Posts
748
Karma
0
Mediainfo or maybe ffprobe, or a decent media player should tell you if its vbr or cbr.
sdowney717
Registered Member
Posts
33
Karma
0
did a test set this -b 3500K -minrate 0K -maxrate 8000K
render time was 01:17:24 1.7gb

vs this

vb=3000k
render time was 02:05 1.6gb

I cant see any quality difference

Mediainfo gives a huge amount of info, seems to indicate both are constant bit rate on the video

coded with -b 3500K -minrate 0K -maxrate 8000K yields:

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.0
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1h 1mn
Bit rate : 3 234 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Original display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits

mediainfo
vb=3000k yields
html
Commercial name : AVC
Format profile : High@L3.0
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, CABAC : Yes
Format settings, ReFrames : 3
Format settings, ReFrames : 3 frames
Internet media type : video/H264
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Codec ID/Url : http://www.apple.com/quicktime/download/standalone.html
Codec : AVC
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec/Url : http://developers.videolan.org/x264.html
Codec/CC : avc1
Codec profile : High@L3.0
Codec settings : CABAC / 3 Ref Frames
Codec settings, CABAC : Yes
Codec_Settings_RefFrames : 3
Duration : 3711742
Duration : 1h 1mn
Duration : 1h 1mn 51s 742ms
Duration : 1h 1mn
Duration : 01:01:51.742
Bit rate : 3000000
Bit rate : 3 000 Kbps
Width : 720
Width : 720 pixels
Height : 480
Height : 480 pixels
Pixel aspect ratio : 0.889
Display aspect ratio : 1.334
Display aspect ratio : 4:3
Original display aspect ratio : 1.333
Original display aspect ratio : 4:3
Rotation : 0.000
Frame rate mode : CFR
Frame rate mode : Constant
FrameRate_Mode_Original : VFR
Frame rate : 29.970
Frame rate : 29.970 fps
Frame count : 111241
Standard : NTSC
Resolution : 8
Resolution : 8 bits
Colorimetry : 4:2:0
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8


sdowney717
Registered Member
Posts
33
Karma
0
ffprobe can analyze the vid made with -b 3500K -minrate 0K -maxrate 8000K

scott@scott-P5QC:~/kdenlive$ ffprobe pondtestvbr.mp4
avprobe version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2007-2012 the Libav developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pondtestvbr.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.0
Duration: 01:01:51.74, start: 0.000000, bitrate: 3580 kb/s
Stream #0.0(und): Video: h264 (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 3233 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 340 kb/s
scott@scott-P5QC:~/kdenlive$

ffprobe can not analyze the one made with vb=3000k

scott@scott-P5QC:~/kdenlive$ ffprobe -f pond.mp4
avprobe version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2007-2012 the Libav developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Unknown input format: pond.mp4
Failed to set value 'pond.mp4' for option 'f'
scott@scott-P5QC:~/kdenlive$
sdowney717
Registered Member
Posts
33
Karma
0
Not a lot of info on how to make something vbr that I can find.
This example says to make constant then make it min and max rates the same.

I made them different and mediainfo still says constant

"http://superuser.com/questions/314354/ffmpeg-constant-bitrate

From the FFmpeg documentation:

Set min video bitrate (in bit/s). Most useful in setting up a CBR encode:
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v

So, set minrate, maxrate and bitrate to the same rate"

From mediainfo, frame rate mode = constant, is that constant bit rate?
otherwise, mediainfo just lists bit rate, no bitrate mode in the video section

at the top, it says overall is variable, but in video does not say bit rate mode, just frame rate mode

scott@scott-P5QC:~/kdenlive$ mediainfo pondtestvbr.mp4
General
Complete name : pondtestvbr.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 1.55 GiB
Duration : 1h 1mn
Overall bit rate mode : Variable
Overall bit rate : 3 580 Kbps
Writing application : Lavf53.21.0


yellow_drupal
Registered Member
Posts
748
Karma
0
Complete name : pondtestvbr.mp4

Overall bit rate mode : Variable
Overall bit rate : 3 580 Kbps
Writing application : Lavf53.21.0

So how did you encode pondtestvbr.pm4?

"From mediainfo, frame rate mode = constant, is that constant bit rate?"

No that's frame rate constant versus variable.
sdowney717
Registered Member
Posts
33
Karma
0
I used these settings
f=mp4 hq=1 acodec=aac ab=%audiobitrate+'k' ar=48000 pix_fmt=yuv420p vcodec=libx264 minrate=0 -b 3500K -minrate 0K -maxrate 8000K g=250 bf=3 b_strategy=1 subcmp=2 cmp=2 coder=1 flags=+loop flags2=dct8x8 qmax=51 subq=7 qmin=10 qcomp=0.6 qdiff=4 trellis=1 aspect=%dar pass=%passes movflags=faststart

If I change
-maxrate 8000K
to
-maxrate 12000K

would the end result be noticeable?

the time to encode was much shorter by about half time using
-b 3500K -minrate 0K -maxrate 8000K
instead of vb=3000k


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]