Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (40)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

Sur d’autres sites (9072)

  • Using ffmpeg to watermark a folder of videos

    25 août 2018, par user5947524

    I am using the code below to watermark individual videos one-by-one in a folder :

    ffprobe -v quiet -show_entries stream=width,height -of default=noprint_wrappers=1 dave.mp4
    ffmpeg -i logo.png -y -v quiet -vf scale=width*0.15:-1 scaled.png
    ffmpeg -i dave.mp4 -i scaled.png -filter_complex "overlay=10:main_h-overlay_h-10" dave2.mp4

    The first line gets the width and the height of a video, second line scales the watermark for that video, third line creates a new video watermarked.

    How can I make run for a full folder of 1000 videos ?

    I tried the code below but it corrupted the videos :

    for %%a in ("C:\Users\Work\Desktop\test2\*.mp4") do (
    ffprobe -v quiet -show_entries stream=width,height -of default=noprint_wrappers=1 "%%a"
    ffmpeg -i logo.png -y -v quiet -vf scale=width*0.15:-1 scaled.png
    ffmpeg -i "%%a" -i scaled.png -filter_complex "overlay=10:main_h-overlay_h-10" "C:\Users\Work\Desktop\test2\%%~na.mp4"
    )

    The error I get is :

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000014545aaaa00] stream 0, offset 0x18039: partial file
    [aac @ 0000014545b708c0] Input buffer exhausted before END element found
    Error while decoding stream #0:1: Invalid data found when processing input
    C:\Users\Work\Desktop\test2\dave.mp4: Invalid data found when processing input
  • Auto delete .ts and .m3u8 files once client receives all .ts files

    11 mars 2019, par Abhishek Mehandiratta

    So I created an express server that gets an mp3 file (which is stored locally right now, but will be taken from mongo db later) and uses ffmpeg to make .m3u8 and .ts files. The files are successfully sent to the client and there are no errors while playing it on the client. I used hls.js to play these files in Chrome. But the server still has those files stored locally. Is there any way the server can know when to delete these files that it stored locally ? There are a lot of files generated by ffmpeg so I can’t just let them stay there forever.

    I used the ffmpeg part of code from hls-server github repo.

    my server file

    index.js

    // just used to run ffmpeg for conversion
    var command = ffmpeg('inp.mp3')
     .on('start', function (commandLine) {
       console.log('command', commandLine);
     }).addOptions([
       '-c:a aac',
       '-b:a 64k',
       '-vn',
       '-hls_list_size 0',
       '-segment_time 10',
     ]).output('files\\output.m3u8');

    var express = require('express');
    var app = express();
    // express middleware to serve individual .ts and .m3u8 files when requested
    app.use(express.static('./files/'));

    app.get('/', function (req, res) {
     command.on('end', function () {
       console.log('done');
       res.write(`
       <code class="echappe-js">&lt;script src=&quot;https://cdn.jsdelivr.net/hls.js/latest/hls.min.js&quot;&gt;&lt;/script&gt;
    &lt;script&gt;<br />
         function onLevelLoaded (event, data) {<br />
           var level_duration = data.details.totalduration;<br />
           console.log(level_duration, data);<br />
         }<br />
         if(Hls.isSupported()) {<br />
           var audio = new Audio();<br />
           var hls = new Hls();<br />
           // requesting files from here<br />
           hls.loadSource('http://localhost:8000/output.m3u8');<br />
           hls.attachMedia(audio);<br />
           hls.on(Hls.Events.LEVEL_LOADED, onLevelLoaded);<br />
           hls.on(Hls.Events.FRAG_BUFFERED, (e, d) =&gt; {<br />
             console.log(e, d);<br />
           });<br />
         }<br />
       &lt;/script&gt;

    `) ;
    res.end() ;
    }).run() ;
    }) ;

    app.listen(8000) ;

  • Accord.Video.FFMPEG creates very low quality video

    11 février 2021, par Кирилл Малышев

    I use Accord.Video.FFMPEG to create a video of 200 images with the H264 codec. For some reason, the video is very poor quality. Its size is less than 1MB. When choosing VideoCodec.Raw, the quality is high, but I am not happy with the huge size.

    &#xA;&#xA;

    I do something like this

    &#xA;&#xA;

    using (var vFWriter = new VideoFileWriter())&#xA;{&#xA;    vFWriter.Open(video_name, 1920, 1080, 24, VideoCodec.H264);&#xA;    for (int i = 0; i &lt; 200; &#x2B;&#x2B;i)&#xA;    {&#xA;        var img_name_src = ...&#xA;        using (Bitmap src_jpg = new Bitmap(img_name_src))&#xA;        {&#xA;            vFWriter.WriteVideoFrame(src_jpg);&#xA;        }&#xA;    }&#xA;    vFWriter.Close();&#xA;}&#xA;

    &#xA;&#xA;

    When I run the program, messages appear :

    &#xA;&#xA;

    [swscaler @ 06c36d20] deprecated pixel format used, make sure you did set range correctly&#xA;[swscaler @ 06e837a0] deprecated pixel format used, make sure you did set range correctly&#xA;[avi @ 06c43980] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.&#xA;[avi @ 06c43980] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.&#xA;

    &#xA;&#xA;

    I don’t know if they affect something.

    &#xA;&#xA;

    It looks like 1 frame :

    &#xA;&#xA;

    enter image description here

    &#xA;&#xA;

    This is the frame from the video :

    &#xA;&#xA;

    enter image description here

    &#xA;&#xA;

    How to fix it ?

    &#xA;&#xA;

    Is there any other way in C# to create a video from individual frames ?

    &#xA;