Recherche avancée

Médias (91)

Autres articles (17)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

Sur d’autres sites (4059)

  • How to convert MPEG2-TTS to MPEG2-TS format to playback using ffplay

    29 février 2024, par Asustor

    I know some OSS such as ffmpeg or gstreamer don't support to play-back MPEG2-TTS stream.
Then, I tried to convert 192 bytes TTS packet to 188 bytes TS packet by deleting first 4 bytes like :

    


    def conv_tts2ts(rtp_payload):

    payload_len = len(rtp_payload)
    if payload_len % 192 != 0:
        raise

    pkt_num = int(payload_len / 192)
    ts_data = bytearray()
    for i in range(pkt_num):
        spos = 192 * i
        epos = spos + 192
        tmp = rtp_payload[spos:epos]
        ts_data.extend(tmp[4:])

    return ts_data

# after this, send ts_data with RTP header received from MPEG2-TTS streamer via UDP/IP.



    


    However, ffplay and ffprobe don't reaction.

    


    I expect to be able to play-back using ffplay as MPEG2-TS format.
Please tell me how to convert TTS to TS in order to deocde by ffmpeg ?

    


  • addEventListener with encrypted video-js is not working

    26 février 2024, par vinod

    I have a video uploading project in laravel. Everything is good. I have encrypted videos using "FFMPEG" packge and wanted to play on video-js player. Also wanted to show google-adsense there.

    


    The error is giving to me :

    


    IDEOJS : ERROR : videojs-contrib-ads has not seen a loadstart event 5 seconds after being initialized, but a source is present. This indicates that videojs-contrib-ads was initialized too late. It must be initialized immediately after video.js in the same tick. As a result, some ads will not play and some media events will be incorrect. For more information, see http://videojs.github.io/videojs-contrib-ads/integrator/getting-started.html

    


    and "addEventListener" is also not working except "document.addEventListener('DOMContentLoaded', function() ".

    


    I think problem is due to data-setup='{}' add into video tag. because previously, I was playing the video without encryption like the original video with full path and there was not added the data-setup='{}'. Everything was working. But after playing the encrypted video. I got the errors.

    


    Thank in advance !

    


    my view is :

    


    <video class="img-fluid myVideo video-js vjs-default-skin" preload="none" controls="controls" data-video-id="{{ Crypt::encrypt($video_list->id) }}" data-setup="&#x27;{}&#x27;">&#xA;        @if (Auth::check())&#xA;            <source src="{{ route(&#x27;video.player.show&#x27;, [&#x27;filename&#x27; => $video_list->unique_number.&#x27;.m3u8&#x27;,&#x27;type&#x27; => &#x27;full&#x27;,&#x27;video_id&#x27; => $video_list->unique_number]) }}" type="application/x-mpegURL" class="full-video">&#xA;           &#xA;        @endif&#xA;</source></video>&#xA;

    &#xA;

    js is :

    &#xA;

    <code class="echappe-js">&lt;script&gt;&amp;#xA;        document.addEventListener(&amp;#x27;DOMContentLoaded&amp;#x27;, function() {&amp;#xA;            console.log(&amp;#x27;afterload&amp;#x27;);&amp;#xA;            const videos = document.querySelectorAll(&amp;#x27;.myVideo&amp;#x27;);&amp;#xA;            let playing = [];&amp;#xA;&amp;#xA;            videos.forEach((video, index) =&gt; {&amp;#xA;                console.log(&amp;#x27;video&amp;#x27;);&amp;#xA;                console.log(video.id);&amp;#xA;                const overlay = document.querySelectorAll(&amp;#x27;.overlay&amp;#x27;)[index];&amp;#xA;                const paymentoverlay = document.querySelectorAll(&amp;#x27;.paymentoverlay&amp;#x27;)[index];&amp;#xA;&amp;#xA;                // Create a single player instance for each video&amp;#xA;                const player = videojs(video.id);&amp;#xA;&amp;#xA;                var options = {&amp;#xA;                    id: &amp;#x27;content_video&amp;#x27;, // Use the correct ID for each video element&amp;#xA;                    adTagUrl: &amp;#x27;http://pubads.g.doubleclick.net/gampad/ads?sz=640x480&amp;amp;iu=/124319096/external/ad_rule_samples&amp;amp;ciu_szs=300x250&amp;amp;ad_rule=1&amp;amp;impl=s&amp;amp;gdfp_req=1&amp;amp;env=vp&amp;amp;output=xml_vmap1&amp;amp;unviewed_position_start=1&amp;amp;cust_params=sample_ar%3Dpremidpostpod%26deployment%3Dgmf-js&amp;amp;cmsid=496&amp;amp;vid=short_onecue&amp;amp;correlator=&amp;#x27;&amp;#xA;                };&amp;#xA;&amp;#xA;                player.ima(options);&amp;#xA;&amp;#xA;                video.addEventListener(&amp;#x27;ended&amp;#x27;, function() {&amp;#xA;                console.log(&amp;#x27;111&amp;#x27;);&amp;#xA;                    // Handle video conditions after it finishes&amp;#xA;                    handleVideoConditions(video, overlay, paymentoverlay);&amp;#xA;                });&amp;#xA;&amp;#xA;                video.onplay = function() {&amp;#xA;                    playing.push(video);&amp;#xA;                    if (!video.paused) {&amp;#xA;                        video.controls = true;&amp;#xA;                        // Trigger an AJAX request to register the view&amp;#xA;                        registerView(video);&amp;#xA;                    }&amp;#xA;                };&amp;#xA;            });&amp;#xA;&amp;#xA;            function handleVideoConditions(video, overlay, paymentoverlay) {&amp;#xA;                console.log(&amp;#x27;222&amp;#x27;);&amp;#xA;                const isShortVideo = video.querySelector(&amp;#x27;.short-video&amp;#x27;);&amp;#xA;                const isFullVideo = video.querySelector(&amp;#x27;.full-video&amp;#x27;);&amp;#xA;                if (!isUserLoggedIn &amp;amp;&amp;amp; isShortVideo) {&amp;#xA;                    overlay.style.display = &amp;#x27;block&amp;#x27;;&amp;#xA;                } else if (isUserLoggedIn &amp;amp;&amp;amp; isShortVideo) {&amp;#xA;                    paymentoverlay.style.display = &amp;#x27;block&amp;#x27;;&amp;#xA;                }&amp;#xA;            }&amp;#xA;&amp;#xA;            async function registerView(video) {&amp;#xA;                const videoId = video.getAttribute(&amp;#x27;data-video-id&amp;#x27;);&amp;#xA;                const response = await fetch(`{{ route(&amp;#x27;video.registerView&amp;#x27;, [&amp;#x27;videoId&amp;#x27; =&gt; &amp;#x27;:videoId&amp;#x27;]) }}`&amp;#xA;                    .replace(&amp;#x27;:videoId&amp;#x27;, videoId));&amp;#xA;                const data = await response.json();&amp;#xA;                $(&amp;#x27;#videoview&amp;#x27; &amp;#x2B; data.id).html(data.view_count);&amp;#xA;            }&amp;#xA;&amp;#xA;        });&amp;#xA;    &lt;/script&gt;&#xA;

    &#xA;

  • Configure error for ffmpeg 6.1 when executing in bash 5.0.17

    1er mars 2024, par user2715311

    I am trying to install ffmpeg 6.1 (https://ffmpeg.org/releases/ffmpeg-6.1.1.tar.xz), but when executing the configure script my bash version 5.0.17 removes the double quotes from the parameters containing the condition to select the version of the libraries being searched for to pass this parameter to pkg-config.

    &#xA;

    For example, when processing code

    &#xA;

    check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version&#xA;

    &#xA;

    , the pkg-config call will look something like

    &#xA;

    pkg-config --exists libopenjp2 >= 2.1.0&#xA;

    &#xA;

    As a result, configure execution stops with the following error.

    &#xA;

    ERROR: libopenjp2 >= 2.1.0 not found using pkg-config&#xA;

    &#xA;

    As a hint, you may be prompted to set the path to the 2.1.0.pc file in PKG_CONFIG_PATH.

    &#xA;

    It is interesting that this is the case in other versions of bash, for example, this problem is not observed in version 5.1.16.

    &#xA;

    Does this mean that bash version 5.0.17 will actually not be able to work with configure to build most code sources, because such version selection conditions are used quite often when searching for the right libraries ?

    &#xA;

    Or perhaps I can influence this bash behaviour in some way ? Or, alternatively, have I misinterpreted the problem at all and the solution is in a completely different area ?

    &#xA;

    The problem was identified in the Linux Mint 20.1 distribution.

    &#xA;

    $ lsb_release -a&#xA;No LSB modules are available.&#xA;Distributor ID: Linuxmint&#xA;Description:    Linux Mint 20.1&#xA;Release:    20.1&#xA;Codename:   ulyssa&#xA;

    &#xA;

    First of all, I checked that if I call pkg-config correctly, it can find the right library on my system.

    &#xA;

    $ pkg-config --exists "libopenjp2 >= 2.1.0"&#xA;$ echo $?&#xA;0&#xA;

    &#xA;

    or

    &#xA;

    $ pkg-config --cflags --libs "libopenjp2 >= 2.1.0"&#xA;-I/usr/include/openjpeg-2.3 -lopenjp2&#xA;

    &#xA;

    Next, I examined the configure code associated with this problem and came to the conclusion I outlined above.

    &#xA;