Recherche avancée

Médias (91)

Autres articles (80)

  • 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 (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (12048)

  • Express - FFMPEG : Serve transcoded video instead of static video file

    30 septembre 2020, par No stupid questions

    I am creating a website to host videos downloaded on my computer online. However, many of these videos are not in a web friendly format (like .mkv or .flv). It is not an option to convert these files on the disk and then serve them as static files, converting needs to be done live by the server. I want to transcode these videos with ffmpeg to a web friendly format like webm.

    


    So far, I have been able to somewhat successfully transcode a video and serve it :

    


    import express from 'express';
import cors from 'cors';
import ffmpeg from 'fluent-ffmpeg';

const app = express();

app.use(cors());
app.use(express.json());

app.use('/static/videos', globalPasswordMiddleware, (req, res) => {
    res.contentType('webm');
    const videoPath = path.join('C:/videos', decodeURIComponent(req.path));
    ffmpeg(videoPath)
        .format('webm')
        .on('end', function () {
            console.log('file has been converted succesfully');
        })
        .on('error', function (err) {
            console.log('an error happened: ' + err.message);
        })
        .pipe(res, { end: true });
});


    


    However, I am still encountering three different issues :

    


    Firstly, while this code seems to work for transcoding something like a flash video into webm, there are still a number of videos I cannot get to play. For example, a number of videos that play in Chrome will still not play in Firefox or a number of videos that play on my PC won't on my ancient iPad. Are there more arguments I need to be passing to ffmpeg to transcode the video in a way that it will work on a greater number or devices/browsers ?

    


    Second, there is no ability to seek on the video or see how much time remains. When viewing a transcoded video it behaves more like a livestream than if I were serving it as a static file. How can I fix this ?

    


    And finally third, the transcoding is massively slow. Running in production mode, video playback has to buffer for a few seconds every five or so seconds. I am aware transcoding video is an intense process but I believe given my computer's hardware (i9 9900K) and how much faster it is at transcoding videos on Plex that I should be able to transcode videos faster than this.

    


  • FFMPEG - Add (white, color-less, analog) grain to the video without desaturating video itself

    2 décembre 2018, par dd_code

    I am working on old videos where I am basically converting them to HVEC and sharpening, so i.e. my command can look like this

    .\ffmpeg.exe -i F:\file.mkv -vf unsharp=3:3:1.5 -c:v hevc_nvenc -qp 27 -a:c copy file_new.mkv

    inherent problem with this is, of course that with reducing bitrate and sharpening every now and then I can notice some nasty artifacts around the edges and on at plain-color objects.

    I noticed with some older, many times remastered movies/series that they have quite a lot of grain in the video, so I was thinking - what if I add grain and help it to mask the compression and sharpening artifacts ?

    After bit of searching I got to
    https://ffmpeg.org/ffmpeg-filters.html#noise
    and now I am using this command

    .\ffmpeg.exe -i F:\file.mkv -vf unsharp=3:3:1.5,noise=alls=14:allf=t+u -c:v hevc_nvenc -qp 30 -a:c copy file_new.mkv

    however this has one big problem, it is merely a digital RGB noise, is there a way to make it desaturated, analog-ish ? I tried adding h=s=0, however this is applying 0 saturation to the video track as a whole. Is there an effect which would achieve this or is there a way that I can reduce the saturation only of the very effect which then gets to "overlay" the video track, so the track would not be touched ?

  • AttributeError : '_io.BytesIO' object has no attribute 'endswith' when attempting to check audio and video codec from base64 video file in Django

    12 novembre 2023, par mahmudsajib

    I'm currently working on a Django project where I need to check the audio and video codec of a base64-encoded video file. To achieve this, I've implemented a function that decodes the base64 string into binary data and then attempts to load the video clip using MoviePy. However, I'm encountering an AttributeError : '_io.BytesIO' object has no attribute 'endswith' when trying to run the code.

    


    Here's the relevant part of the code :

    


    import base64
from io import BytesIO
from moviepy.editor import VideoFileClip

def get_video_codec_info(base64_data):
    # Decode base64 string into binary data
    _format, _file_str = base64_data.split(";base64,")
    binary_data = base64.b64decode(_file_str)

    # Load the video clip using MoviePy
    clip = VideoFileClip(BytesIO(binary_data))

    # Get information about the video codec
    codec_info = {
        'video_codec': clip.video_codec,
        'audio_codec': clip.audio_codec,
    }

    return codec_info


    


    The error occurs at the line clip = VideoFileClip(BytesIO(binary_data)) and it seems related to the use of BytesIO. I've tried to find a solution, but I'm stuck at the moment.

    


    Any suggestions on how to resolve this issue or alternative approaches to check the audio and video codec of a base64-encoded video file in Django would be greatly appreciated. Thanks !