Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (101)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

  • Prérequis à l’installation

    31 janvier 2010, par

    Préambule
    Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
    Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
    Il (...)

Sur d’autres sites (5791)

  • Evolution #4271 (Nouveau) : valider_url_distante => pouvoir déclarer des domaines distants et pas ...

    21 janvier 2019, par - Equipement

    Bonjour,

    La fonction valider_url_distante permet de déclarer des hosts distants :

    1. <span class="CodeRay"><span class="local-variable">$known_hosts</span> = pipeline(<span class="string"><span class="delimiter">'</span><span class="content">declarer_hosts_distants</span><span class="delimiter">'</span></span>, <span class="local-variable">$known_hosts</span>);
    2. </span>

    Télécharger

    C’est très bien, mais avec plusieurs centaines de hosts à déclarer (dont la liste varie dans le temps), cela devient compliqué à gérer.

    Serait-il possible d’avoir, en plus, la possibilité de déclarer des domaines distants ?

    Une première piste serait de pouvoir déclarer .example.com dans le pipeline pour inclure tous les *.example.com au lieu des les énumérer un par un.

    Une seconde piste consisterait à s’inspirer de la function need_proxy (via une constante avec la même syntaxe que pour le http_noproxy) :

    // Pour mémoire code actuel à conserver ...

    1. <span class="CodeRay">    <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">false</span>;
    2.     <span class="keyword">foreach</span> (<span class="local-variable">$known_hosts</span> <span class="keyword">as</span> <span class="local-variable">$known_host</span>) {
    3.         <span class="local-variable">$parse_known</span> = <span class="predefined">parse_url</span>(<span class="local-variable">$known_host</span>);
    4.         <span class="keyword">if</span> (<span class="local-variable">$parse_known</span>
    5.           <span class="keyword">and</span> <span class="predefined">strtolower</span>(<span class="local-variable">$parse_known</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>]) === <span class="predefined">strtolower</span>(<span class="local-variable">$parsed_url</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>])) {
    6.             <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    7.             <span class="keyword">break</span>;
    8.         }
    9.     }
    10. </span>

    Télécharger

    // ... que l’on pourrait faire suivre de ce code (complètement inspiré de function need_proxy) :

    1. <span class="CodeRay">    <span class="keyword">if</span> (!<span class="local-variable">$is_known_host</span>) {
    2.                 <span class="local-variable">$known_domaines</span> = _DECLARER_DOMAINES_DISTANTS;
    3.  
    4.                 <span class="local-variable">$known_domaines</span> = <span class="predefined">str_replace</span>(<span class="string"><span class="delimiter">"</span><span class="char">\n</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>, <span class="local-variable">$known_domaines</span>);
    5.                 <span class="local-variable">$known_domaines</span> = <span class="predefined">str_replace</span>(<span class="string"><span class="delimiter">"</span><span class="char">\r</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>, <span class="local-variable">$known_domaines</span>);
    6.                 <span class="local-variable">$known_domaines</span> = <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="local-variable">$known_domaines</span><span class="content"> </span><span class="delimiter">"</span></span>;
    7.                 <span class="local-variable">$domain</span> = <span class="predefined">strtolower</span>(<span class="local-variable">$parsed_url</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>]);
    8.  
    9.                 <span class="keyword">if</span> (<span class="predefined">strpos</span>(<span class="local-variable">$known_domaines</span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="local-variable">$domain</span><span class="content"> </span><span class="delimiter">"</span></span>) !== <span class="predefined-constant">false</span>){
    10.                     <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    11.                 }
    12.  
    13.                 <span class="keyword">while</span> (<span class="predefined">strpos</span>(<span class="local-variable">$domain</span>, <span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>) !== <span class="predefined-constant">false</span>) {
    14.                         <span class="local-variable">$domain</span> = <span class="predefined">explode</span>(<span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>, <span class="local-variable">$domain</span>);
    15.                         <span class="predefined">array_shift</span>(<span class="local-variable">$domain</span>);
    16.                         <span class="local-variable">$domain</span> = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>, <span class="local-variable">$domain</span>);
    17.  
    18.                         <span class="keyword">if</span> (<span class="predefined">strpos</span>(<span class="local-variable">$known_domaines</span>, <span class="string"><span class="delimiter">"</span><span class="content"> .</span><span class="local-variable">$domain</span><span class="content"> </span><span class="delimiter">"</span></span>) !== <span class="predefined-constant">false</span>) {
    19.                             <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    20.                         }
    21.                 }
    22.         }
    23. </span>

    Télécharger

    Cordialement
    Equipement

  • Why does my yuva444p video always lose alpha channel after transcoding to vp9 ?

    1er avril, par Ian Ye

    I'm trying to convert a video with alpha channel using FFmpeg, but the transparency information gets lost in the output.

    &#xA;

    Here is the input video (prores, yuva444p) detail with ffprobe :

    &#xA;

     Stream #0:1[0x2](und): Video: prores (4444) (ap4h / 0x68347061), yuva444p12le(bt709), 360x480, 73314 kb/s, 60.13 fps, 60 tbr, 600 tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 2019-05-21T21:23:03.000000Z&#xA;        handler_name    : Core Media Video&#xA;        vendor_id       : appl&#xA;        encoder         : Apple ProRes 4444&#xA;

    &#xA;

    And my command is below :

    &#xA;

    ffmpeg -i alpha_prores.mov -c:v libvpx-vp9 -pix_fmt yuva420p -auto-alt-ref 0 out.webm&#xA;

    &#xA;

    There is the output info :

    &#xA;

    Output #0, webm, to &#x27;out.webm&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt&#xA;    minor_version   : 0&#xA;    compatible_brands: qt&#xA;    com.apple.quicktime.creationdate: 2019-05-14T13:47:17-0700&#xA;    com.apple.quicktime.location.ISO6709: &#x2B;37.3367-122.0094/&#xA;    com.apple.quicktime.make: Apple&#xA;    com.apple.quicktime.model: iPhone X&#xA;    com.apple.quicktime.software: 12.1.2&#xA;    encoder         : Lavf61.7.100&#xA;  Stream #0:0(und): Video: vp9, yuva420p(tv, bt709, progressive), 360x480, q=2-31, 60 fps, 1k tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 2019-05-21T21:23:03.000000Z&#xA;        handler_name    : Core Media Video&#xA;        vendor_id       : appl&#xA;        encoder         : Lavc61.19.101 libvpx-vp9&#xA;      Side data:&#xA;        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&#xA;

    &#xA;

    We can see pix_fmt is still yuva420p, but after finished, I use ffprobe to check it, and the result changed !

    &#xA;

      Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, bt709, progressive), 360x480, SAR 1:1 DAR 3:4, 60 fps, 60 tbr, 1k tbn (default)&#xA;      Metadata:&#xA;        alpha_mode      : 1&#xA;        HANDLER_NAME    : Core Media Video&#xA;        VENDOR_ID       : appl&#xA;        ENCODER         : Lavc61.19.101 libvpx-vp9&#xA;        DURATION        : 00:00:05.950000000&#xA;

    &#xA;

    The pix_fmt turn to yuv420p, which means lose alpha channel. Also we can see there is an extra info in metadata alpha_mode: 1.

    &#xA;

    By the way, the result webm video can display its transparent pixel correctly in browser.

    &#xA;

    When I try to overlay it on a mp4 video, transparent pixels turn to black pixels :

    &#xA;

    ffmpeg -i background.mp4 -i out.webm -filter_complex "[0][1]overlay=x=10:y=10" output2.mp4&#xA;

    &#xA;

    And when I overlay the prores video on the same mp4, result is correct.

    &#xA;

    ffmpeg -i background.mp4 -i alpha_prores.mov -filter_complex "[0][1]overlay=x=10:y=10" output2.mp4&#xA;

    &#xA;

    So I wonder the difference between yuva and alpha_mode:1.

    &#xA;

    And the reason why vp9 would lose alpha channel when overlay on a mp4 video.

    &#xA;

    It's better if you can provide other pixel format for my purpose(I want it can display correctly when overlay on mp4) !

    &#xA;

    Thanks !

    &#xA;

  • Unable to integrate ffmpeg as a native dependency for an Android NDK project

    24 avril 2016, par mmark

    I have an Android NDK project which consists entirely of C/C++ code, and it basically processes images without using any external libraries.

    I’m using Android Studio + Gradle NDK Experimental plugin (0.7.0-alpha1).

    Now, I need to integrate ffmpeg as a native library to use it from the C/C++ code in order to decode a H.264 video frame.

    These are the questions I’ve found here regarding this issue :

    Android - Integrating ffmpeg and android-ndk-r9c

    Android NDK w/ ffmpeg library - error running project

    Using FFmpeg native libraries with Android-NDK

    Can not build with prebuilt static libraries using gradle-experimental

    Here is my build.gradle file :

    apply plugin: 'com.android.model.application'

    def ffmpeg_path = file(project(':ffmpeg').projectDir).absolutePath + "/ffmpeg-android"

    model {

       repositories {
           libs(PrebuiltLibraries) {
               libavcodec {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libavcodec.a")
                   }
               }
               libavutil {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libavutil.a")
                   }
               }
               libswresample {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libswresample.a")
                   }
               }
               libswscale {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libswscale.a")
                   }
               }
               libavformat {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libavformat.a")
                   }
               }
               libavdevice {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libavdevice.a")
                   }
               }
               libavfilter {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libavfilter.a")
                   }
               }
               libpostproc {
                   headers.srcDir "${ffmpeg_path}/include"
                   binaries.withType(StaticLibraryBinary) {
                       staticLibraryFile = file("${ffmpeg_path}/${targetPlatform.getName()}/lib/libpostproc.a")
                   }
               }
           }
       }

       android {
           compileSdkVersion = 23
           buildToolsVersion = "23.0.2"

           defaultConfig.with {
               applicationId = "com.example.hellojni"
               minSdkVersion.apiLevel = 4
               targetSdkVersion.apiLevel = 23
           }
       }

       /*
        * native build settings
        */
       android.ndk {
           moduleName = "hello-jni"
           platformVersion = 9 //same as minSdkVersion.apiLevel for better compatibility
           stl    = "c++_static"
           abiFilters.addAll(["armeabi", "armeabi-v7a", "x86"]) //filtering ABIs on the ones Google Play Games library is compatible with.
       }
       android.buildTypes {
           release {
               minifyEnabled = false
               proguardFiles.add(file('proguard-rules.txt'))
           }
       }

       android.sources {
           main {
               jni {
                   dependencies {
                       library "libavcodec" linkage "static"
                       library "libavutil" linkage "static"
                       library "libswresample" linkage "static"
                       library "libswscale" linkage "static"
                       library "libavformat" linkage "static"
                       library "libavdevice" linkage "static"
                       library "libavfilter" linkage "static"
                       library "libpostproc" linkage "static"
                   }
               }
           }
       }

    }

    I based on this sample from Google which integrates an external native library.

    This is the ffmpeg project I compiled before importing it into mine :
    https://github.com/WritingMinds/ffmpeg-android

    I’ve added all the .a and .h files and I’m able to import the headers in my C/C++ code, but when I try to compile it I get the following error :

    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function try_decode_frame: error: undefined reference to 'avpriv_h264_has_num_reorder_frames'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function compute_pkt_fields: error: undefined reference to 'avpriv_h264_has_num_reorder_frames'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function parse_packet: error: undefined reference to 'av_parser_parse2'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function parse_packet: error: undefined reference to 'av_parser_close'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function read_frame_internal: error: undefined reference to 'av_parser_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function avformat_find_stream_info: error: undefined reference to 'av_parser_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function avformat_find_stream_info: error: undefined reference to 'avcodec_pix_fmt_to_codec_tag'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function avformat_find_stream_info: error: undefined reference to 'avpriv_get_raw_pix_fmt_tags'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function ff_stream_add_bitstream_filter: error: undefined reference to 'av_bitstream_filter_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function ff_stream_add_bitstream_filter: error: undefined reference to 'av_bitstream_filter_close'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(utils.o):utils.c:function av_apply_bitstream_filters: error: undefined reference to 'av_bitstream_filter_filter'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(aadec.o):aadec.c:function aa_read_packet: error: undefined reference to 'av_tea_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(aadec.o):aadec.c:function aa_read_packet: error: undefined reference to 'av_tea_crypt'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(aadec.o):aadec.c:function aa_read_header: error: undefined reference to 'av_tea_alloc'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(aadec.o):aadec.c:function aa_read_header: error: undefined reference to 'av_tea_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(aadec.o):aadec.c:function aa_read_header: error: undefined reference to 'av_tea_crypt'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(ac3dec.o):ac3dec.c:function ac3_eac3_probe.isra.0: error: undefined reference to 'avpriv_ac3_parse_header'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(adtsenc.o):adtsenc.c:function adts_write_header: error: undefined reference to 'avpriv_mpeg4audio_get_config'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(adtsenc.o):adtsenc.c:function adts_write_header: error: undefined reference to 'avpriv_copy_pce_data'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(asfcrypt.o):asfcrypt.c:function ff_asfcrypt_dec: error: undefined reference to 'av_rc4_alloc'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(asfcrypt.o):asfcrypt.c:function ff_asfcrypt_dec: error: undefined reference to 'av_rc4_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(asfcrypt.o):asfcrypt.c:function ff_asfcrypt_dec: error: undefined reference to 'av_rc4_crypt'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(asfcrypt.o):asfcrypt.c:function ff_asfcrypt_dec: error: undefined reference to 'av_rc4_init'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(asfcrypt.o):asfcrypt.c:function ff_asfcrypt_dec: error: undefined reference to 'av_rc4_crypt'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(matroska.o):matroska.c:function ff_mkv_stereo3d_conv: error: undefined reference to 'av_stereo3d_alloc'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(nut.o):nut.c:function ff_nut_add_sp: error: undefined reference to 'av_tree_node_alloc'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(nut.o):nut.c:function ff_nut_add_sp: error: undefined reference to 'av_tree_insert'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(nut.o):nut.c:function ff_nut_free_sp: error: undefined reference to 'av_tree_enumerate'
    /Users/marcos/Documents/Android/fdecoder/ffmpeg/ffmpeg-android/armeabi-v7a/lib/libavformat.a(nut.o):nut.c:function ff_nut_free_sp: error: undefined reference to 'av_tree_destroy'
    Error:error: ld returned 1 exit status
    Error:Execution failed for task ':app:linkHello-jniArmeabi-v7aDebugSharedLibrary'.
    > A build operation failed.
         Linker failed while linking libhello-jni.so.
     See the complete log at: file:///Users/marcos/Documents/Android/fdecoder/app/build/tmp/linkHello-jniArmeabi-v7aDebugSharedLibrary/output.txt
    Information:BUILD FAILED
    Information:Total time: 14.993 secs
    Information:2 errors
    Information:0 warnings
    Information:See complete output in console

    There’s obviously something I’m not importing properly, but can’t figure exactly what’s missing.