Opened 9 years ago

Closed 9 years ago

#4111 closed defect (fixed)

h261 encoding produces glitches with -qscale 2

Reported by: Carl Eugen Hoyos Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: h261
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

The following command shows recurring artefacts in the output file (every twelfth frame) that are not shown with -qscale 3

$ ffmpeg -f lavfi -i testsrc=s=cif -qscale 2 -vcodec h261 -threads 1 -t 10 -mbd 2 out.avi
ffmpeg version N-67684-g12630fa Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 15 2014 13:07:53 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      54. 11.100 / 54. 11.100
  libavcodec     56. 12.101 / 56. 12.101
  libavformat    56. 12.103 / 56. 12.103
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, lavfi, from 'testsrc=s=cif':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 352x288 [SAR 1:1 DAR 11:9], 25 tbr, 25 tbn, 25 tbc
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf56.12.103
    Stream #0:0: Video: h261 (H261 / 0x31363248), yuv420p, 352x288 [SAR 1:1 DAR 11:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.12.101 h261
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h261 (native))
Press [q] to stop, [?] for help
frame=  250 fps=0.0 q=2.0 Lsize=     591kB time=00:00:10.00 bitrate= 484.0kbits/s
video:579kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.002101%

The same artefacts are shown without -mbd 2

Change History (3)

comment:1 by Carl Eugen Hoyos, 9 years ago

Probably not a regression, reproducible with 1c3990db

comment:2 by Michael Niedermayer, 9 years ago

H261 cannot encode this without artifacts at qp=2
since 9f73b88c624a0b70a3d1169b9f6fa49002dfb94a qp_rd can be used to reduce the qp for MBs which can otherwise not be encoded

comment:3 by Michael Niedermayer, 9 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.