[FFmpeg-devel] doc/examples/transcoding cannot into libx264

Andrey Utkin andrey.od.utkin at gmail.com
Mon Feb 1 01:53:11 CET 2016


doc/examples/transcoding is not able to reencode with libx264.
Please help to teach it to do so.

This script reproduces the issue in automated fashion:
https://gist.github.com/andrey-utkin/925ce227b2b530d1e808
(ffmpeg.issue.sh attached).

The script applies one patch to the example program. The patch addresses
a bit different issue but is required to proceed with this usecase.
(7e12ed3c07e38d49b3aa025897a222a92fbaf3a5.patch attached.)

JEEB on IRC asked to try both static and shared builds, so the script
builds and runs both.

Here you can see what actually happens (what is the problem):
https://gist.github.com/andrey-utkin/c72034b68f7950101dbc
https://gist.github.com/andrey-utkin/9994afa6dd26627cee50 (to prove that
input pixel format doesn't change anything).

Quoting actual output exposing the problem here. See "broken ffmpeg
default settings detected".


 $ for x in /tmp/ffmpeg.{static,shared}
> do
>     pushd $x
>     export LD_LIBRARY_PATH="$x/lib"
>     ./bin/ffmpeg -f lavfi -i testsrc -t 1 -c:v libx264 -y test.mkv
>     ./transcoding test.mkv out.mkv || true # this fails
>     popd
> done
/tmp/ffmpeg.static /tmp
ffmpeg version N-78232-g9962718 Copyright (c) 2000-2016 the FFmpeg
developers
  built with gcc 5.3.0 (Gentoo 5.3.0 p1.0, pie-0.6.5)
  configuration: --enable-libx264 --enable-gpl --prefix=/tmp/ffmpeg.static
  libavutil      55. 16.101 / 55. 16.101
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 23.101 / 57. 23.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 27.100 /  6. 27.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, lavfi, from 'testsrc':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
[SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x35024e0] using SAR=1/1
[libx264 @ 0x35024e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x35024e0] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit
[libx264 @ 0x35024e0] 264 - core 148 r2665M a01e339 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html -
options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7
psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1
8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.23.101
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv444p,
320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=   25 fps=0.0 q=-1.0 Lsize=       8kB time=00:00:00.92 bitrate=
74.0kbits/s speed=13.6x
video:7kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 11.975260%
[libx264 @ 0x35024e0] frame I:1     Avg QP:19.50  size:  2846
[libx264 @ 0x35024e0] frame P:9     Avg QP:17.62  size:   346
[libx264 @ 0x35024e0] frame B:15    Avg QP:14.18  size:    64
[libx264 @ 0x35024e0] consecutive B-frames: 20.0%  0.0%  0.0% 80.0%
[libx264 @ 0x35024e0] mb I  I16..4: 31.3% 41.7% 27.0%
[libx264 @ 0x35024e0] mb P  I16..4:  1.2%  2.0%  0.6%  P16..4:  8.6%
3.3%  2.0%  0.0%  0.0%    skip:82.2%
[libx264 @ 0x35024e0] mb B  I16..4:  0.2%  0.1%  0.0%  B16..8:  4.8%
0.1%  0.0%  direct: 0.2%  skip:94.5%  L0:39.7% L1:54.9% BI: 5.4%
[libx264 @ 0x35024e0] 8x8 transform intra:44.1% inter:48.9%
[libx264 @ 0x35024e0] coded y,u,v intra: 12.2% 11.2% 11.0% inter: 0.7%
0.9% 0.8%
[libx264 @ 0x35024e0] i16 v,h,dc,p: 71% 19%  3%  7%
[libx264 @ 0x35024e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 71%  6% 23%  0%  0%
 0%  0%  0%  0%
[libx264 @ 0x35024e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 47% 31% 15%  2%  1%
 1%  0%  2%  0%
[libx264 @ 0x35024e0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x35024e0] ref P L0: 63.4%  5.0% 23.5%  8.1%
[libx264 @ 0x35024e0] ref B L0: 73.3% 23.3%  3.5%
[libx264 @ 0x35024e0] ref B L1: 97.8%  2.2%
[libx264 @ 0x35024e0] kb/s:55.28
Input #0, matroska,webm, from 'test.mkv':
  Metadata:
    ENCODER         : Lavf57.23.101
  Duration: 00:00:01.00, start: 0.000000, bitrate: 68 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 320x240
[SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      ENCODER         : Lavc57.24.101 libx264
      DURATION        : 00:00:01.000000000
[libx264 @ 0x20b8b40] broken ffmpeg default settings detected
[libx264 @ 0x20b8b40] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x20b8b40] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x20b8b40] speed presets are listed in x264 --help
[libx264 @ 0x20b8b40] profile is optional; x264 defaults to high
Cannot open video encoder for stream #0
Error occurred: Generic error in an external library
/tmp
/tmp/ffmpeg.shared /tmp
ffmpeg version N-78232-g9962718 Copyright (c) 2000-2016 the FFmpeg
developers
  built with gcc 5.3.0 (Gentoo 5.3.0 p1.0, pie-0.6.5)
  configuration: --enable-libx264 --enable-gpl
--prefix=/tmp/ffmpeg.shared --enable-shared
  libavutil      55. 16.101 / 55. 16.101
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 23.101 / 57. 23.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 27.100 /  6. 27.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, lavfi, from 'testsrc':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
[SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x10394e0] using SAR=1/1
[libx264 @ 0x10394e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x10394e0] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit
[libx264 @ 0x10394e0] 264 - core 148 r2665M a01e339 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html -
options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7
psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1
8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.23.101
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv444p,
320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=   25 fps=0.0 q=-1.0 Lsize=       8kB time=00:00:00.92 bitrate=
74.0kbits/s speed=17.1x
video:7kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 11.975260%
[libx264 @ 0x10394e0] frame I:1     Avg QP:19.50  size:  2846
[libx264 @ 0x10394e0] frame P:9     Avg QP:17.62  size:   346
[libx264 @ 0x10394e0] frame B:15    Avg QP:14.18  size:    64
[libx264 @ 0x10394e0] consecutive B-frames: 20.0%  0.0%  0.0% 80.0%
[libx264 @ 0x10394e0] mb I  I16..4: 31.3% 41.7% 27.0%
[libx264 @ 0x10394e0] mb P  I16..4:  1.2%  2.0%  0.6%  P16..4:  8.6%
3.3%  2.0%  0.0%  0.0%    skip:82.2%
[libx264 @ 0x10394e0] mb B  I16..4:  0.2%  0.1%  0.0%  B16..8:  4.8%
0.1%  0.0%  direct: 0.2%  skip:94.5%  L0:39.7% L1:54.9% BI: 5.4%
[libx264 @ 0x10394e0] 8x8 transform intra:44.1% inter:48.9%
[libx264 @ 0x10394e0] coded y,u,v intra: 12.2% 11.2% 11.0% inter: 0.7%
0.9% 0.8%
[libx264 @ 0x10394e0] i16 v,h,dc,p: 71% 19%  3%  7%
[libx264 @ 0x10394e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 71%  6% 23%  0%  0%
 0%  0%  0%  0%
[libx264 @ 0x10394e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 47% 31% 15%  2%  1%
 1%  0%  2%  0%
[libx264 @ 0x10394e0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x10394e0] ref P L0: 63.4%  5.0% 23.5%  8.1%
[libx264 @ 0x10394e0] ref B L0: 73.3% 23.3%  3.5%
[libx264 @ 0x10394e0] ref B L1: 97.8%  2.2%
[libx264 @ 0x10394e0] kb/s:55.28
Input #0, matroska,webm, from 'test.mkv':
  Metadata:
    ENCODER         : Lavf57.23.101
  Duration: 00:00:01.00, start: 0.000000, bitrate: 68 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 320x240
[SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      ENCODER         : Lavc57.24.101 libx264
      DURATION        : 00:00:01.000000000
[libx264 @ 0x2701b40] broken ffmpeg default settings detected
[libx264 @ 0x2701b40] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x2701b40] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x2701b40] speed presets are listed in x264 --help
[libx264 @ 0x2701b40] profile is optional; x264 defaults to high
Cannot open video encoder for stream #0
Error occurred: Generic error in an external library
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg.issue.sh
Type: application/x-shellscript
Size: 817 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160201/5394a6b5/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 7e12ed3c07e38d49b3aa025897a222a92fbaf3a5.patch
Type: text/x-patch
Size: 1107 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160201/5394a6b5/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160201/5394a6b5/attachment.sig>


More information about the ffmpeg-devel mailing list