Recherche avancée

Médias (91)

Autres articles (81)

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (11536)

  • De-interlace hardware with FFMpeg Cuda/cuvid decoder is not working anymore ?

    15 novembre 2017, par Red5goahead

    Is it possible that with Nvidia whql driver (385.69) for Windows 10 x64 1709 Cuda is not working to deinterlace H264 video stream ?

    Mpc-HC, lav codec screenshot setup
    enter image description here

    Please refer to this one minute sample /111 MB

    I tried with MPC-HC and FFMPEG h264_cuvid decoder with -hwaccels and -deint switch (-resize it’s working fine for example), no other sw filter in the chain of course, the result color space is Cuda/NV12

  • lavfi : generic hardware surface upload and download filters

    25 février 2016, par Mark Thompson
    lavfi : generic hardware surface upload and download filters
    

    Signed-off-by : Anton Khirnov <anton@khirnov.net>

    • [DBH] doc/APIchanges
    • [DBH] libavfilter/Makefile
    • [DBH] libavfilter/allfilters.c
    • [DBH] libavfilter/avfilter.c
    • [DBH] libavfilter/avfilter.h
    • [DBH] libavfilter/version.h
    • [DBH] libavfilter/vf_hwdownload.c
    • [DBH] libavfilter/vf_hwupload.c
  • AVCodec h264_v4l2m2m hardware decoding unable to find device

    26 juillet 2023, par nathansizemore

    Using a custom compiled FFmpeg :

    &#xA;

     $ ./ffmpeg -codecs | grep h264&#xA;ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)&#xA;  configuration: --arch=aarch64 --enable-cross-compile --target-os=linux --cross-prefix=aarch64-linux-gnu- --prefix=/builds/dronesense/rust/ffmpeg-build/ffmpeg/out --pkgconfigdir= --pkg-config=pkg-config --extra-libs=&#x27;-ldl -lpthread&#x27; --enable-libvpx --enable-libx264 --enable-libx265 --enable-decklink --enable-gpl --enable-nonfree --enable-shared --disable-static&#xA;  libavutil      58.  2.100 / 58.  2.100&#xA;  libavcodec     60.  3.100 / 60.  3.100&#xA;  libavformat    60.  3.100 / 60.  3.100&#xA;  libavdevice    60.  1.100 / 60.  1.100&#xA;  libavfilter     9.  3.100 /  9.  3.100&#xA;  libswscale      7.  1.100 /  7.  1.100&#xA;  libswresample   4. 10.100 /  4. 10.100&#xA;  libpostproc    57.  1.100 / 57.  1.100&#xA; DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m ) (encoders: libx264 libx264rgb h264_v4l2m2m )&#xA;

    &#xA;

    /dev/video32 seems to have H.264 decoding support :

    &#xA;

    $ v4l2-ctl --list-formats-out -d /dev/video32&#xA;ioctl: VIDIOC_ENUM_FMT&#xA;    Index       : 0&#xA;    Type        : Video Output Multiplanar&#xA;    Pixel Format: &#x27;MPG2&#x27; (compressed)&#xA;    Name        : MPEG-2 ES&#xA;&#xA;    Index       : 1&#xA;    Type        : Video Output Multiplanar&#xA;    Pixel Format: &#x27;H264&#x27; (compressed)&#xA;    Name        : H.264&#xA;&#xA;    Index       : 2&#xA;    Type        : Video Output Multiplanar&#xA;    Pixel Format: &#x27;HEVC&#x27; (compressed)&#xA;    Name        : HEVC&#xA;&#xA;    Index       : 3&#xA;    Type        : Video Output Multiplanar&#xA;    Pixel Format: &#x27;VP80&#x27; (compressed)&#xA;    Name        : VP8&#xA;&#xA;    Index       : 4&#xA;    Type        : Video Output Multiplanar&#xA;    Pixel Format: &#x27;VP90&#x27; (compressed)&#xA;    Name        : VP9&#xA;

    &#xA;

    I've tried two approaches (Rust with bindgen) :

    &#xA;

    Approach 1 :

    &#xA;

    fn init_decoder() -> Arc<contextwrapper> {&#xA;    let name = CString::new("h264_v4l2m2m").unwrap();&#xA;    let codec = unsafe { ffmpeg::avcodec_find_decoder_by_name(name.as_ptr()) };&#xA;    if codec.is_null() {&#xA;        error!("finding codec");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    let ctx = unsafe { ffmpeg::avcodec_alloc_context3(codec) };&#xA;    if ctx.is_null() {&#xA;        error!("creating context");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    let r = unsafe { ffmpeg::avcodec_open2(ctx, codec, ptr::null_mut()) };&#xA;    if r &lt; 0 {&#xA;        error!("opening codec: {r}");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    Arc::new(ContextWrapper(ctx))&#xA;}&#xA;</contextwrapper>

    &#xA;

    Results in :

    &#xA;

    [h264_v4l2m2m @ 0x7f1c001600] Could not find a valid device&#xA;[h264_v4l2m2m @ 0x7f1c001600] can&#x27;t configure decoder&#xA;[ERROR] [decoder] [webrtc::codec] opening codec: -1&#xA;

    &#xA;

    Approach 2

    &#xA;

    fn init_decoder() -> Arc<contextwrapper> {&#xA;    let name = CString::new("h264_v4l2m2m").unwrap();&#xA;    let codec = unsafe { ffmpeg::avcodec_find_decoder_by_name(name.as_ptr()) };&#xA;    if codec.is_null() {&#xA;        error!("finding codec");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    let mut i = 0;&#xA;    let mut hw_pix_fmt: AVPixelFormat = unsafe { mem::zeroed() };&#xA;    loop {&#xA;        let config = unsafe { ffmpeg::avcodec_get_hw_config(codec, i) };&#xA;        if config.is_null() {&#xA;            error!("decoder not supported");&#xA;            process::exit(1);&#xA;        }&#xA;&#xA;        unsafe {&#xA;            info!("device type: {:?}", (*config).device_type);&#xA;            if ((*config).methods &amp; ffmpeg::AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX as i32) > 0 {&#xA;                hw_pix_fmt = (*config).pix_fmt;&#xA;                break;&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;    info!("pixel format: {:?}", hw_pix_fmt);&#xA;&#xA;    let ctx = unsafe { ffmpeg::avcodec_alloc_context3(codec) };&#xA;    if ctx.is_null() {&#xA;        error!("creating context");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    let r = unsafe { ffmpeg::avcodec_open2(ctx, codec, ptr::null_mut()) };&#xA;    if r &lt; 0 {&#xA;        error!("opening codec: {r}");&#xA;        process::exit(1);&#xA;    }&#xA;&#xA;    Arc::new(ContextWrapper(ctx))&#xA;}&#xA;&#xA;</contextwrapper>

    &#xA;

    Results in :&#xA;error!("decoder not supported");

    &#xA;

    I feel like there is a major step missing because looking at FFmpeg's Hardware Decode Example there are looking for a device type, to which v4l2 is not a part of the enum, so I do not what functions to call to get it setup.

    &#xA;

    What is the proper way to setup an AVCodec decoder with H.264 hardware acceleration for v4l2m2m ?

    &#xA;