Recherche avancée

Médias (91)

Autres articles (98)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

Sur d’autres sites (5874)

  • Evolution #3926 : Remplacement de safehtml par le plug htmlpurifier ou autre

    14 janvier 2019, par Guillaume Fahrner

    Sorry je n’avais pas vu ce message :

    cedric - a écrit :

    Depuis https://core.spip.net/projects/spip/repository/revisions/24131 le plugin HTMLPurifier est fonctionel sans nécessiter de patch dans le core ?

    Malheureusement si : il reste une surcharge de la fonction propre() via inc/texte.php. Elle est utilisée pour réaliser la protection HTML via echappe_html() AVANT le 1er filtrage de sécurité via echapper_html_suspect(). Un deuxième est réalisé via echappe_retour_modeles($t, $interdire_script) ou $interdire_script est vrai en espacé privé ou si le mode parano actif et faux sinon. (Je n’ai pas su faire autrement, mais il y a peut être une astuce a trouver.)

    Je ne sais pas si tu considères que c’est le core mais une surchage des règles YAML de textwheel est également réalisé afin que l’on envoi bien tout qui doit l’être dans les filtres de sécurité.

    Donc non pas de modification du core nécessaire pour que le plugin fonctionne. A voir si ces surcharges mériterais une "intégration directe" future.

    on est bon et on peut release tel quel en indiquant que le plugin htmlpurifier est disponible pour tests et se laisser le temps ?

    A mon avis oui. Pour rappel : le mode parano est actuellement inutilisable avec l’actuel safehtml(). Du coup ça peut être une approche pour l’intégrer/le tester au fil de l’eau : commencé par les gens qui utilisent le mode parano en leur recommandant chaudement/forcant ce plugin.

    Ci dessous la liste des plugins que j’utilise sans problème hors textwheel/todo (cf https://core.spip.net/issues/4254) avec htmlPurifier :

    Abonnements 3.3.6 - stable
    Agenda 3.26.0 - stable
    API de vérification 1.8.1 - stable
    API Prix 0.1.16 - dev
    Article PDF 1.0.10 - stable
    Autorité 0.10.20 - stable
    Banque&paiement 3.6.7 - stable
    Cache Cool 0.5.4 - stable
    Challenge Hacking 1.0.0 - stable
    Champs Extras 3.11.7 - stable
    Chatbox 1.0.5 - stable
    Coloration Code 99 - stable
    Commandes 1.15.5 - stable
    Compositions 3.7.3 - stable
    Crayons 1.26.18 - stable
    CTF all the day 1.0.0 - stable
    Facteur 3.6.2 - stable
    Formulaire de contact avancé 0.16.5 - stable
    Frimousses 1.5.1 - stable
    GIS 4.44.24 - stable
    HTML Purifier 5.0.0.1 - test
    iCalendar 0.4.5 - test
    Import ics 4.4.3 - stable
    Imprimer document 0.2.2 - stable
    LangOnet 1.4.6 - stable
    MailShot 1.27.3 - stable
    MailSubscribers 2.11.3 - stable
    Markdown 1.0.2 - test
    Messagerie 3.1.8 - test
    Mini Calendrier 2.4.1 - stable
    Mot de passe dès l’inscription 1.0.19 - stable
    Newsletters 1.6.0 - stable
    Nombres de visiteurs connectés 0.2.3 - stable
    NoSPAM 1.5.18 - stable
    Notation 2.4.2 - test
    Notifications 3.6.8 - stable
    Notifications avancées 0.4.2 - test
    Pages 1.3.7 - stable
    Pre & Code 99 - test
    Saisies pour formulaires 3.11.1 - stable
    Social tags 1.1.1 - stable
    SPIP Bonux 3.4.6 - stable
    Tip A Friend 1.6.9 - stable
    Todo 2.2.1 - stable
    Traduction entre rubriques 3.1.3 - stable
    YAML 1.5.4 - stable

    Je pense que si on doit intégrer le plugin ça sera sur la version dev 3.3, pas sur la version stable, et ça va demander de prendre le temps de voir toutes les modifs et les impacts éventuels que tu n’aurais pas vu ou auxquelles tu n’aurais pas pensé.

    Clairement je pense me faire insulter :-) Je suis prêt ^^ Plus sérieusement il faut absolument tester/restester/reretester. J’ai tenté de faire au mieux mais je ne peux pas revoir tout le code HTML généré par les plugins... Au moindre écart de conformité HTML ca ne passera pas. Le bug https://core.spip.net/issues/4254 en est un bon exemple : avec htmlpurifier l’élément

    est supprimé ; avec "safehtml() standard" le code invalide est conservé et c’est le navigateur qui va corriger.

    Il faut voir les bons cotés : cela force les bonnes pratiques, met SPIP au plus haut niveau du standard (Drupal fait moins bien), aide a identifier des bugs et ce qui passe dans propre() sera obligatoirement valide. C’est aussi a terme moins de problèmes d’injection XSS a traiter pour la team.

    Sur la fonction de survol des logos le sujet reste ouvert ? On est en effet d’accord que cette écriture est obsolète et devrait être revue de toute façon, mais c’est donc un point à traiter dans le core le cas échéant

    Euh je comprend pas, faut-il intégrer le patch des puces de statut dans ce plugin ? Je pensais plus coder le truc """proprement""" avec un JS dans le directement dans /prive/. A décolérer complètement à mon sens.

    Encore merci pour le temps que tu y passes :)

  • Where to store the .mpd file on django to play on a dash player ?

    3 janvier 2019, par enigmaVada

    I am trying to build a video player on django. I am using MPEG-DASH for adaptive streaming of the video file. I have chosen a sample video in the beginning. Then, using ffmpeg commands, I have encoded the video into 240p, 360p, 480p and 720p videos. Also have encoded audio separately.

    Then, using mp4box, I have generated the .mpd file. I have read that mpd files cannot be run from the local file system and need to be hosted on a server. I have a dash player setup as follows :

     
       
       
       <code class="echappe-js">&lt;script src=&quot;https://cdn.dashjs.org/latest/dash.all.min.js&quot;&gt;&lt;/script&gt;

    The url in the src field is a random manifest file that i used to test the player out. It works fine.

    Then, on my django project, I have created a media folder which stores the media files uploaded via a form(root included in settings.py).
    My question is where do i store the video, audio and .mpd file so that i can play them using the html code which resides in the templates folder. I have tried using the media url of .mpd file in the source but I am unable to play the video.

    Here is the generated mpd file for reference :

    &lt;?xml version="1.0"?>

    <mpd xmlns="urn:mpeg:dash:schema:mpd:2011" minbuffertime="PT1.500S" type="static" mediapresentationduration="PT0H1M9.869S" maxsegmentduration="PT0H0M9.985S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011,http://dashif.org/guidelines/dash264">
    <programinformation moreinformationurl="http://gpac.io">
     
    </programinformation>

    <period duration="PT0H1M9.869S">
     <adaptationset segmentalignment="true" lang="und" subsegmentalignment="true" subsegmentstartswithsap="1">
      <representation mimetype="audio/mp4" codecs="mp4a.40.2" audiosamplingrate="44100" startwithsap="1" bandwidth="130920">
       <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
       <baseurl>sample_audio_dashinit.mp4</baseurl>
       <segmentbase indexrangeexact="true" indexrange="902-1017">
         <initialization range="0-901"></initialization>
       </segmentbase>
      </representation>
     </adaptationset>
     <adaptationset segmentalignment="true" group="1" maxwidth="426" maxheight="240" maxframerate="30" par="426:240" lang="und" subsegmentalignment="true" subsegmentstartswithsap="1">
      <representation mimetype="video/mp4" codecs="avc1.640015" width="426" height="240" framerate="30" sar="1:1" startwithsap="1" bandwidth="590708">
       <baseurl>sample_video_240_dashinit.mp4</baseurl>
       <segmentbase indexrangeexact="true" indexrange="914-1053">
         <initialization range="0-913"></initialization>
       </segmentbase>
      </representation>
     </adaptationset>
     <adaptationset segmentalignment="true" group="1" maxwidth="640" maxheight="480" maxframerate="30" par="4:3" lang="und" subsegmentalignment="true" subsegmentstartswithsap="1">
      <representation mimetype="video/mp4" codecs="avc1.64001E" width="480" height="360" framerate="30" sar="1:1" startwithsap="1" bandwidth="883873">
       <baseurl>sample_video_360_dashinit.mp4</baseurl>
       <segmentbase indexrangeexact="true" indexrange="914-1053">
         <initialization range="0-913"></initialization>
       </segmentbase>
      </representation>
      <representation mimetype="video/mp4" codecs="avc1.64001E" width="640" height="480" framerate="30" sar="1:1" startwithsap="1" bandwidth="1188712">
       <baseurl>sample_video_480_dashinit.mp4</baseurl>
       <segmentbase indexrangeexact="true" indexrange="913-1052">
         <initialization range="0-912"></initialization>
       </segmentbase>
      </representation>
     </adaptationset>
     <adaptationset segmentalignment="true" group="1" maxwidth="1280" maxheight="720" maxframerate="30" par="16:9" lang="und" subsegmentalignment="true" subsegmentstartswithsap="1">
      <representation mimetype="video/mp4" codecs="avc1.64001F" width="1280" height="720" framerate="30" sar="1:1" startwithsap="1" bandwidth="2365717">
       <baseurl>sample_video_720_dashinit.mp4</baseurl>
       <segmentbase indexrangeexact="true" indexrange="914-1053">
         <initialization range="0-913"></initialization>
       </segmentbase>
      </representation>
     </adaptationset>
    </period>
    </mpd>
  • Capture desktop screens including audio with ffmpeg

    9 mars 2019, par klaus

    After referring to the official documentation and one other blog post, I now have following script :

    A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
    F="/home/enan/Videos/$(date --iso-8601=minutes | perl -pe 's/[^0-9]+//g').mkv"
    V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
    ffmpeg -video_size "$V" -framerate 25 -f x11grab -i :0.0 -f pulse -i "$A" -f pulse -i default \
       -filter_complex amerge -ac 1 -preset veryfast "$F"

    Basically that script results into the following command :

    ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default output.mkv

    In this case, with -ac 2, the audio that gets added with the captured video is of some mic. I’m using a laptop and don’t have a mic, so I don’t exactly know which device the outside sounds get added from but it does. But no audio from the main audio that I can hear through the headphone jack doesn’t get added to the video.

    If I use -ac 1 instead, the video now gets the outside audio as well as the internal audio. That’s good. But how do I restrict the video to only add internal audio, not add audio gotten from mic or something similar.

    I don’t know if it’ll help, but adding it anyway. From man mpv :

          -ac[:stream_specifier] channels (input/output,per-stream)
              Set the number of audio channels. For output streams it is set by
              default to the number of input audio channels. For input streams this
              option only makes sense for audio grabbing devices and raw demuxers and
              is mapped to the corresponding demuxer options.