Recherche avancée

Médias (0)

Mot : - Tags -/masques

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

Autres articles (71)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

Sur d’autres sites (8052)

  • What are the correct conversion steps to generate a video from PDF with ffmpeg and mp4box

    25 juin 2020, par Michael Rall

    I need to convert a PDF-Document to a DASH-compatible stream. Every page of the PDF should be displayed for one second. Quality should be rather good, so that text and line graphics can still be read clearly. Additionally I want to be able to seek every page, so keyframes(?) should be (exactly) every second.

    


    Im using poppler-tools to extract the pdf-pages as png's -> works

    


    Im using ffmpeg to convert the single images to an x264 encoded mp4 video -> works (but maybe problematic)

    


    string.Format("-r 1 -i \"{0}.page_%d.png\" -r 24 -vcodec libx264 -pix_fmt yuv420p {0}.output.mp4", basePath)


    


    Im using MP4Box to convert that video to dash -> works (but needs improvement)

    


    string.Format("-dash 1000 -frag 1000 -rap -segment-name {1}_dash_$RepresentationID$_$Number$ -url-template {0}.output.mp4 -out \"{0}.{2}\"", basePath, tempDataId, STREAM_MANIFEST_FILE_POSTFIX)


    


    Now I have 2 Problems/Questions

    


      

    1. Are the settings for framerate, quality, outputformat correct for the goals I want to achieve
    2. 


    3. When displaying the resulting DASH-Stream in the Demo-Player from https://github.com/Dash-Industry-Forum/dash.js/wiki it plays the stream, but as soon as I try to seek the player starts loading forever. Setting the position to start and let it play again works. The network tab in my browser-debugger shows that the player tries to load the segments and gets them successfully.
    4. 


    


    I guess its a problem with keyframes, fragments or similar. Can somebody correct my conversion steps ?

    


    kind regards

    


  • Understanding ffmpeg map option

    7 avril 2021, par Austin Kyker

    I came across the following command in a blog post which creates different quality video streams that are packaged into DASH format via the dash muxer.

    


    ffmpeg -i $VIDEO_IN \
    -preset $PRESET_P -keyint_min $GOP_SIZE -g $GOP_SIZE -sc_threshold 0 \
    -r $FPS -c:v libx264 -pix_fmt yuv420p -c:a aac -b:a 128k -ac 1 -ar 44100 \
    -map v:0 -s:0 $V_SIZE_1 -b:v:0 2M -maxrate:0 2.14M -bufsize:0 3.5M \
    -map v:0 -s:1 $V_SIZE_2 -b:v:1 145k -maxrate:1 155k -bufsize:1 220k \
    -map v:0 -s:2 $V_SIZE_3 -b:v:2 365k -maxrate:2 390k -bufsize:2 640k \
    -map v:0 -s:3 $V_SIZE_4 -b:v:3 730k -maxrate:3 781k -bufsize:3 1278k \
    -map v:0 -s:4 $V_SIZE_4 -b:v:4 1.1M -maxrate:4 1.17M -bufsize:4 2M \
    -map v:0 -s:5 $V_SIZE_5 -b:v:5 3M -maxrate:5 3.21M -bufsize:5 5.5M \
    -map v:0 -s:6 $V_SIZE_5 -b:v:6 4.5M -maxrate:6 4.8M -bufsize:6 8M \
    -map v:0 -s:7 $V_SIZE_6 -b:v:7 6M -maxrate:7 6.42M -bufsize:7 11M \
    -map v:0 -s:8 $V_SIZE_6 -b:v:8 7.8M -maxrate:8 8.3M -bufsize:8 14M \
    -map 0:a \
    -init_seg_name init\$RepresentationID\$.\$ext\$ -media_seg_name chunk\$RepresentationID\$-\$Number%05d\$.\$ext\$ \
    -use_template 1 -use_timeline 1  \
    -seg_duration 4 -adaptation_sets "id=0,streams=v id=1,streams=a" \
    -f dash Dash/dash.mpd


    


    The thing I'm struggling to understand is how the maps work. I've read the Map docs but they don't seem to have a comparable example.

    


      

    1. Why is -map v:0 used for every video stream ?
    2. 


    3. Why does the first map line operate on stream 0 (e.g. -b:v:0) and the next map line operates on stream 1 (e.g. -b:v:1), etc.
    4. 


    


    Would really appreciate a breakdown.

    


  • How do I playback .m4s files. And turn them into a binary stream for a Discord Bot

    30 octobre 2020, par Harvey

    I want to download the BBC radio 2 and stream it to a discord server. Each request is https://as-dash-uk-live.akamaized.net/pool_904/live/uk/bbc_radio_two/bbc_radio_two.isml/dash/bbc_radio_two-audio=320000-250636302.m4s However the Time stamp will change and they regularly delete content. I found a .dash file as well https://as-dash-uk-live.akamaized.net/pool_904/live/uk/bbc_radio_two/bbc_radio_two.isml/dash/bbc_radio_two-audio=320000.dash which is seems to request. However I can't find how to send it through a discord bot to a discord server. My code is

    


    const axios = require('axios')


module.exports = {
    play: async function (guild,message) {
        const serverQueue = {};
        const voiceChannel = message.member.voice.channel
        serverQueue.connection = await voiceChannel.join();
        plays(guild)
        
        async function plays(guild) {
            let data1 = new Date(1353439725);
            let data2 = new Date(Date.now()/1000);
            console.log(`https://as-dash-uk-live.akamaized.net/pool_904/live/uk/bbc_radio_two/bbc_radio_two.isml/dash/bbc_radio_two-audio=320000-${Math.floor((data2 - data1))-4000}.m4s`)
            const dispatcher = serverQueue.connection.play((await axios.get(`https://as-dash-uk-live.akamaized.net/pool_904/live/uk/bbc_radio_two/bbc_radio_two.isml/dash/bbc_radio_two-audio=320000-${Math.floor((data2 - data1))-4000}.m4s`)).data)
                .on('finish', () => {
                    console.log('Music ended!');
                    plays(guild);
                    return
                })
                .on('error', error => {
                    console.error(error);
                    plays(guild);
                    return
                });
            dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
        }
    }
}


    


    However no audio plays and the audio end event is always being called. Am I being really stupid or is there a way to do this.