Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#2772 closed defect (fixed)

strict does not work with invalid stream identifiers

Reported by: klaxa Owned by:
Priority: minor Component: ffmpeg
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description (last modified by cehoyos)

Summary of the bug:
I'm trying to use the experimental branch of libvpx to test vp9, but ffmpeg won't use libvpx-vp9 even though '-strict -2' is specified. The option gets parsed but apparently not applied.
How to reproduce:

Compile the experimental branch of libvpx, enable vp9 and enable shared libraries. Compile ffmpeg with libvpx enabled. The following output is produced:

[klaxa@can ~]$ LD_LIBRARY_PATH=/home/klaxa/tools/lib/ /home/klaxa/tools/bin/ffmpeg -i Download/Nothing\'s\ Carved\ In\ Stone\ -\ Out\ of\ Control\ \[1440x1080\ h264\ SSTV\ HD\].ts -vf fieldmatch,decimate -s 1280x720 -c:v vp9 -strict -2 -t 30 -c:a libfdk_aac -b:c 192k -y test2.mkv 
ffmpeg version N-54570-g509642b Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 10 2013 13:28:35 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/home/klaxa/tools/ --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libvorbis --enable-libx264 --enable-librtmp --enable-libvpx --extra-cflags=-I/home/klaxa/tools/include --extra-ldflags=-L/home/klaxa/tools/lib
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.102 / 55. 18.102
  libavformat    55. 11.101 / 55. 11.101
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 79.100 /  3. 79.100
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
[h264 @ 0x1698aa0] non-existing SPS 19 referenced in buffering period
Input #0, mpegts, from 'Download/Nothing's Carved In Stone - Out of Control [1440x1080 h264 SSTV HD].ts':
  Duration: 00:04:33.12, start: 21804.873144, bitrate: 6966 kb/s
  Program 33410 
    Stream #0:0[0x1002]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x1042]: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 144 kb/s
[matroska @ 0x169a320] Invalid stream specifier: c.
    Last message repeated 3 times
Codec AVOption strict (how strictly to follow the standards) specified for output file #0 (test2.mkv) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (test2.mkv) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[libvpx-vp9 @ 0x169abe0] The encoder 'libvpx-vp9' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

A log with -loglevel debug is attached and here: https://gist.github.com/klaxa/5968451

Attachments (1)

ffmpeg-log.txt (39.0 KB) - added by klaxa 6 years ago.

Download all attachments as: .zip

Change History (6)

Changed 6 years ago by klaxa

comment:1 Changed 6 years ago by cehoyos

  • Description modified (diff)

comment:2 Changed 6 years ago by cehoyos

  • Component changed from FFmpeg to avcodec
  • Keywords vp9 added; experimental removed

Please test the following:
$ ffmpeg -i input -vcodec libvpx-vp9 -strict -2 out.mkv

comment:3 Changed 5 years ago by cehoyos

  • Component changed from avcodec to undetermined
  • Keywords vp9 removed
  • Priority changed from normal to minor
  • Reproduced by developer set
  • Status changed from new to open
  • Summary changed from FFMPEG -strict -2 and -strict experimental do not get applied with vp9 to strict does not work with invalid stream identifiers

FFmpeg correctly prints a warning for the incorrect stream specifier, but fails then with an quite unrelated error message (that is more visible than the original warning).

$ ffmpeg -f s16le -i /dev/zero -b:z 128k -strict -2 -acodec aac -f null -
ffmpeg version N-61191-gea9399f Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar  9 2014 13:02:00 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 66.101 / 52. 66.101
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 34.100 / 55. 34.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Guessed Channel Layout for  Input Stream #0.0 : mono
Input #0, s16le, from '/dev/zero':
  Duration: N/A, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
[null @ 0x21a2540] Invalid stream specifier: z.
    Last message repeated 1 times
Codec AVOption strict (how strictly to follow the standards) specified for output file #0 (pipe:) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (pipe:) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[aac @ 0x21a2f20] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

comment:4 Changed 5 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed

comment:5 Changed 5 years ago by cehoyos

  • Component changed from undetermined to ffmpeg
Note: See TracTickets for help on using tickets.