Recherche avancée

Médias (1)

Mot : - Tags -/portrait

Autres articles (85)

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

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

Sur d’autres sites (10684)

  • ffmpeg or MP4box how to convert video to universal playable Mpeg-DASH or HLS

    17 mars 2021, par Jintor

    What is the "good" way to encode (from any format like webm, rtmp) to UNIVERSALLY PLAYABLE hls or dash format ???

    


    I see tons of talks about HLS and MPEG-DASH with video tag that looks like this

    


    <video width="90%" height="669" controls="controls"> <source src="index.m3u8" type="application/x-mpegURL"> </source></video>&#xA;

    &#xA;

    but what is the good command in FFMPEG ?

    &#xA;

    when I do this

    &#xA;

    ffmpeg -i file.webm  -acodec aac -vcodec libx264 -movflags faststart -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8&#xA;

    &#xA;

    it's playable ONLY in chrome :(

    &#xA;

    but I need it to be playable in safari, firefox, opera, etc

    &#xA;

    I recenlty viewed talks about MP4box, what would be the best line to be able to convert any source to a universal playable stream ?

    &#xA;

  • How to set fractional values for `seg_duration` when using ffmpeg's dash muxer ?

    29 décembre 2019, par agconti

    I’m trying to set a fractional value for seg_duration when using ffmepg’s dash muxer like the docs suggest. When I switch between integer decimal values, I don’t get different results. How can I set a fractional value for seg_duration ?

    • E.g. Running my command with seg_duration equal to 1 produces the same minBufferTime as using 0.01.
    • In the source, seg_duration is represented as an int64_t so I don’t see how you can pass a fraction to it.

    Here’s an example ffmpeg command to reproduce :

    ffmpeg -loglevel verbose \
    -i $INGESTION_PATH \
    -seg_duration 0.01 \
    -use_template 1 \
    -use_timeline 0 \
    -f dash $OUTPUT_PATH

    Here’s the snippet from the docs on seg_duration :

    seg_duration duration

    Set the segment length in seconds (fractional value can be set). The value is treated as average segment duration when use_template is enabled and use_timeline is disabled and as minimum segment duration for all the other use cases.

  • MP4 to DASH (bash script)

    18 mars 2019, par Francesco Galgani

    I have a web site in which users can upload video files. I want to stream all of them using DASH to obtain an adaptive bitrate streaming. So I wrote a bash script (to run by cron) that converts all mp4 files to DASH, but it doesn’t work properly : what is wrong ?

    For example, using the following script, I obtained :
    https://www.informatica-libera.net/dash_faq/stream.mpd

    It validates, but it doesn’t play. I tested it on :
    http://dash-mse-test.appspot.com/dash-player.html?url=https%3A%2F%2Fwww.informatica-libera.net%2Fdash_faq%2Fstream.mpd&autoplay=on&adapt=auto&flavor=

    Thank you for any help.
    The code :

    #!/bin/bash

    # THIS SCRIPT CONVERTS EVERY MP4 (IN THE CURRENT FOLDER AND SUBFOLDER)
    # TO A MULTI-BITRATE VIDEO IN MP4-DASH
    # For each file "videoname.mp4" it creates a folder "dash_videoname"
    # containing a dash manifest file "stream.mpd" and subfolders containing
    # video segments.

    # mp4dash documentation and download: https://www.bento4.com/developers/dash/

    MYDIR=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
    SAVEDIR=$(pwd)

    # Check programs
    if [ -z "$(which ffmpeg)" ]; then
       echo "Error: ffmpeg is not installed"
       exit 1
    fi

    if [ -z "$(which mp4dash)" ]; then
       echo "Error: mp4dash is not installed"
       exit 1
    fi

    cd "$MYDIR"

    TARGET_FILES=$(find ./ -type f -name "*.mp4")
    for f in $TARGET_FILES
    do
     f=$(basename "$f") # fullname of the file
     f="${f%.*}" # name without extension

     if [ ! -d "dash_${f}" ]; then
       echo "Converting \"$f\" to multi-bitrate video in MPEG-DASH"

       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 1500k -vf "scale=-2:720" -f mp4 -pass 1 -y /dev/null
       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 1500k -vf "scale=-2:720" -f mp4 -pass 2 "${f}_1500.mp4"

       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 800k -vf "scale=-2:540" -f mp4 -pass 1 -y /dev/null
       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 800k -vf "scale=-2:540" -f mp4 -pass 2 "${f}_800.mp4"

       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 400k -vf "scale=-2:360" -f mp4 -pass 1 -y /dev/null
       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 400k -vf "scale=-2:360" -f mp4 -pass 2 "${f}_400.mp4"

       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 200k -vf "scale=-2:180" -f mp4 -pass 1 -y /dev/null
       ffmpeg -y -i "${f}.mp4" -c:a libfdk_aac -ac 2 -ab 128k -c:v libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 200k -vf "scale=-2:180" -f mp4 -pass 2 "${f}_200.mp4"

       rm -f ffmpeg*log*

       mp4fragment "${f}_1500.mp4" "${f}_1500_fragmented.mp4"
       mp4fragment "${f}_800.mp4" "${f}_800_fragmented.mp4"
       mp4fragment "${f}_400.mp4" "${f}_400_fragmented.mp4"
       mp4fragment "${f}_200.mp4" "${f}_200_fragmented.mp4"

       rm -f "${f}_1500.mp4" "${f}_800.mp4" "${f}_400.mp4" "${f}_200.mp4"

       mp4dash -v -o "dash_${f}" "${f}_1500_fragmented.mp4" "${f}_800_fragmented.mp4" "${f}_400_fragmented.mp4" "${f}_200_fragmented.mp4"

       rm -f "${f}_1500_fragmented.mp4" "${f}_800_fragmented.mp4" "${f}_400_fragmented.mp4" "${f}_200_fragmented.mp4"

       fi

    done

    cd "$SAVEDIR"