[Libav-user] bitrate and file size issue with nvidia nvenv encoder
Sreenath BH
bhsreenath at gmail.com
Thu Mar 3 16:25:15 CET 2016
Hi all,
I am trying to use nvidia's nvenc codec to transcode video files.
ffmpeg has been built
with both libx264 and nvenc codecs enabled.
ffmpeg when run using nvenc codec creates a file that is almost double
the size of input
mp4 file and bitrate almost double the size of input file.
This is output of ffprobe on the input file:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'large.mp4':
Metadata:
Duration: 01:49:12.30, start: 0.000000, bitrate: 391 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
768x432 [SAR 1:1 DAR 16:9], 292 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
(default)
Metadata:
creation_time : 2013-11-15 18:04:27
handler_name : Apple Video Media Handler
----- Command used with libx264:
ffmpeg -i large.mp4 -loglevel quiet -c:a aac -c:v libx264 -pix_fmt
yuv420p -movflags +faststart out.mp4
output file has size of : 313818971 bytes
ffprobe output on the output file:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
encoder : Lavf57.25.100
Duration: 01:49:12.30, start: 0.023220, bitrate: 383 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
768x432 [SAR 1:1 DAR 16:9], 245 kb/s, 30 fps, 30 tbr, 15360 tbn, 60
tbc (default)
Metadata:
handler_name : VideoHandler
-------- Command using nvenv codec:
ffmpeg -i large.mp4 -loglevel quiet -c:a aac -c:v nvenc -pix_fmt
yuv420p -movflags +faststart out.mp4
Size of output file:
646598462 bytes (640 MB)
ffprobe output on the output files are as follows:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
encoder : Lavf57.25.100
Duration: 01:49:12.30, start: 0.023220, bitrate: 789 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661),
yuv420p(tv), 768x432 [SAR 1:1 DAR 16:9], 654 kb/s, 30 fps, 30 tbr,
15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
So the differences between the two appear to be:
(1) pixel format : yuv420p(tv) with nvidia whereas it is yuv420p with libx264
(2) h264 (Main) with nvidia whereas it is Video: h264 (High)
(3) bitrate: 789 kb/s with nvidia whereas it is 383 kb/s with lib264.
What is causing nvidia codec to double the bitrate? As can be seen, I
am not specifying any bitrate to use. So I expect ffmpeg to retain the
same bitrate.
I would like to retain the same bitrate and it would be good is the
file size if not so large.
Any help appreciated,
thanks,
Sreenath
More information about the Libav-user
mailing list