[FFmpeg-user] mjpeg "quality"

Erik Slagter erik at slagter.name
Mon Mar 4 12:31:13 CET 2013


On 03-03-13 21:45, Carl Eugen Hoyos wrote:
> Erik Slagter <erik <at> slagter.name> writes:
> 
>> I am probably overlooking something or plain stupid, 
>> this is the thing, whatever "-q" value ("-q 1", "-q 30") 
>> I supply to the ffmpeg command, with the mjpeg encoder, 
>> the output remains the same size
> 
> Not reproducible here / please provide your command 
> line including complete, uncut console output.

Okay, thank you for trying to reproduce. To rule out a local problem I
did a complete "clean" clone and compilation from HEAD (on x86_64):

*** commands ***

mkdir ffmpeg-test
cd ffmpeg-test
git clone git://git.videolan.org/ffmpeg.git
../../ffmpeg/ffconfig # contents of that script I will supply later on
git remote set-url origin git://source.ffmpeg.org/ffmpeg # as advised in
./configure
git pull # check
make
mkdir bin
cp ffmpeg bin
find . -name '*.so*' -exec cp -a '{}' bin ';' -print
cd bin
export LD_LIBRARY_PATH=$PWD
ldd ./ffmpeg
./ffmpeg
./ffmpeg -i /var/foto/Todo/video/orig/00000.MTS -an -sn -codec:v mjpeg
-q:v 32 -f matroska test.mkv # *.MTS = bluray/AVC movie

*** output ***

----------------------------- >-8 ------------------------------

./configure ... (ffconfig)

install prefix            /usr
source path               .
C compiler                gcc
ARCH                      x86 (nocona)
big-endian                no
runtime cpu detection     yes
yasm                      yes
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AVX enabled               yes
FMA4 enabled              yes
CMOV enabled              yes
CMOV is fast              no
EBX available             yes
EBP available             yes
debug symbols             no
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    yes
postprocessing support    yes
new filter support        yes
network support           yes
threading support         pthreads
safe bitstream reader     yes
SDL support               yes
texi2html enabled         yes
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes

External libraries:
bzlib			libmp3lame		libopencore_amrwb
frei0r			libopencore_amrnb	libx264
libfreetype

Enabled decoders:
aac			c93			interplay_video
aac_latm		cavs			jacosub
aasc			cdgraphics		jpeg2000
ac3			cdxl			jpegls
adpcm_4xm		cinepak			jv
adpcm_adx		cljr			kgv1
adpcm_afc		cllc			kmvc
adpcm_ct		comfortnoise		lagarith
adpcm_ea		cook			libopencore_amrnb
adpcm_ea_maxis_xa	cpia			libopencore_amrwb
adpcm_ea_r1		cscd			loco
adpcm_ea_r2		cyuv			mace3
adpcm_ea_r3		dca			mace6
adpcm_ea_xas		dfa			mdec
adpcm_g722		dirac			microdvd
adpcm_g726		dnxhd			mimic
adpcm_ima_amv		dpx			mjpeg
adpcm_ima_apc		dsicinaudio		mjpegb
adpcm_ima_dk3		dsicinvideo		mlp
adpcm_ima_dk4		dvbsub			mmvideo
adpcm_ima_ea_eacs	dvdsub			motionpixels
adpcm_ima_ea_sead	dvvideo			movtext
adpcm_ima_iss		dxtory			mp1
adpcm_ima_oki		eac3			mp1float
adpcm_ima_qt		eacmv			mp2
adpcm_ima_smjpeg	eamad			mp2float
adpcm_ima_wav		eatgq			mp3
adpcm_ima_ws		eatgv			mp3adu
adpcm_ms		eatqi			mp3adufloat
adpcm_sbpro_2		eightbps		mp3float
adpcm_sbpro_3		eightsvx_exp		mp3on4
adpcm_sbpro_4		eightsvx_fib		mp3on4float
adpcm_swf		escape124		mpc7
adpcm_thp		escape130		mpc8
adpcm_xa		evrc			mpeg1video
adpcm_yamaha		ffv1			mpeg2video
alac			ffvhuff			mpeg4
als			ffwavesynth		mpeg_xvmc
amrnb			flac			mpegvideo
amrwb			flic			mpl2
amv			flv			msa1
anm			fourxm			msmpeg4v1
ansi			fraps			msmpeg4v2
ape			frwu			msmpeg4v3
ass			g723_1			msrle
asv1			g729			mss1
asv2			gif			mss2
atrac1			gsm			msvideo1
atrac3			gsm_ms			mszh
aura			h261			mts2
aura2			h263			mvc1
avrn			h263i			mvc2
avrp			h263p			mxpeg
avs			h264			nellymoser
avui			huffyuv			nuv
ayuv			iac			paf_audio
bethsoftvid		idcin			paf_video
bfi			idf			pam
bink			iff_byterun1		pbm
binkaudio_dct		iff_ilbm		pcm_alaw
binkaudio_rdft		imc			pcm_bluray
bintext			indeo2			pcm_dvd
bmp			indeo3			pcm_f32be
bmv_audio		indeo4			pcm_f32le
bmv_video		indeo5			pcm_f64be
brender_pix		interplay_dpcm		pcm_f64le
pcm_lxf			rpza			v308
pcm_mulaw		rv10			v408
pcm_s16be		rv20			v410
pcm_s16be_planar	rv30			vb
pcm_s16le		rv40			vble
pcm_s16le_planar	s302m			vc1
pcm_s24be		sami			vc1image
pcm_s24daud		sanm			vcr1
pcm_s24le		sgi			vima
pcm_s24le_planar	sgirle			vmdaudio
pcm_s32be		shorten			vmdvideo
pcm_s32le		sipr			vmnc
pcm_s32le_planar	smackaud		vorbis
pcm_s8			smacker			vp3
pcm_s8_planar		smc			vp5
pcm_u16be		snow			vp6
pcm_u16le		sol_dpcm		vp6a
pcm_u24be		sonic			vp6f
pcm_u24le		sp5x			vp8
pcm_u32be		srt			vplayer
pcm_u32le		subrip			vqa
pcm_u8			subviewer		wavpack
pcm_zork		subviewer1		webvtt
pcx			sunrast			wmalossless
pgm			svq1			wmapro
pgmyuv			svq3			wmav1
pgssub			tak			wmav2
pictor			targa			wmavoice
pjs			targa_y216		wmv1
ppm			text			wmv2
prores			theora			wmv3
prores_lgpl		thp			wmv3image
ptx			tiertexseqvideo		wnv1
qcelp			tiff			ws_snd1
qdm2			tmv			xan_dpcm
qdraw			truehd			xan_wc3
qpeg			truemotion1		xan_wc4
qtrle			truemotion2		xbin
r10k			truespeech		xbm
r210			tscc2			xface
ra_144			tta			xl
ra_288			twinvq			xsub
ralf			txd			xwd
rawvideo		ulti			y41p
realtext		utvideo			yop
rl2			v210			yuv4
roq			v210x			zero12v
roq_dpcm

Enabled encoders:
a64multi		libmp3lame		pcx
a64multi5		libopencore_amrnb	pgm
aac			libx264			pgmyuv
ac3			libx264rgb		ppm
ac3_fixed		ljpeg			prores
adpcm_adx		mjpeg			prores_anatoliy
adpcm_g722		movtext			prores_kostya
adpcm_g726		mp2			qtrle
adpcm_ima_qt		mpeg1video		r10k
adpcm_ima_wav		mpeg2video		r210
adpcm_ms		mpeg4			ra_144
adpcm_swf		msmpeg4v2		rawvideo
adpcm_yamaha		msmpeg4v3		roq
alac			msvideo1		roq_dpcm
amv			nellymoser		rv10
ass			pam			rv20
asv1			pbm			sgi
asv2			pcm_alaw		snow
avrp			pcm_f32be		sonic
avui			pcm_f32le		sonic_ls
ayuv			pcm_f64be		srt
bmp			pcm_f64le		subrip
cljr			pcm_mulaw		sunrast
comfortnoise		pcm_s16be		svq1
dca			pcm_s16be_planar	targa
dnxhd			pcm_s16le		tiff
dpx			pcm_s16le_planar	utvideo
dvbsub			pcm_s24be		v210
dvdsub			pcm_s24daud		v308
dvvideo			pcm_s24le		v408
eac3			pcm_s24le_planar	v410
ffv1			pcm_s32be		vorbis
ffvhuff			pcm_s32le		wmav1
flac			pcm_s32le_planar	wmav2
flv			pcm_s8			wmv1
g723_1			pcm_s8_planar		wmv2
gif			pcm_u16be		xbm
h261			pcm_u16le		xface
h263			pcm_u24be		xsub
h263p			pcm_u24le		xwd
huffyuv			pcm_u32be		y41p
jpeg2000		pcm_u32le		yuv4
jpegls			pcm_u8

Enabled hwaccels:

Enabled parsers:
aac			dvdsub			mpegvideo
aac_latm		flac			png
ac3			gsm			pnm
adx			h261			rv30
bmp			h263			rv40
cavsvideo		h264			tak
cook			mjpeg			vc1
dca			mlp			vorbis
dirac			mpeg4video		vp3
dnxhd			mpegaudio		vp8
dvbsub

Enabled demuxers:
aac			idf			pcm_u24le
ac3			iff			pcm_u32be
act			ilbc			pcm_u32le
adf			image2			pcm_u8
adx			image2pipe		pjs
aea			ingenient		pmp
afc			ipmovie			pva
aiff			ircam			pvf
amr			iss			qcp
anm			iv8			r3d
apc			ivf			rawvideo
ape			jacosub			realtext
aqtitle			jv			rl2
asf			latm			rm
ass			lmlm4			roq
ast			loas			rpl
au			lvf			rso
avi			lxf			rtp
avr			m4v			rtsp
avs			matroska		sami
bethsoftvid		mgsts			sap
bfi			microdvd		sbg
bink			mjpeg			sdp
bintext			mlp			segafilm
bit			mm			shorten
bmv			mmf			siff
brstm			mov			smacker
c93			mp3			smjpeg
caf			mpc			smush
cavsvideo		mpc8			sol
cdg			mpegps			sox
cdxl			mpegts			spdif
concat			mpegtsraw		srt
daud			mpegvideo		str
dfa			mpl2			subviewer
dirac			mpsub			subviewer1
dnxhd			msnwc_tcp		swf
dsicin			mtv			tak
dts			mv			tedcaptions
dtshd			mvi			thp
dv			mxf			tiertexseq
dxa			mxg			tmv
ea			nc			truehd
ea_cdata		nistsphere		tta
eac3			nsv			tty
epaf			nut			txd
ffm			nuv			vc1
ffmetadata		ogg			vc1t
filmstrip		oma			vivo
flac			paf			vmd
flic			pcm_alaw		vobsub
flv			pcm_f32be		voc
fourxm			pcm_f32le		vplayer
frm			pcm_f64be		vqf
g722			pcm_f64le		w64
g723_1			pcm_mulaw		wav
g729			pcm_s16be		wc3
gif			pcm_s16le		webvtt
gsm			pcm_s24be		wsaud
gxf			pcm_s24le		wsvqa
h261			pcm_s32be		wtv
h263			pcm_s32le		wv
h264			pcm_s8			xa
hls			pcm_u16be		xbin
ico			pcm_u16le		xmv
idcin			pcm_u24be		xwma
yop			yuv4mpegpipe

Enabled muxers:
a64			image2pipe		pcm_s16le
ac3			ipod			pcm_s24be
adts			ircam			pcm_s24le
adx			ismv			pcm_s32be
aiff			ivf			pcm_s32le
amr			jacosub			pcm_s8
asf			latm			pcm_u16be
asf_stream		m4v			pcm_u16le
ass			matroska		pcm_u24be
ast			matroska_audio		pcm_u24le
au			md5			pcm_u32be
avi			microdvd		pcm_u32le
avm2			mjpeg			pcm_u8
bit			mkvtimestamp_v2		psp
caf			mlp			rawvideo
cavsvideo		mmf			rm
crc			mov			roq
daud			mp2			rso
dirac			mp3			rtp
dnxhd			mp4			rtsp
dts			mpeg1system		sap
dv			mpeg1vcd		segment
eac3			mpeg1video		smjpeg
f4v			mpeg2dvd		smoothstreaming
ffm			mpeg2svcd		sox
ffmetadata		mpeg2video		spdif
filmstrip		mpeg2vob		srt
flac			mpegts			stream_segment
flv			mpjpeg			swf
framecrc		mxf			tee
framemd5		mxf_d10			tg2
g722			null			tgp
g723_1			nut			truehd
gif			ogg			vc1t
gxf			oma			voc
h261			pcm_alaw		w64
h263			pcm_f32be		wav
h264			pcm_f32le		webm
hls			pcm_f64be		wtv
ico			pcm_f64le		wv
ilbc			pcm_mulaw		yuv4mpegpipe
image2			pcm_s16be

Enabled protocols:
applehttp		gopher			pipe
cache			hls			rtmp
concat			http			rtmpt
crypto			httpproxy		rtp
data			md5			srtp
ffrtmphttp		mmsh			tcp
file			mmst			udp

Enabled filters:
aconvert		cropdetect		noformat
aevalsrc		decimate		noise
afade			delogo			null
aformat			deshake			nullsink
allpass			drawbox			nullsrc
alphaextract		drawtext		overlay
alphamerge		earwax			pad
amerge			ebur128			pan
amix			edgedetect		pixdesctest
amovie			equalizer		pp
anull			fade			removelogo
anullsink		field			rgbtestsrc
anullsrc		fieldorder		scale
apad			format			select
aresample		fps			sendcmd
aselect			framestep		setdar
asendcmd		frei0r			setfield
asetnsamples		frei0r_src		setpts
asetpts			geq			setsar
asettb			gradfun			settb
ashowinfo		hflip			showinfo
asplit			highpass		showspectrum
astreamsync		histeq			showwaves
atempo			histogram		silencedetect
bandpass		hqdn3d			smartblur
bandreject		hue			smptebars
bass			idet			split
bbox			il			super2xsai
biquad			join			swapuv
blackdetect		kerndeint		testsrc
blackframe		life			thumbnail
blend			lowpass			tile
boxblur			lut			tinterlace
cellauto		lutrgb			transpose
channelmap		lutyuv			treble
channelsplit		mandelbrot		unsharp
color			movie			vflip
colormatrix		mp			volume
concat			mptestsrc		volumedetect
copy			negate			yadif
crop

Enabled bsfs:
aac_adtstoasc		mjpeg2jpeg		mp3_header_decompress
chomp			mjpega_dump_header	noise
dump_extradata		mov2textsub		remove_extradata
h264_mp4toannexb	mp3_header_compress	text2movsub
imx_dump_header

Enabled indevs:
alsa			jack			oss
dv1394			lavfi			v4l2
fbdev

Enabled outdevs:
alsa			oss			sdl

License: nonfree and unredistributable
Creating config.mak and config.h...
config.h is unchanged
config.asm is unchanged
libavutil/avconfig.h is unchanged

----------------------------- >-8 ------------------------------

artemis erik:~LD_LIBRARY_PATH $ ./ffmpeg -y -i
/var/foto/Todo/video/orig/00000.MTS -an -sn -codec:v mjpeg -q:v 32 -f
matroska test.mkv

ffmpeg version N-50460-g393dcbf Copyright (c) 2000-2013 the FFmpeg
developers
  built on Mar  4 2013 11:50:51 with gcc 4.7.2 (GCC) 20120921 (Red Hat
4.7.2-2)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
--enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libmp3lame --disable-libfaac --enable-libx264 --disable-vaapi
--disable-zlib --enable-postproc --enable-static --enable-shared
--enable-pthreads --enable-gpl --enable-version3 --enable-nonfree
--disable-debug --cpu=nocona --enable-avfilter --enable-frei0r
--enable-libfreetype --enable-runtime-cpudetect
  libavutil      52. 17.103 / 52. 17.103
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.102 / 54. 63.102
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 41.100 /  3. 41.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mpegts, from '/var/foto/Todo/video/orig/00000.MTS':
  Duration: 00:00:26.92, start: 0.801622, bitrate: 15704 kb/s
  Program 1
    Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p, 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, 256 kb/s
    Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] /
0x0090)
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf54.63.102
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj420p, 1920x1080
[SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 1k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
frame=  322 fps= 37 q=0.0 Lsize=   18486kB time=00:00:12.92
bitrate=11721.2kbits/s
video:18473kB audio:0kB subtitle:0 global headers:0kB muxing overhead
0.070991%

--------------------------------------- 8-< ---------------------------

ffconfig contents:

configure \
	--prefix=/usr \
	--libdir=/usr/lib64 \
	--shlibdir=/usr/lib64 \
	--enable-libopencore-amrnb \
	--enable-libopencore-amrwb \
	--enable-libmp3lame \
	--disable-libfaac \
	--enable-libx264 \
	--disable-vaapi \
	--disable-zlib \
	--enable-postproc \
	--enable-static \
	--enable-shared \
	--enable-pthreads \
	--enable-gpl \
	--enable-version3 \
	--enable-nonfree \
	--disable-debug \
	--cpu=nocona \
	--enable-avfilter \
	--enable-frei0r \
	--enable-libfreetype \
	--enable-runtime-cpudetect \
	$*


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3740 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20130304/c4b989a8/attachment.p7s>


More information about the ffmpeg-user mailing list