ffmpeg Encoder (codec mjpeg) not found for output stream #0:0

I am trying to obtain thumbs out of a mp4 video

ffmpeg -y -i some_movie.mp4  -r 1/10 -s 320x240 -vframes 2 -f image2 -aspect 1.3333333333333333 \%08d.jpg

The output is:


ffmpeg version 2.8.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5 (SUSE Linux)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include/ffmpeg --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect --enable-gpl --disable-openssl --enable-avresample --enable-frei0r --enable-gnutls --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --enable-x11grab
  WARNING: library configuration mismatch
  avutil      configuration: --disable-stripping --enable-shared --disable-static --enable-pic --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' --enable-gpl --disable-openssl --enable-avresample --enable-frei0r --enable-gnutls --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-libschroedinger --enable-encoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,libvorbis' --enable-decoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,ljpeg,v210x,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,otf,ttf,ass,srt,ssa,text' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska' --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-decoder=h264 --enable-decoder=pgssub --enable-decoder=dca --enable-decoder=pcm_s16le --enable-decoder=pcm_s24le --enable-decoder=mpeg2video --enable-decoder=dvdsub --enable-decoder=ac3 --enable-muxer=yuv4mpegpipe --enable-muxer=matroska --enable-muxer=wav --enable-muxer=webm --enable-muxer=image2 --enable-demuxer=matroska --enable-demuxer=ogg --enable-protocol=file --enable-protocol=pipe --enable-filter=setfield --enable-filter=overlay --enable-filter=scale --enable-filter=aresample
  avcodec     configuration: --disable-stripping --enable-shared --disable-static --enable-pic --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' --enable-gpl --disable-openssl --enable-avresample --enable-frei0r --enable-gnutls --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-libschroedinger --enable-encoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,libvorbis' --enable-decoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,ljpeg,v210x,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,otf,ttf,ass,srt,ssa,text' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska' --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-decoder=h264 --enable-decoder=pgssub --enable-decoder=dca --enable-decoder=pcm_s16le --enable-decoder=pcm_s24le --enable-decoder=mpeg2video --enable-decoder=dvdsub --enable-decoder=ac3 --enable-muxer=yuv4mpegpipe --enable-muxer=matroska --enable-muxer=wav --enable-muxer=webm --enable-muxer=image2 --enable-demuxer=matroska --enable-demuxer=ogg --enable-protocol=file --enable-protocol=pipe --enable-filter=setfield --enable-filter=overlay --enable-filter=scale --enable-filter=aresample
  swscale     configuration: --disable-stripping --enable-shared --disable-static --enable-pic --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' --enable-gpl --disable-openssl --enable-avresample --enable-frei0r --enable-gnutls --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-libschroedinger --enable-encoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,libvorbis' --enable-decoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,ljpeg,v210x,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,otf,ttf,ass,srt,ssa,text' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska' --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-decoder=h264 --enable-decoder=pgssub --enable-decoder=dca --enable-decoder=pcm_s16le --enable-decoder=pcm_s24le --enable-decoder=mpeg2video --enable-decoder=dvdsub --enable-decoder=ac3 --enable-muxer=yuv4mpegpipe --enable-muxer=matroska --enable-muxer=wav --enable-muxer=webm --enable-muxer=image2 --enable-demuxer=matroska --enable-demuxer=ogg --enable-protocol=file --enable-protocol=pipe --enable-filter=setfield --enable-filter=overlay --enable-filter=scale --enable-filter=aresample
  swresample  configuration: --disable-stripping --enable-shared --disable-static --enable-pic --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' --enable-gpl --disable-openssl --enable-avresample --enable-frei0r --enable-gnutls --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --enable-libschroedinger --enable-encoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,libvorbis' --enable-decoder=',012v,ansi,apng,bmp,flac,exr,ffv1,ffvhuff,gif,huffyuv,jpegls,libopenjpeg,libtheora,libvpx,pam,pbm,pcx,pgm,png,pgmyuv,ppm,sgi,sunrast,targa,tiff,v210,v308,v408,v410,webp,xbm,xwd,y41p,yuv4,celt,flac,ilbc,opus,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planer,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,speex,ljpeg,v210x,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,otf,ttf,ass,srt,ssa,text' --enable-muxer='flac,gif,image2,image2pipe,matroska,matroska_audio,null,webm' --enable-demuxer='flac,gif,image2,image2pipe,matroska' --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-decoder=h264 --enable-decoder=pgssub --enable-decoder=dca --enable-decoder=pcm_s16le --enable-decoder=pcm_s24le --enable-decoder=mpeg2video --enable-decoder=dvdsub --enable-decoder=ac3 --enable-muxer=yuv4mpegpipe --enable-muxer=matroska --enable-muxer=wav --enable-muxer=webm --enable-muxer=image2 --enable-demuxer=matroska --enable-demuxer=ogg --enable-protocol=file --enable-protocol=pipe --enable-filter=setfield --enable-filter=overlay --enable-filter=scale --enable-filter=aresample
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/calin/Projects/epix/Mauka/spec/fixtures/movies/bobby-4x3.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf50.5.0
    comment         : Convertified by iSquint - http://www.isquint.org
  Duration: 00:00:18.13, start: 0.000000, bitrate: 214 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 212 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Output #0, image2, to '%08d.jpg':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    comment         : Convertified by iSquint - http://www.isquint.org
    encoder         : Lavf50.5.0
    Stream #0:0(und): Video: mjpeg, none, q=2-31, 128 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> ? (?))
Encoder (codec mjpeg) not found for output stream #0:0

The last line is the most relevant I think Encoder (codec mjpeg) not found for output stream, how can I install that codec? I already have libmjpegutlis and mjpegtools

Yes, it is.

Did you add the Packman repo?
Did you do a full switch to that repo as explained here:
https://en.opensuse.org/SDB:Vendor_change_update#Full_repository_Vendor_change

Probably not, as you still seem to be running ffmpeg 2.8.2, while the current one is 2.8.4 in Packman.
The Tumbleweed version is crippled, for legal reasons, I don’t know if that would apply to mjpeg though.

Thank you that solved the problem!

I came upon this thread while searching for solutions to Firefox video playback problems. Using Leap 42.1 and Firefox 43.0.3 I have found several websites with content that does not play. I’ve been baffled by this because I have an ancient laptop running Debian Wheezy and Iceweasel 38.2 that “works”. (“Works” in that it tries to play but the laptop hardware is far too obsolete for modern video.)

Am I understanding correctly that the openSUSE version of ffmpeg is crippled and has had functionality intentionally removed?

yes and no, the OSS (Open Source Software) repo does not carry any patented code so ffmpeg from OSS can not handle mp4 video’s, but packman’s build can so read this
https://forums.opensuse.org/showthread.php/452884-Multimedia-in-One-Click

or if you’re that lazy and are using LEAP copy/paste these 3 lines in a terminal like konsole

sudo zypper ar -f http://packman.inode.at/suse/openSUSE_Leap_42.1/ packman
sudo zypper dup --from packman
sudo zypper in vlc-codecs libxine2-codecs

that’s it now you have full multimedia support,

ps on a side note if you are having youtube video issues it is mozilla’s fault as it sees ffmpeg and it thinks it can handle mp4 video’s so instead of asking for webm which Firefox can handle without packman Firefox asks for mp4’s but the OSS version of ffmpeg can’t handle mp4’s so you get errors, if you don’t want to use packman’s just disable ffmpeg in about:config and Firefox will send requests for webm video’s which it can handle natively, some users have reported that disabling ffmpeg fixes youtube issues but my suggestion is to use packman (the 3 lines above)

Thank you. That was a close one. I have been experimenting with Leap 42.1 and basic, Web multimedia not working would have been an erase and move on to another distro moment.

The OpenSUSE team may want to consider making this “no propriatary software” element clear in the installation & setup steps, and provide an up-front option for the user to choose if they want this restriction or not. If I was not the kind of person willing to search & experiment for solutions, a not-working-Web experience would have made me abandon OpenSUSE and move on to something else.

This is not possible from a legal point of view, AIUI.

This restriction is not to please or annoy users, but imposed by lawyers.
And it has even been explicitly rejected by those lawyers to show the user a link that explains how to get the full packages during or after the installation, AFAIK.

That’s unfortunate. If the performance of OpenSUSE is burdened by lawyers, that makes me less encouraged about its future. I’ll continue experimenting with it but this makes it sound that its future is less powerful than other distros that don’t have lawyers trying to ruin it.

Well, the main problem here is that there are legal problems.

Other distributions might not care, or they might not be applicable to the same laws (laws do differ around the world).

In any case, this is not a new problem and exists since ever. And caring and accepting the laws should actually be better for the “future” of the distribution.
MP3’s should work out of the box though, at least with gstreamer.

Hi
See Restricted formats - openSUSE Wiki

Also note the name openSUSE. note the “open”. Now guess what that means :stuck_out_tongue:

Thanks. This is interesting because Soundcloud was mentioned and that was specifically one of the websites that I was experiencing problems with.

I also could not get Dragon Player to play .mov videos I recorded myself with my own camera. VLC does play them, however, so I don’t care about the limitations of Dragon Player.

Hi
For Soundcloud, it maybe because of the firefox media.gstreamer.enable-blacklist is set to true… I use handbrake, libdvdcss2 for video conversion and lame for m4a->mp3. Plus use Fluendo codecs, a few rpms and all good to go.

Dragon Player doesn’t have any “limitations” in this regard.

It just uses Phonon to play back files, so can play anything the used Phonon backend supports.
By default, phonon-backend-gstreamer is used, so apparently you miss the corresponding gstreamer plugins (or your gstreamer installation is broken otherwise).
Install gstreamer-plugins-bad-orig-addons, gstreamer-plugins-ugly-orig-addons, and gstreamer-plugins-libav, and you should be able to play back practically everything. (agin, a full switch to Packman is recommended to avoid a mixture of gstreamer package versions, and sometimes it might be necessary to delete the gstreamer plugins cache, ~/.cache/gstreamer-1.0/, for all plugins to be found).

Or you could install and use phonon4qt5-backend-vlc, as VLC does play the files.

Using YaST to change the gstreamer version to “from Packman Repository” and then forcing an update seemed to give Dragon Player new usefulness. Thanks.