Recherche avancée

Médias (0)

Mot : - Tags -/xml-rpc

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

Autres articles (56)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

Sur d’autres sites (7084)

  • play video with secure link in laravel ffmpeg

    1er mars 2023, par abc abc

    I convert my video file to m3u8 with ffmpeg and upload in download host.
I have no problem when I want to display Blade in Laravel without a secure link.

    


    Now, I am asking my friends to help me display those videos using a safe link, something like this link :

    


    https://dl4.your-domain.com/stream.m3u8?path=path-to-your-video-of-m3u8&expires=1677764366&signature=3e302aedefa62b4414beba4957927afa

    


    I did it myself without a secure link and got the output.
These are the routes I defined :

    


    Route::get('/video/secret/{key}', function ($key) {
    return Storage::disk('secrets')->download('29/' . $key);
})->name('video.key');
 
Route::get('/video/{playlist}', function ($playlist) {
    return FFMpeg::dynamicHLSPlaylist()
        ->fromDisk('static')
        ->open("stream/video/29/{$playlist}")
        ->setKeyUrlResolver(function ($key) {
            return route('video.key', ['key' => $key]);
        })
        ->setMediaUrlResolver(function ($mediaFilename) {
            return Storage::disk('static')->url("stream/video/29/{$mediaFilename}");
        })
        ->setPlaylistUrlResolver(function ($playlistFilename) {
            return route('video.playlist', ['playlist' => $playlistFilename]);
        });
})->name('video.playlist');


    


    This is the source of the video :

    


    <code class="echappe-js">&lt;script src=&quot;https://cdn.rawgit.com/video-dev/hls.js/18bb552/dist/hls.min.js&quot;&gt;&lt;/script&gt;&#xA;    &lt;script&gt;&amp;#xA;        document.addEventListener(&amp;#x27;DOMContentLoaded&amp;#x27;, () =&gt; {&amp;#xA;            const source = &quot;{{ route(&amp;#x27;video.playlist&amp;#x27;, [&amp;#x27;playlist&amp;#x27; =&gt; &amp;#x27;29.m3u8&amp;#x27;]) }}&quot;;&amp;#xA;            const video = document.querySelector(&amp;#x27;#video&amp;#x27;);&amp;#xA; &amp;#xA;            const defaultOptions = {};&amp;#xA; &amp;#xA;            if (!Hls.isSupported()) {&amp;#xA;                video.src = source;&amp;#xA;                var player = new Plyr(video, defaultOptions);&amp;#xA;            } else {&amp;#xA;                // For more Hls.js options, see https://github.com/dailymotion/hls.js&amp;#xA;                const hls = new Hls();&amp;#xA;                hls.loadSource(source);&amp;#xA; &amp;#xA;                // From the m3u8 playlist, hls parses the manifest and returns&amp;#xA;                        // all available video qualities. This is important, in this approach,&amp;#xA;                        // we will have one source on the Plyr player.&amp;#xA;                       hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {&amp;#xA; &amp;#xA;                           // Transform available levels into an array of integers (height values).&amp;#xA;                          const availableQualities = hls.levels.map((l) =&gt; l.height)&amp;#xA;                      availableQualities.unshift(0) //prepend 0 to quality array&amp;#xA; &amp;#xA;                          // Add new qualities to option&amp;#xA;                    defaultOptions.quality = {&amp;#xA;                        default: 0, //Default - AUTO&amp;#xA;                        options: availableQualities,&amp;#xA;                        forced: true,&amp;#xA;                        onChange: (e) =&gt; updateQuality(e),&amp;#xA;                    }&amp;#xA;                    // Add Auto Label&amp;#xA;                    defaultOptions.i18n = {&amp;#xA;                        qualityLabel: {&amp;#xA;                            0: &amp;#x27;Auto&amp;#x27;,&amp;#xA;                        },&amp;#xA;                    }&amp;#xA; &amp;#xA;                    hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {&amp;#xA;                      var span = document.querySelector(&quot;.plyr__menu__container [data-plyr=&amp;#x27;quality&amp;#x27;][value=&amp;#x27;0&amp;#x27;] span&quot;)&amp;#xA;                      if (hls.autoLevelEnabled) {&amp;#xA;                        span.innerHTML = `AUTO (${hls.levels[data.level].height}p)`&amp;#xA;                      } else {&amp;#xA;                        span.innerHTML = `AUTO`&amp;#xA;                      }&amp;#xA;                    })&amp;#xA; &amp;#xA;                     // Initialize new Plyr player with quality options&amp;#xA;                     var player = new Plyr(video, defaultOptions);&amp;#xA;                 });&amp;#xA; &amp;#xA;            hls.attachMedia(video);&amp;#xA;                window.hls = hls;&amp;#xA;            }&amp;#xA; &amp;#xA;            function updateQuality(newQuality) {&amp;#xA;              if (newQuality === 0) {&amp;#xA;                window.hls.currentLevel = -1; //Enable AUTO quality if option.value = 0&amp;#xA;              } else {&amp;#xA;                window.hls.levels.forEach((level, levelIndex) =&gt; {&amp;#xA;                  if (level.height === newQuality) {&amp;#xA;                    console.log(&quot;Found quality match with &quot; &amp;#x2B; newQuality);&amp;#xA;                    window.hls.currentLevel = levelIndex;&amp;#xA;                  }&amp;#xA;                });&amp;#xA;              }&amp;#xA;            }&amp;#xA;        });&amp;#xA;    &lt;/script&gt;&#xA;

    &#xA;

    But these work without secure links and signatures.&#xA;I want to create a secure link using token, signature and expires for each part of the video.&#xA;It means to close the direct access on the download host and to access the video files only through Laravel.&#xA;Thank you if anyone knows how to help.

    &#xA;

    Something similar to the following link to display the video :

    &#xA;

    https://dl4.your-domain.com/stream.m3u8?path=path-to-your-video-of-m3u8&expires=1677764366&signature=3e302aedefa62b4414beba4957927afa

    &#xA;

  • Unable to link against FFmpeg libaries

    2 mars 2023, par Cody

    I tried to build this, but always got link-time error.

    &#xA;&#xA;

    #include <libavutil></libavutil>log.h>    &#xA;int main(int argc, char *argv[])&#xA;{&#xA;    ::av_log_set_flags(AV_LOG_SKIP_REPEATED);&#xA;    return 0;&#xA;}&#xA;

    &#xA;&#xA;

    My distro is Debian GNU/Linux 8 (jessie). The FFmpeg was built by myself, and the configure command was...

    &#xA;&#xA;

    $ ./configure --prefix=/usr/local --disable-static --enable-shared \&#xA;> --extra-ldflags=&#x27;-Wl,-rpath=/usr/local/lib&#x27;&#xA;

    &#xA;&#xA;

    The link-error is as follows.

    &#xA;&#xA;

    $ g&#x2B;&#x2B; foo.cpp -D__STDC_CONSTANT_MACROS -Wall \&#xA;> -Wl,-rpath=/usr/local/lib \&#xA;> $(pkg-config --cflags --libs libavutil)&#xA;/tmp/ccKzgEFb.o: In function `main&#x27;:&#xA;foo.cpp:(.text&#x2B;0x17): undefined reference to `av_log_set_flags(int)&#x27;&#xA;collect2: error: ld returned 1 exit status&#xA;

    &#xA;&#xA;

    where the output of pkg-config is...

    &#xA;&#xA;

    $ pkg-config --cflags --libs libavutil&#xA;-I/usr/local/include -L/usr/local/lib -lavutil&#xA;

    &#xA;&#xA;

    The objdump shows that the shared object libavutil.so does have av_log_set_flogs inside.

    &#xA;&#xA;

    $ objdump --dynamic-syms /usr/local/lib/libavutil.so | grep &#x27;av_log_set_flags&#x27;&#xA;000260f0 g    DF .text  0000000a  LIBAVUTIL_54 av_log_set_flags&#xA;

    &#xA;&#xA;

    Please note that the g&#x2B;&#x2B; command used to build the above application had a linker option -Wl,-rpath=/usr/local/lib, though it still doesn't work. Also, I've tried to monitor with inotifywait if the other version provided by the distro were called. They were not, and the one being opened during execution of g&#x2B;&#x2B; was /usr/local/lib/libavutil.so.

    &#xA;&#xA;

    Summary :

    &#xA;&#xA;

      &#xA;
    1. /usr/local/lib/libavutil.so does have the symbol.

    2. &#xA;

    3. -rpath was used to force to link against the shared library.

    4. &#xA;

    5. Why link-time error ? T_T

    6. &#xA;

    &#xA;&#xA;

    Any suggestion or information would be highly appreciated ! Thanks !

    &#xA;&#xA;

    REEDIT : ffplay works fine and ldd shows it use /usr/local/lib/libavutil.so. So, the libraries seems not broken, and the problem becomes how to build my own codes to use the libraries.

    &#xA;

  • Problems about c# uses the VideoWriter class in dynamic link libraries(c++ and opencv) [closed]

    11 mai 2023, par Paul_Dx

    error : (-5:Bad argument) CAP_IMAGES : can't find starting number (in the name of file) : in function 'cv::icvExtractPattern'.

    &#xA;

    I used c++ and opencv to implement the video recording function, and then generated the code to dynamically link libraries for c# to call.But when I run the code, I get an error.

    &#xA;

    I have a general understanding that opencv calls the ffmpeg package(because of the videowriter class), so I import opencv_videoio_ffmpeg470_64.dll into the project.But the problem was not solved.&#xA;enter image description here&#xA;enter image description here&#xA;enter image description here

    &#xA;