[FFmpeg-user] How to specify custom quantization matrix via command line
Robert Krüger
krueger at lesspain.de
Fri Sep 20 17:13:41 CEST 2013
On Fri, Sep 20, 2013 at 3:53 PM, Andrey Aleksandrovich
<andrey.aleksandrovich at googlemail.com> wrote:
> It's interesting too for me.
> I know that '-mpeg_quant 1' specify MPEG matrix (default is h.263).
> But how to set custom?
>
> On 9/19/13, Robert Krüger <krueger at lesspain.de> wrote:
>> Hi,
>>
>> I am quite sure there used to be a command line option for specifying
>> a custom quantization matrix at least for mpeg-like codecs. I checked
>> ffmpeg -h full and the online docs and I have not been able to find
>> it. Was that removed at some point?
>>
OK, found it now. It's -intra_matrix
However, it does not seem to change anything. I tried a number of
combinations with -q:v and -b (my goal being to push the quality
higher for mjpeg)
I added -intra_matrix
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
just for testing but all files were the same as without that argument.
One example:
ffmpeg -i ~/samples/cameras/panasonic/gh1/panasonic_gh1_1080_50i_15s.MTS
-an -c:v mjpeg -q:v 1 -intra_matrix
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
~/tmp/q1-qmat1.mov
ffmpeg version N-56463-g20101f4 Copyright (c) 2000-2013 the FFmpeg developers
built on Sep 19 2013 20:18:44 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration:
libavutil 52. 44.100 / 52. 44.100
libavcodec 55. 33.100 / 55. 33.100
libavformat 55. 18.100 / 55. 18.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 86.102 / 3. 86.102
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103
Input #0, mpegts, from
'/Users/krueger/samples/cameras/panasonic/gh1/panasonic_gh1_1080_50i_15s.MTS':
Duration: 00:00:15.58, start: 0.385567, bitrate: 9613 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50
tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, fltp, 192 kb/s
[swscaler @ 0x7fa9b2801c00] deprecated pixel format used, make sure
you did set range correctly
Output #0, mov, to '/Users/krueger/tmp/q1-qmat1.mov':
Metadata:
encoder : Lavf55.18.100
Stream #0:0: Video: mjpeg (jpeg / 0x6765706A), yuvj420p, 1920x1080
[SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
frame= 390 fps= 84 q=0.0 Lsize= 24962kB time=00:00:15.60
bitrate=13108.4kbits/s
video:24960kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.009758%
The result was the same as without the matrix. I also tried with -b:v
100M and without anything but no sign of the matrix changing anything.
More information about the ffmpeg-user
mailing list