Recherche avancée

Médias (91)

Autres articles (105)

  • 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

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

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

Sur d’autres sites (8683)

  • Q : Bash script infinite loop causing ffmpeg spam

    6 juillet 2017, par Kārlis K.

    Can’t seem to figure this one out... I have a set up NGINX server with the excellent RTMP extension and everything is working fine. However, I’m trying to restream/push a copy of a couple specific streams that need to be streamed in another RTMP stream application (specifically, these streams are streamed to application "static" but in the current situation also need to be pushed over to "live"). The process of restreaming/pushing a stream in NGINX-RTMP is relatively simple, however, in my case I need to selectively push a couple of streams instead of every stream being streamed to the application "static".

    Idea is to have NGINX-RTMP pass the stream name off to the bash script, which then does the restreaming without interrupting any other streams or services.

    With some success, I’ve tried doing this by creating a bash scrip..

    The relevant NGINX config bit that runs the bash script is :

    exec_publish /etc/nginx/rtmp_conf.d/stream_id.sh $name;

    I tried it with an "if / else"

    if [ $1 == "stream_name_1" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_1 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_0
    elif [ $1 == "stream_name_2" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_2 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_1
    elif [ $1 == "stream_name_3" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_3 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_2
    elif [ $1 == "stream_name_4" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_4 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_3
    else
           echo "FAIL" >> /etc/nginx/rtmp_conf.d/stream.log && echo date > /etc/nginx/rtmp_conf.d/stream.log
           exit
    fi

    And I tried it with Switches

    case "$1" in
           "stream_name_1")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_1 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_0
           ;;
           "stream_name_2")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_2 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_1
           ;;
           "stream_name_3")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_3 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_2
           ;;
           "stream_name_4")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_4 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_3
           ;;
           echo "FAIL " >> /etc/nginx/rtmp_conf.d/stream.log && echo date > /etc/nginx/rtmp_conf.d/stream.log
    esac

    Problem with both is that they both end up spamming a ton of ffmpeg processes ... and I don’t know why - I’ve tried changing the code but I either end up with ffmpeg not firing at all or spamming the server.

  • Q : Bash scrip infinite loop causing ffmpeg spam

    6 juillet 2017, par Kārlis K.

    Can’t seem to figure this one out... I have a set up NGINX server with the excellent RTMP extension and everything is working fine. However, I’m trying to restream/push a copy of a couple specific streams that need to be streamed in another RTMP stream application (specifically, these streams are streamed to application "static" but in the current situation also need to be pushed over to "live"). The process of restreaming/pushing a stream in NGINX-RTMP is relatively simple, however, in my case I need to selectively push a couple of streams instead of every stream being streamed to the application "static".

    Idea is to have NGINX-RTMP pass the stream name off to the bash script, which then does the restreaming without interrupting any other streams or services.

    With some success, I’ve tried doing this by creating a bash scrip..

    The relevant NGINX config bit that runs the bash script is :

    exec_publish /etc/nginx/rtmp_conf.d/stream_id.sh $name;

    I tried it with an "if / else"

    if [ $1 == "stream_name_1" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_1 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_0
    elif [ $1 == "stream_name_2" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_2 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_1
    elif [ $1 == "stream_name_3" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_3 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_2
    elif [ $1 == "stream_name_4" ]; then
           ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_4 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_3
    else
           echo "FAIL" >> /etc/nginx/rtmp_conf.d/stream.log && echo date > /etc/nginx/rtmp_conf.d/stream.log
           exit
    fi

    And I tried it with Switches

    case "$1" in
           "stream_name_1")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_1 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_0
           ;;
           "stream_name_2")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_2 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_1
           ;;
           "stream_name_3")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_3 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_2
           ;;
           "stream_name_4")
               ffmpeg -re -i rtmp://127.0.0.1:2000/static/stream_name_4 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1:2000/live/live_3
           ;;
           echo "FAIL " >> /etc/nginx/rtmp_conf.d/stream.log && echo date > /etc/nginx/rtmp_conf.d/stream.log
    esac

    Problem with both is that they both end up spamming a ton of ffmpeg processes ... and I don’t know why - I’ve tried changing the code but I either end up with ffmpeg not firing at all or spamming the server.

  • Why audio element currentTime on ffmpeg encoded mp3 file in Chrome browser does not work

    26 juillet 2013, par Peter

    I have an HTML5 audio element :

    <audio preload="auto">
       <source src="./Sound/recording.mp3" type="audio/mpeg">
    </source></audio>

    and I need to be able to play last 4 seconds from mp3 recording. My javaScript is :

    audio.currentTime = audio.duration-4;
    audio.play();

    Works ok in IE10 and Firefox, but Chrome starts playing from a wrong place. The difference between reported audio.currentTime and actual playback position is about 20s. The recording.mp3 is created with ffmpeg :

    ffmpeg -i recording.wav -ab 32k recording.mp3

    It works, when I strip the ID3v2 header from the recording.mp3 (deleting the first couple bytes in the file before the audio data).

    It also works when I compress to ogg. Can somebody point me to the right direction (ffmpeg switches, audio element attributes or whatever) to get it work also in chrome ?

    Thanks in advance

    EDIT :
    the ffmpeg output :

    ffmpeg version N-53528-g160ea26 Copyright (c) 2000-2013 the FFmpeg developers
     built on May 27 2013 15:20:09 with gcc 4.7.3 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
    e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
    ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
    eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
    amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
    enable-libxvid --enable-zlib
     libavutil      52. 34.100 / 52. 34.100
     libavcodec     55. 12.100 / 55. 12.100
     libavformat    55.  7.100 / 55.  7.100
     libavdevice    55.  1.101 / 55.  1.101
     libavfilter     3. 72.100 /  3. 72.100
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    [wav @ 0433e840] max_analyze_duration 5000000 reached at 5015510 microseconds
    Guessed Channel Layout for  Input Stream #0.0 : mono
    Input #0, wav, from &#39;recording.wav&#39;:
     Duration: 02:30:07.86, bitrate: 176 kb/s
       Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 11025 Hz, mono, s16, 176 kb/s
    Output #0, mp3, to &#39;recording.mp3&#39;:
     Metadata:
       TSSE            : Lavf55.7.100
       Stream #0:0: Audio: mp3 (libmp3lame), 11025 Hz, mono, s16p, 32 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (pcm_s16le -> libmp3lame)
    Press [q] to stop, [?] for help
    size=   35188kB time=02:30:07.86 bitrate=  32.0kbits/s
    video:0kB audio:35187kB subtitle:0 global headers:0kB muxing overhead 0.000672%