Recherche avancée

Médias (91)

Autres articles (71)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • 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) (...)

Sur d’autres sites (10504)

  • 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;