Newest 'libx264' Questions - Stack Overflow

http://stackoverflow.com/questions/tagged/libx264

Les articles publiés sur le site

  • how to make omxh264enc output filler data ?

    8 septembre 2020, par BlueWaterCrystal

    I require filler data from the encoder to artificially raise the bitrate to sustain constant bitrate.

    normally x264enc does this but omx264enc doesn't seem to. even though there seems be a value within its code PROP_FILLER_DATA

  • x264 encoding severe quality loss

    1er septembre 2020, par SolskGaer

    I used this repo to encode a mjpeg stream to a h264 one, but the output is not so good. The stream is a series of screenshot of an iPhone. In the output stream, even the lines between two items in the settings app are gone. How do I improve the output stream quality? Here is the code snippet that x264-go use to init an encoder

    func NewEncoder(w io.Writer, opts *Options) (e *Encoder, err error) {
        e = &Encoder{}
    
        e.w = w
        e.pts = 0
        e.opts = opts
    
        e.csp = x264c.CspI420
    
        e.nals = make([]*x264c.Nal, 3)
        e.img = NewYCbCr(image.Rect(0, 0, e.opts.Width, e.opts.Height))
    
        param := x264c.Param{}
    
        if e.opts.Preset != "" && e.opts.Profile != "" {
            ret := x264c.ParamDefaultPreset(&param, e.opts.Preset, e.opts.Tune)
            if ret < 0 {
                err = fmt.Errorf("x264: invalid preset/tune name")
                return
            }
        } else {
            x264c.ParamDefault(&param)
        }
    
        param.IWidth = int32(e.opts.Width)
        param.IHeight = int32(e.opts.Height)
    
        param.ICsp = e.csp
        param.BVfrInput = 0
        param.BRepeatHeaders = 1
        param.BAnnexb = 1
    
        param.ILogLevel = e.opts.LogLevel
    
        if e.opts.FrameRate > 0 {
            param.IFpsNum = uint32(e.opts.FrameRate)
            param.IFpsDen = 1
    
            param.IKeyintMax = int32(e.opts.FrameRate)
            param.BIntraRefresh = 1
        }
    
        if e.opts.Profile != "" {
            ret := x264c.ParamApplyProfile(&param, e.opts.Profile)
            if ret < 0 {
                err = fmt.Errorf("x264: invalid profile name")
                return
            }
        }
    
        // Allocate on create instead while encoding
        var picIn x264c.Picture
        ret := x264c.PictureAlloc(&picIn, e.csp, int32(e.opts.Width), int32(e.opts.Height))
        if ret < 0 {
            err = fmt.Errorf("x264: cannot allocate picture")
            return
        }
        e.picIn = picIn
        defer func() {
            // Cleanup if intialization fail
            if err != nil {
                x264c.PictureClean(&picIn)
            }
        }()
    
        e.e = x264c.EncoderOpen(&param)
        if e.e == nil {
            err = fmt.Errorf("x264: cannot open the encoder")
            return
        }
    
        ret = x264c.EncoderHeaders(e.e, e.nals, &e.nnals)
        if ret < 0 {
            err = fmt.Errorf("x264: cannot encode headers")
            return
        }
    
        if ret > 0 {
            b := C.GoBytes(e.nals[0].PPayload, C.int(ret))
            n, er := e.w.Write(b)
            if er != nil {
                err = er
                return
            }
    
            if int(ret) != n {
                err = fmt.Errorf("x264: error writing headers, size=%d, n=%d", ret, n)
            }
        }
    
        return
    }
    

    and the encoder option is defined as

    opts := &x264.Options{
            Width:     int(width)/2*2,
            Height:    int(height)/2*2,
            FrameRate: 15,
            Tune:      "zerolatency",
            Preset:    "medium",
            Profile:   "baseline",
            LogLevel:  x264.LogNone,
        }
    

    And I also used ffmpeg(though the api is pretty old)

    package screencast
    
    import (
    
        /*
            #include 
            #include 
            #include 
            #include 
            #include avcodec.h>
            #include avformat.h>
            #include avutil.h>
            #include opt.h>
            #include channel_layout.h>
            #include common.h>
            #include imgutils.h>
            #include mathematics.h>
            #include samplefmt.h>
    
            typedef struct {
                int w, h;
                int pixfmt;
                char *preset[2];
                char *profile;
                int bitrate;
                int got;
                AVCodec *c;
                AVCodecContext *ctx;
                AVFrame *f;
                AVPacket pkt;
            } h264enc_t;
    
            static int h264enc_new(h264enc_t *m) {
                m->c = avcodec_find_encoder(AV_CODEC_ID_H264);
                m->ctx = avcodec_alloc_context3(m->c);
                m->ctx->width = m->w;
                m->ctx->height = m->h;
                m->ctx->pix_fmt = m->pixfmt;
                m->ctx->time_base = (AVRational){1,10};
                av_opt_set(m->ctx->priv_data, "preset", "slow", 0);
                av_opt_set(m->ctx->priv_data, "tune", "zerolatency", 0);
                av_opt_set(m->ctx->priv_data, "profile", "baseline", 0);
                av_opt_set(m->ctx->priv_data, "crf", "18.0.", 0);
                m->f = av_frame_alloc();
                m->f->format = m->ctx->pix_fmt;
                m->f->width = m->ctx->width;
                m->f->height = m->ctx->height;
                avcodec_open2(m->ctx, m->c, NULL);
                return av_image_alloc(m->f->data, m->f->linesize, m->ctx->width, m->ctx->height, m->ctx->pix_fmt, 32);
            }
    
        */
        "C"
        "errors"
        "image"
        "unsafe"
        //"log"
    )
    
    type H264Encoder struct {
        m      C.h264enc_t
        Header []byte
        Pixfmt image.YCbCrSubsampleRatio
        W, H   int
        pts    int
    }
    
    func NewH264Encoder(w, h int) (m *H264Encoder, err error) {
        m = &H264Encoder{}
        m.m.w = (C.int)(w)
        m.m.h = (C.int)(h)
        m.W = w
        m.H = h
        m.Pixfmt = image.YCbCrSubsampleRatio420
        m.m.pixfmt = C.AV_PIX_FMT_YUV420P
        r := C.h264enc_new(&m.m)
        if int(r) < 0 {
            err = errors.New("open encoder failed")
            return
        }
        return
    }
    
    func (m *H264Encoder) Encode(img *image.YCbCr) (data []byte, err error) {
        var f *C.AVFrame
        if img == nil {
            f = nil
        } else {
            if img.SubsampleRatio != m.Pixfmt {
                err = errors.New("image pixfmt not match")
                return
            }
            if img.Rect.Dx() != m.W || img.Rect.Dy() != m.H {
                err = errors.New("image size not match")
                return
            }
            f = m.m.f
            f.data[0] = (*C.uint8_t)(unsafe.Pointer(&img.Y[0]))
            f.data[1] = (*C.uint8_t)(unsafe.Pointer(&img.Cb[0]))
            f.data[2] = (*C.uint8_t)(unsafe.Pointer(&img.Cr[0]))
            f.linesize[0] = (C.int)(img.YStride)
            f.linesize[1] = (C.int)(img.CStride)
            f.linesize[2] = (C.int)(img.CStride)
        }
    
        C.av_init_packet(&m.m.pkt)
        m.m.pkt.data = nil
        m.m.pkt.size = 0
        f.pts = (C.longlong)(m.pts)
        m.pts++
        r := C.avcodec_encode_video2(m.m.ctx, &m.m.pkt, f, &m.m.got)
        defer C.av_packet_unref(&m.m.pkt)
        if int(r) < 0 {
            err = errors.New("encode failed")
            return
        }
        if m.m.got == 0 {
            err = errors.New("no picture")
            return
        }
        if m.m.pkt.size == 0 {
            err = errors.New("packet size == 0")
            return
        }
    
        data = make([]byte, m.m.pkt.size)
        C.memcpy(
            unsafe.Pointer(&data[0]),
            unsafe.Pointer(m.m.pkt.data),
            (C.size_t)(m.m.pkt.size),
        )
        return data, nil
    }
    

    but got the same output. However, when I use the ffmpeg binary, the result was pretty good, so I guess I set wrong parameters, but I don't know which. Any suggestion would be appreciated. If you have better way to achieve this, I'll appreciate it.

    For your information: I must do this using golang.

    screenshot of output stream

  • Playback of x264 encoded video in FLV is very slow (screen recording)

    23 août 2020, par NewbieCoder

    Task:
    I am recording the screen in 30 FPS and saving it to an FLV file. Images of the screen are obtained using the DXGI API in Windows. These images are then encoded into a video using libx264. Then the video data is stored in FLV container.

    Issue/Problem:
    When the video is played in any video player, it is very slow. The frame rate information shows as 30 FPS but the playback feels like 15 FPS.

    Details:
    Pseudo-code for the whole software:

    FPS = 30
    target_time_for_each_frame = 1/FPS;
    timestamp = 0;
    while (true)
    {
        start_time = current_time();
    
        image = capture_screen();
        video_data = encode(image);
        writeToFLV(video_data, timestamp);
        timestamp += target_time_for_each_frame;
    
        end_time = current_time();
        time_taken_for_current_frame = (end_time - start_time)
    
        // put the app to sleep to take screenshots only at 1/FPS or 33ms intervals. (delaying)
        if (time_taken_for_current_frame < target_time_for_each_frame)
        {
            sleep(target_time_for_each_frame - time_taken_for_current_frame)
        }
    }
    

    I am encoding with these parameters:

    void init_encoder()
    {
            x264_param_default_preset(&param, "veryfast", 0);
    
            param.i_width = 1920;
            param.i_height = 1080;
            param.i_fps_num = 30;
            param.i_fps_den = 1;
            param.i_timebase_num = param.i_fps_den;
            param.i_timebase_den = param.i_fps_num;
            param.rc.i_bitrate = 2500;
            param.i_bframe = 0;
            param.rc.i_rc_method = X264_RC_ABR;
            param.rc.f_rf_constant = 0;
            //param.rc.b_filler = true;
            param.rc.i_vbv_max_bitrate = param.rc.i_bitrate;
            param.rc.i_vbv_buffer_size = param.rc.i_bitrate;
            param.b_repeat_headers = 0;
            param.b_annexb = 1;
    
            x264_param_apply_profile(&param, 0);
    }
    

    The timestamp given for the FLV file is correct:

    timestamp += (1/30)   // It is increased by 33 ms every loop
    

    I am setting pts of the input picture in this code:

    int encodeYUV(uint8_t* data)
        {
            // convert BGRA to YUV using FFmpeg
            BGRA.data[0] = data;
            sws_scale(sws, BGRA.data, BGRA.linesize, 0, param.i_height, picIn.img.plane, picIn.img.i_stride);
    
            nal_size = x264_encoder_encode(h, &nals, &nal_count, &picIn, &picOut);
            picIn.i_pts += 1; // pts += 1 because timebase_num = 1, timebase_den = 30. So it increases by 33 ms
    
            return 0;
        }
    

    Increasing the pts to a very high value every loop (pts += 1000) makes the playback very pixelated and also plays very fast and repeats the same frame again and again sometimes.

    Before this problem, I used tune as "zerolatency" and the playback was fine. But the video quality was not good so I had to remove it. And once I removed it, these problems came.
    The parameters I'm using are not recommended for recording a video, but they are good for live streaming. My main purpose is a screen sharing app. I am using it as a screen recorder only to test if it works.

    I am not sure if the problem is in the way I increase PTS or timestamp or if it is in the way I coded the delay in the app (to cap the FPS correctly). The problem really feels like it's related to only these factors (x264 PTS or FLV timestamp or delay code).

    Any hints would be very much appreciated.

  • Decoder (codec h264) not found for input stream #0:1 [closed]

    10 août 2020, par Harry Boy

    When I try to convert a file from one type to I get the error: Decoder (codec h264) not found for input stream #0:1

    ffmpeg -i video.mp4 video_converted.mpg
    ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
    built with gcc 10.2.0 (GCC)
    configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --enable-avresample --enable-gmp --enable-ladspa --enable-libass --enable-libbluray --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libglslang --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libpulse --enable-libsnappy --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-opencl --enable-opengl --enable-openssl --enable-vulkan --enable-libdrm --enable-libcelt --extra-cflags='-march=core2 -pipe -O2 -DNDEBUG -D_FORTIFY_SOURCE=2 -mmmx -msse2 -mssse3 -funwind-tables' --extra-cxxflags='-march=core2 -pipe -O2 -DNDEBUG -D_FORTIFY_SOURCE=2 -mmmx -msse2 -mssse3 -funwind-tables' --extra-ldflags='-Wl,--as-needed -Wl,--strip-all' --disable-debug --disable-demuxer='hls,applehttp'
    WARNING: library configuration mismatch
    avutil      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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    avcodec     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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    avformat    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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    swresample  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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    libavutil      56. 51.100 / 56. 31.100
    libavcodec     58. 91.100 / 58. 54.100
    libavformat    58. 45.100 / 58. 29.100
    libavdevice    58. 10.100 / 58. 10.100
    libavfilter     7. 85.100 /  7. 85.100
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  7.100 /  5.  7.100
    libswresample   3.  7.100 /  3.  5.100
    libpostproc    55.  7.100 / 55.  7.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55dfcea468c0] st: 1 edit list: 1 Missing key frame while searching for timestamp: 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55dfcea468c0] st: 1 edit list 1 Cannot find an index entry before timestamp: 0.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
    Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: mp41avc1
    creation_time   : 2019-07-25T09:16:31.000000Z
    encoder         : vlc 3.0.4 stream output
    encoder-eng     : vlc 3.0.4 stream output
    Duration: 00:00:07.07, start: 0.000000, bitrate: 3900 kb/s
    Stream #0:0(eng): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2019-07-25T09:16:31.000000Z
      handler_name    : SoundHandler
    Stream #0:1(eng): Video: h264 (avc1 / 0x31637661), none, 1088x1920, 3766 kb/s, 29.99 fps, 29.97 tbr, 1000k tbn, 1000k tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2019-07-25T09:16:31.000000Z
      handler_name    : VideoHandler
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream mapping:
      Stream #0:1 -> #0:0 (? (?) -> mpeg1video (native))
      Stream #0:0 -> #0:1 (mp3 (mp3float) -> mp2 (native))
    Decoder (codec h264) not found for input stream #0:1
    
  • Install llibx264 on Opensuse

    10 août 2020, par Harry Boy

    I need to install libx264 on OpenSuse Leap 15.1.

    I am following the steps here: https://software.opensuse.org/package/libx264?locale=nb Where I see that there is an option for OpenSuse Leap 15.1. and I click the 'Community packages' option.

    There are 3 options:

    Option 1: home:regataos

    I select 'Expert download'

    zypper addrepo https://download.opensuse.org/repositories/home:regataos/openSUSE_Leap_15.1/home:regataos.repo
    zypper refresh
    zypper install libx264
    Loading repository data...
    Reading installed packages...
    'libx264' not found in package names. Trying capabilities.
    No provider of 'libx264' found.
    Resolving package dependencies...
    
    Nothing to do.
    

    Option 2: home:smarty12:multimedia

    I select 'Expert download'

    zypper addrepo https://download.opensuse.org/repositories/home:smarty12:multimedia/openSUSE_Leap_15.1/home:smarty12:multimedia.repo
    zypper refresh
    zypper install libx264
    Loading repository data...
    Reading installed packages...
    Resolving package dependencies...
    
    The following 2 NEW packages are going to be installed:
    libx264 libx264-157
    
    2 new packages to install.
    Overall download size: 556.5 KiB. Already cached: 0 B. After the operation, additional 2.0 MiB will be used.
    Continue? [y/n/v/...? shows all options] (y): y
    Retrieving package libx264-157-2019.03.03-lp151.1.86.x86_64                                                                                                  (1/2), 549.7 KiB (  2.0 MiB unpacked)
    Retrieving: libx264-157-2019.03.03-lp151.1.86.x86_64.rpm ....................................................................................................................[done (6.2 KiB/s)]
    Retrieving package libx264-2019.03.03-lp151.1.86.x86_64                                                                                                   (2/2),   6.7 KiB (    0   B unpacked)
    Retrieving: libx264-2019.03.03-lp151.1.86.x86_64.rpm ....................................................................................................................................[done]
    
    Checking for file conflicts: ............................................................................................................................................................[done]
    (1/2) Installing: libx264-157-2019.03.03-lp151.1.86.x86_64 ..............................................................................................................................[done]
    (2/2) Installing: libx264-2019.03.03-lp151.1.86.x86_64 ..................................................................................................................................[done]
    

    So this appears to have installed it.

    Now when I try to convert a file from one type to I get the error: "Decoder (codec h264) not found for input stream #0:1"

    ffmpeg -i video.mp4 video_converted.mpg
    ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
    built with gcc 10.2.0 (GCC)
    configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --enable-gpl --enable-version3 --enable-nonfree --disable-static --enable-shared --enable-avresample --enable-gmp --enable-ladspa --enable-libass --enable-libbluray --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libglslang --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libpulse --enable-libsnappy --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-opencl --enable-opengl --enable-openssl --enable-vulkan --enable-libdrm --enable-libcelt --extra-cflags='-march=core2 -pipe -O2 -DNDEBUG -D_FORTIFY_SOURCE=2 -mmmx -msse2 -mssse3 -funwind-tables' --extra-cxxflags='-march=core2 -pipe -O2 -DNDEBUG -D_FORTIFY_SOURCE=2 -mmmx -msse2 -mssse3 -funwind-tables' --extra-ldflags='-Wl,--as-needed -Wl,--strip-all' --disable-debug --disable-demuxer='hls,applehttp'
    WARNING: library configuration mismatch
    avutil      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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    avcodec     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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    avformat    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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    swresample  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-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-gnutls --enable-ladspa --disable-cuda-sdk --enable-libass --enable-libbluray --enable-libbs2b --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-muxers --enable-demuxers --disable-encoders --disable-decoders --disable-decoder='mpeg4,h263,h264,hevc,vc1' --enable-encoder=',aac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,jpegls,libaom,libaom_av1,libcodec2,libgsm,libmp3lame,libopenjpeg,libopus,libschroedinger,libspeex,libtheora,libtwolame,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,mp2,mp2fixed,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,' --enable-decoder=',aac,ac3,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,libaom,libaom_av1,libcelt,libcodec2,libdav1d,libgsm,libopenjpeg,libopus,libschroedinger,libspeex,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mpeg1video,mpeg2video,,mp1,mp1float,mp2,mp2float,mp3,mp3float,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,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,pcx,pgm,pgmyuv,pgssub,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,'
    libavutil      56. 51.100 / 56. 31.100
    libavcodec     58. 91.100 / 58. 54.100
    libavformat    58. 45.100 / 58. 29.100
    libavdevice    58. 10.100 / 58. 10.100
    libavfilter     7. 85.100 /  7. 85.100
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  7.100 /  5.  7.100
    libswresample   3.  7.100 /  3.  5.100
    libpostproc    55.  7.100 / 55.  7.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55dfcea468c0] st: 1 edit list: 1 Missing key frame while searching for timestamp: 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55dfcea468c0] st: 1 edit list 1 Cannot find an index entry before timestamp: 0.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
    Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: mp41avc1
    creation_time   : 2019-07-25T09:16:31.000000Z
    encoder         : vlc 3.0.4 stream output
    encoder-eng     : vlc 3.0.4 stream output
    Duration: 00:00:07.07, start: 0.000000, bitrate: 3900 kb/s
    Stream #0:0(eng): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2019-07-25T09:16:31.000000Z
      handler_name    : SoundHandler
    Stream #0:1(eng): Video: h264 (avc1 / 0x31637661), none, 1088x1920, 3766 kb/s, 29.99 fps, 29.97 tbr, 1000k tbn, 1000k tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2019-07-25T09:16:31.000000Z
      handler_name    : VideoHandler
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream mapping:
      Stream #0:1 -> #0:0 (? (?) -> mpeg1video (native))
      Stream #0:0 -> #0:1 (mp3 (mp3float) -> mp2 (native))
     
    

    Decoder (codec h264) not found for input stream #0:1

    How can I successfully install libx264 o Opensuse 15.1