Recherche avancée

Médias (1)

Mot : - Tags -/lev manovitch

Autres articles (96)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Le plugin : Gestion de la mutualisation

    2 mars 2010, par

    Le plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
    Installation basique
    On installe les fichiers de SPIP sur le serveur.
    On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
    On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
    < ?php (...)

Sur d’autres sites (3950)

  • FFMPEG - Error during conversion : Input stream error : Status code : 403

    18 août 2024, par SOURABH UPRETI
    const express = require(&#x27;express&#x27;);&#xA;const ytdl = require(&#x27;ytdl-core&#x27;);&#xA;const ffmpeg = require(&#x27;fluent-ffmpeg&#x27;);&#xA;const ffmpegStatic = require(&#x27;ffmpeg-static&#x27;);&#xA;&#xA;const app = express();&#xA;app.use(express.static(&#x27;public&#x27;));&#xA;&#xA;app.get(&#x27;/videoInfo&#x27;, async (req, res) => {&#xA;    const { url } = req.query;&#xA;    if (!ytdl.validateURL(url)) {&#xA;        return res.status(400).send(&#x27;Invalid URL&#x27;);&#xA;    }&#xA;&#xA;    const requestOptions = {&#xA;        headers: {&#xA;            &#x27;User-Agent&#x27;: &#x27;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36&#x27;&#xA;        }&#xA;    };&#xA;&#xA;    try {&#xA;        const info = await ytdl.getInfo(url, requestOptions);&#xA;        const audioFormats = ytdl.filterFormats(info.formats, &#x27;audioonly&#x27;);&#xA;        const highestQualityAudio = audioFormats.reduce((prev, curr) => (prev.audioBitrate > curr.audioBitrate ? prev : curr));&#xA;&#xA;        res.json({&#xA;            videoTitle: info.videoDetails.title,&#xA;            videoThumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, &#xA;            audioFormat: highestQualityAudio&#xA;        });&#xA;    } catch (error) {&#xA;        console.error(&#x27;Error fetching video info:&#x27;, error);&#xA;        res.status(500).send(&#x27;Failed to retrieve video info.&#x27;);&#xA;    }&#xA;});&#xA;&#xA;app.get(&#x27;/download&#x27;, (req, res) => {&#xA;    const { url } = req.query;&#xA;&#xA;    function downloadAndConvertAudio(retryCount = 0) {&#xA;        const requestOptions = {&#xA;            headers: {&#xA;                &#x27;User-Agent&#x27;: &#x27;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36&#x27;&#xA;            }&#xA;        };&#xA;&#xA;        res.header(&#x27;Content-Disposition&#x27;, &#x27;attachment; filename="audio.mp3"&#x27;);&#xA;        const videoStream = ytdl(url, { quality: &#x27;highestaudio&#x27;, requestOptions: requestOptions });&#xA;&#xA;        ffmpeg(videoStream)&#xA;            .setFfmpegPath(ffmpegStatic)&#xA;            .audioBitrate(128)&#xA;            .toFormat(&#x27;mp3&#x27;)&#xA;            .on(&#x27;error&#x27;, (error) => {&#xA;                console.error(&#x27;Error in ffmpeg conversion:&#x27;, error);&#xA;                if (error.message.includes(&#x27;403&#x27;) &amp;&amp; retryCount &lt; 3) {&#xA;                    console.log(&#x27;Retrying download...&#x27;);&#xA;                    setTimeout(() => downloadAndConvertAudio(retryCount &#x2B; 1), 2000); &#xA;                } else {&#xA;                    res.status(500).send(`Error during conversion: ${error.message}`);&#xA;                }&#xA;            })&#xA;            .pipe(res);&#xA;    }&#xA;&#xA;    downloadAndConvertAudio();&#xA;});&#xA;&#xA;const PORT = 3000;&#xA;app.listen(PORT, () => {&#xA;    console.log(`Server running on http://localhost:${PORT}`);&#xA;});&#xA;

    &#xA;

    Getting Error during conversion on this server. I tried running it on replit but giving the error all the time. I'm new to this and can't figure out the issue. CHATGPT-4 couldn't help.&#xA;Can someone help me with this ???

    &#xA;

    ChatGPT said - The "Error during conversion : Input stream error : Status code : 410" indicates a "Gone" error, which means the resource you were trying to access is no longer available at the specified URL. This can occur in situations where YouTube content has been removed or is no longer accessible due to changes in YouTube's policy or the specific video's availability.

    &#xA;

  • how to prevent the hls video player dont refresh when m3u8 changes

    6 juin 2024, par Leo

    here i am using ffmpeg to use camera and audio to make a hls stream on server as the stream continious old m3u8 components deletes and new ones gets added to main.m3u8. but as we insert the url of hls stream file main.m3u8. the player refreshes as soon as the file gets rewritten because of new and old ones. so

    &#xA;

    i have tried to change the players like hls.js or videojs etc none were to solve this. how to solve this and make sure the stream runs smoothly.

    &#xA;

    Server.js

    &#xA;

    const startStreaming = (viddev,auddev) => {&#xA;    if (ffmpegProcess) {&#xA;        ffmpegProcess.kill();&#xA;    }&#xA;    const segmentDuration = 10;&#xA;    const outputFilename = &#x27;./video/output.m3u8&#x27;;&#xA;    const ffmpegCommand = `ffmpeg -f dshow -i video="${viddev}" -f dshow -i audio="${auddev}" -codec:v libx264 -preset ultrafast -tune zerolatency -codec:a aac -b:a 128k -hls_time ${segmentDuration} -hls_list_size 3 -hls_flags delete_segments -start_number 0 -hls_segment_type mpegts ${outputFilename}`;&#xA;&#xA;    ffmpegProcess = exec(ffmpegCommand);&#xA;&#xA;    ffmpegProcess.stderr.on(&#x27;data&#x27;, (data) => {&#xA;        console.error(`ffmpeg stderr: ${data}`);&#xA;    });&#xA;&#xA;    ffmpegProcess.on(&#x27;close&#x27;, (code) => {&#xA;        console.log(`ffmpeg process exited with code ${code}`);&#xA;    });&#xA;};&#xA;&#xA;app.use(&#x27;/video&#x27;, express.static(path.join(__dirname, &#x27;video&#x27;)));&#xA;&#xA;// Endpoint to list audio and video devices&#xA;app.get(&#x27;/devices&#x27;, async (req, res) => {&#xA;    const data=await parseDevices()&#xA;    // console.log(data.cameras[0].name)&#xA;    startStreaming(data.cameras[0].name,data.microphones[0].name);&#xA;    res.json(data)&#xA;});&#xA;

    &#xA;

    index.html

    &#xA;

    &#xA;&#xA;&#xA;    &#xA;    &#xA;    &#xA;    &#xA;    &#xA;&#xA;&#xA;&#xA;    &#xA;        <source src="https://localhost:3000/video/output.m3u8" type="application/x-mpegURL">&#xA;    &#xA;&#xA;    <code class="echappe-js">&lt;script src=&quot;https://vjs.zencdn.net/8.10.0/video.min.js&quot;&gt;&lt;/script&gt;&#xA;    &lt;script&gt;&amp;#xA;        // Initialize Video.js player&amp;#xA;        var player = videojs(&amp;#x27;video&amp;#x27;, {&amp;#xA;            autoplay: &amp;#x27;play&amp;#x27;,&amp;#xA;            liveui: true  // Enable the live UI for live streams&amp;#xA;        });&amp;#xA;&amp;#xA;        // Seek to live when the player is ready&amp;#xA;        player.ready(function() {&amp;#xA;            player.liveTracker.on(&amp;#x27;liveedgechange&amp;#x27;, function() {&amp;#xA;                player.currentTime(player.liveTracker.liveCurrentTime());&amp;#xA;            });&amp;#xA;        });&amp;#xA;&amp;#xA;        // Handle any errors encountered by Video.js&amp;#xA;        player.on(&amp;#x27;error&amp;#x27;, function() {&amp;#xA;            console.error(&amp;#x27;Video.js encountered an error:&amp;#x27;, player.error());&amp;#xA;        });&amp;#xA;    &lt;/script&gt;&#xA;&#xA;&#xA;&#xA;&#xA;

    &#xA;

  • How to Extract Frames from the uploaded video through ffmpeg using node js ?

    2 février 2021, par Aditya Vyas

    I have created application in which user uploads a video , from that video i want to extract 50 images using ffmpeg in nodejs, but i am unable to get that file after uploading it in specific folder. I am uploading video through multer as it stores video in specified folder, after that i read that video using read stream but it is not giving proper information on that particular video

    &#xA;

    Code :

    &#xA;

    var express = require(&#x27;express&#x27;);&#xA;&#xA;var app = express();&#xA;&#xA;var bodyParser = require(&#x27;body-parser&#x27;);&#xA;&#xA;var path = require(&#x27;path&#x27;);&#xA;&#xA;var multer = require(&#x27;multer&#x27;);&#xA;&#xA;var cfenv = require(&#x27;cfenv&#x27;);&#xA;&#xA;var watson = require(&#x27;watson-developer-cloud&#x27;);&#xA;&#xA;var ffmpeg = require(&#x27;ffmpeg&#x27;);&#xA;&#xA;app.use(bodyParser.json());&#xA;&#xA;app.use(bodyParser.urlencoded({"extended": false}));&#xA;&#xA;app.use(express.static(__dirname &#x2B; &#x27;/public&#x27;));&#xA;&#xA;var storage = multer.diskStorage({&#xA;    destination: function(req, file, callback){&#xA;        callback(null, &#x27;./public/class&#x27;); // set the destination&#xA;    },&#xA;    filename: function(req, file, callback){&#xA;        callback(null, 199212&#x2B; &#x27;.avi&#x27;); // set the file name and extension&#xA;    }&#xA;});&#xA;&#xA;var upload = multer({storage: storage});&#xA; &#xA; app.upload = upload;&#xA; &#xA; // get the app environment from Cloud Foundry&#xA; var appEnv = cfenv.getAppEnv();&#xA;&#xA;var VisualRecognitionV3 = require(&#x27;watson-developer-cloud/visual-recognition/v3&#x27;);&#xA;&#xA;var fs = require(&#x27;fs&#x27;);&#xA;&#xA;&#xA;var visualRecognition = new VisualRecognitionV3({&#xA;  version: &#x27;2018-03-19&#x27;,&#xA;  iam_apikey: &#x27;aaIFu-fHWBXgj09eVarEQUFlIaTeH9bpgvRqHIJxu_8N&#x27;&#xA;});&#xA;&#xA;&#xA;app.post(&#x27;/imgtable&#x27;,app.upload.single(&#x27;video-upl&#x27;),function(req,res){&#xA;                &#xA;    var video_file = fs.createReadStream(req.file.path);&#xA;                                    &#xA; try {&#xA;    var process = new ffmpeg(&#x27;./public/class/199212.avi&#x27;);&#xA;    process.then(function (video) {&#xA;        // Video metadata&#xA;        console.log(&#x27;******************************&#x27;);&#xA;        console.log(video);&#xA;        // FFmpeg configuration&#xA;        console.log(&#x27;*********************************&#x27;);&#xA;        console.log(video.info_configuration);&#xA;    }, function (err) {&#xA;        console.log(&#x27;Error: &#x27; &#x2B; err);&#xA;    });&#xA;} catch (e) {&#xA;    console.log(e.code);&#xA;    console.log(e.msg);&#xA;}&#xA;&#xA;    &#xA;})&#xA;&#xA;app.listen(3000);`&#xA;

    &#xA;