Recherche avancée

Médias (91)

Autres articles (36)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (6218)

  • Continuous RTSP stream recording with ffmpeg. Can I optimize it to not damage the SD card ?

    10 juillet 2019, par Mona

    I have got an IP camera with RTSP stream. I decided to record the stream using ffmpeg (version 3.2.14-1 deb9u1) on the Odroid-N2 device with Armbian. I have created a .sh script which is launched by Croon every minute. It checks if the ffmpeg recording is active for selected camera and also deletes files older than 7 days :

    #!/bin/bash
    RecordPathAndFind='/home/mona/CameraRecordings/Camera1/'
    SegmentTime=900
    MinutesAfterDeleteOldFiles=10080
    DaysSecurityLimit=31

    tempoutput=$(ps aux | grep ffmpeg | grep $RecordPathAndFind)
    if [ ${#tempoutput} -ge 5 ];
    then
         echo "FFMPEG with record command is already running. Skipping.\n"
    else
         echo "FFMPEG with record command is not running. Starting now...\n"
         FFMPEGSTART=$(su - mona -c "cd /home/mona; /usr/bin/screen -dmS ffmpegcamera1 ffmpeg -rtsp_transport udp -i 'rtsp://admin:password@192.168.1.xxx:554/onvif1' -vcodec copy -c:a aac -map 0 -f segment -segment_time $(echo $SegmentTime) -segment_format mp4 -strftime 1 $(echo $RecordPathAndFind)%Y-%m-%d_%H-%M-%S.mp4")
    fi

    currenthourminutes=$(date +%M)
    if [ "$currenthourminutes" == "00" ]; then
       echo "Current Minute is 00. Checking for old files to delete.\n"
       FILESDELETECOMMAND=$(find $(echo $RecordPathAndFind) -maxdepth 1 -type f -mmin +$(echo $MinutesAfterDeleteOldFiles) -mtime -$(echo $DaysSecurityLimit) -name '*.mp4' -ls -exec rm {} \;)
    else
       echo "Current Minute is NOT 00. Skipping.\n"
    fi

    The script works fine, but I’m afraid of the life of the SD card in this device. I detected that ffmpeg is continuously writing the mp4 file (file size grows all the time). I think it would be better if ffmpeg waited for 1MiB before flushing it to disk.

    I tried different ffmpeg settings (adding "blocksize", "flush_packets", "reorder_queue_size" and few others I can’t recall now), unfortunately it didn’t change anything. The mp4 file size was increasing all the time (even by few KBs).

    The first question is : Should I be worried about the microSD card life when ffmpeg is all the time writing the file (current environment) ?

    The second question is : Are there any other ffmpeg optimization settings which I missed ?

    If my fears regarding the SD card life are correct, can you please recommend some other things which I could add to my script (or change in system) in order to increase the life of micro SD cards (or USB sticks) used for recording purposes ? I was thinking about using the ramdisk, and then manually move the files, however this could cause files loss in case of system reboot, hang, or power outage.

  • How to get your Piwik plugin translated in many languages ?

    8 septembre 2015, par Stefan Giehl — Community, Development, Plugins

    About a year ago we introduced the Piwik Marketplace to make it easy for developers to share their plugins with all Piwik users.

    As Piwik is currently available in 54 languages we would love to have as many plugins as possible available in at least a few of those languages.

    Currently most plugins on the Marketplace are only available in English and sometimes some other languages. To improve this situation, we offer plugin developers the possibility to use the power of our translators community to get their plugins translated.

    Some plugin developers are already using this service and some very popular plugins like BotTracker or CustomOptOut have already been translated in more than 10 languages !

    Getting translations for your plugin

    As long as you are developing an open source plugin hosted on Github, you may get in touch with us (translations@piwik.org) in order to get your plugin translated by the Piwik translators community.

    You will need an account on Transifex.com. If you use Transifex with a social login, please ensure to set a password in your account settings. This will be required for fetching new translations into your plugin repository.

    Importing your plugin’s strings in the translation platform

    While doing the initial setup for your plugin, we will import your english translation file (en.json) in your Github plugin repository and we will configure an auto-update for this file. Source strings on Transifex will automatically synchronise with your plugin repository. When you change any string in your en.json translation file, the updated English strings will automatically be imported in Transifex.

    How to fetch your plugins translations into your repository

    As soon as we have set up your plugin within our project Piwik on Transifex and there are new translations available, you will be able to update your plugin translations using the Piwik console. You will need a locally installed Piwik with development mode enabled, and your plugin installed. To update the translations go to the Piwik directory on your development box and execute the following command :

    ./console translations:update -u {YourTransifexUserName} -p {YourTransifexPassword} -P {YourPluginName}

    We are looking forward to seeing your Piwik plugins available in more languages ! For more information, check out our Translations plugin developer guide.

    Happy hacking,

  • FFMPEG Video from images to mp4 in nvidia GPU

    16 août 2019, par M.y

    I am trying to encode a h264 .mp4 video created from .jpg images using a 1070ti nvidia cuda power, having a a crossfade transition between each image.
    I am able to render the video in GPU using the flags -c:v h264_nvenc, I see a short peak in the GPU encoding, but with a long period of computer CPU hight load, I guess preparing the transitioning images. But the image preparation it happens on cpu/ram due the -filter_complex and is quite slow.
    This works :

    ffmpeg.exe, -y,
    -loop, 1, -t, 2.5, -i, 1565957420594_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957453659_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957487743_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957525280_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957587308_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957644898_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565957859119_labeled.jpg,
    -loop, 1, -t, 2.5, -i,1565959133561_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565959412948_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565959501884_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565959755432_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565959882380_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565960023185_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565960157174_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565960683303_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565961151548_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565961230278_labeled.jpg,
    -loop, 1, -t, 2.5, -i, 1565961671766_labeled.jpg,
    -loop, 1, -t, 2.5, -i, final.jpg,
    -loop, 1, -t, 2.5, -i, final.jpg,
    -c:v, h264_nvenc, -preset, fast,
    -filter_complex, [1]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+0.5/TB[f0];
    [2]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+1.0/TB[f1];
    [3]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+1.5/TB[f2];
    [4]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+2.0/TB[f3];
    [5]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+2.5/TB[f4];
    [6]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+3.0/TB[f5];
    [7]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+3.5/TB[f6];
    [8]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+4.0/TB[f7];
    [9]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+4.5/TB[f8];
    [10]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+5.0/TB[f9];
    [11]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+5.5/TB[f10];
    [12]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+6.0/TB[f11];
    [13]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+6.5/TB[f12];
    [14]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+7.0/TB[f13];
    [15]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+7.5/TB[f14];
    [16]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+8.0/TB[f15];
    [17]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+8.5/TB[f16];
    [18]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+9.0/TB[f17];
    [19]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+9.5/TB[f18];
    [0][f0]overlay[bg1];
    [bg1][f1]overlay[bg2];
    [bg2][f2]overlay[bg3];
    [bg3][f3]overlay[bg4];
    [bg4][f4]overlay[bg5];
    [bg5][f5]overlay[bg6];
    [bg6][f6]overlay[bg7];
    [bg7][f7]overlay[bg8];
    [bg8][f8]overlay[bg9];
    [bg9][f9]overlay[bg10];
    [bg10][f10]overlay[bg11];
    [bg11][f11]overlay[bg12];
    [bg12][f12]overlay[bg13];
    [bg13][f13]overlay[bg14];
    [bg14][f14]overlay[bg15];
    [bg15][f15]overlay[bg16];
    [bg16][f16]overlay[bg17];
    [bg17][f17]overlay[bg18];
    [bg18][f18]overlay[v],
    -map, [v], -movflags, +faststart, output.mp4

    I am trying to do all work in the GPU, theoretically I can encode all images in GPU memory using in each -i the flags "-hwaccel cuvid -c:v mjpeg_cuvid" I receive the following error :

    [mjpeg_cuvid @ 00000000024ef980] ignoring invalid SAR: 0/0
    Impossible to convert between the formats supported by the filter 'graph 0 input from stream 1:0' and the filter 'auto_scaler_0'
    Error reinitializing filters!
    Failed to inject frame into filter network: Function not implemented
    Error while processing the decoded data for stream #0:0

    Is there a way to load images in the GPU with the "fade" flag applied ?

    Thanks in advance !