Recherche avancée

Médias (91)

Autres articles (56)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

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

  • swscale : add two spatially stable dithering methods

    23 mars 2014, par Øyvind Kolås
    swscale : add two spatially stable dithering methods
    

    Both of these dithering methods are from http://pippin.gimp.org/a_dither/ for
    GIF they can be considered better than bayer (provides more gray-levels), and
    spatial stability - often more than twice as good compression and less visual
    flicker than error diffusion methods (the methods also avoids error-shadow
    artifacts of diffusion dithers).

    These methods are similar to blue/green noise type dither masks ; but are
    simple enough to generate their mask on the fly. They are still research work
    in progress ; though more expensive to generate masks (which can be used in a
    LUT) like ’void and cluster’ and similar methods will yield superior results

    • [DH] doc/scaler.texi
    • [DH] libswscale/options.c
    • [DH] libswscale/output.c
    • [DH] libswscale/swscale_internal.h
    • [DH] libswscale/utils.c
  • Lost video stream when streaming using FFmpeg and RTSP camera

    13 février 2019, par Vape

    on the Linux server, I have FFmpeg installed which streams video from Chinese low-cost IP camera to Twitch or Youtube server. After a few hours, the video is not visible but on the server side, the FFmpeg is still running and also the IP camera respond to the "ping" command.

    Here is the script I’m using :

    #
    # Camera IP
    #
    AQUARIUM_CAM_IP="192.168.123.102"


    #
    # Aquarium data file
    #
    AQUARIUM_DATA_FILE="/run/aquarium-cam/data.txt"


    #
    # FFmpeg parameters
    #
    FFMPEG_LOG_LEVEL=fatal

    # Bitrate (1000k = 1Mbit/s)  and  encoding speed (affects CPU)  and  number of CPU cores to use
    FFMPEG_VBR="1000k"
    FFMPEG_QUAL="ultrafast"
    FFMPEG_THREADS="1"

    # Streaming source
    FFMPEG_CAM_RTSP_SRC="rtsp://${AQUARIUM_CAM_IP}:554/user=admin&password=&channel=1&stream=0.sdp" # Camera source

    # Streaming destination
    FFMPEG_TWITCH_STREAM_URL_DST="rtmp://live-ber.twitch.tv/app"  # RTMP stream URL
    FFMPEG_TWITCH_KEY=""

    # Data overlay setup
    FFMPEG_TEXT_OVERLAY_FONT_PATH="OpenSans-Regular.ttf"
    FFMPEG_TEXT_OVERLAY_FONT_SIZE=25
    FFMPEG_TEXT_OVERLAY_OFFSET_X=5
    FFMPEG_TEXT_OVERLAY_OFFSET_Y=60
    FFMPEG_TEXT_OVERLAY_RELOAD=1
    FFMPEG_TEXT_OVERLAY_BOX="1"
    FFMPEG_TEXT_OVERLAY_BOX_BORDER_WIDTH="5"
    FFMPEG_TEXT_OVERLAY_BOX_COLOR="blue@0.5"

    the FFmpeg script :

    ffmpeg \
       -loglevel ${FFMPEG_LOG_LEVEL} -f lavfi -i anullsrc \
       -rtsp_transport tcp \
       -i "${FFMPEG_CAM_RTSP_SRC}" \
       -vcodec libx264 -pix_fmt yuv420p -preset ${FFMPEG_QUAL} -g 75 -b:v ${FFMPEG_VBR} \
       -vf "\
    drawtext=fontfile=${FFMPEG_TEXT_OVERLAY_FONT_PATH}:textfile=${AQUARIUM_DATA_FILE}:\
    x=${FFMPEG_TEXT_OVERLAY_OFFSET_X}:y=${FFMPEG_TEXT_OVERLAY_OFFSET_X}:\
    reload=${FFMPEG_TEXT_OVERLAY_RELOAD}: \
    fontcolor=white:fontsize=${FFMPEG_TEXT_OVERLAY_FONT_SIZE}:\
    box=${FFMPEG_TEXT_OVERLAY_BOX}:boxborderw=${FFMPEG_TEXT_OVERLAY_BOX_BORDER_WIDTH}:\
    boxcolor=${FFMPEG_TEXT_OVERLAY_BOX_COLOR}"\
       -threads ${FFMPEG_THREADS} -bufsize 512k \
       -f flv "${FFMPEG_TWITCH_STREAM_URL_DST}/${FFMPEG_TWITCH_KEY}"

    The other strange thing is that when the FFmpeg start and the stream begin the CPU utilization is about 30% in the case when there is no stream but the FFmpeg is still alive the CPU utilization is below 20% or less.

    Any Idea how to resolve this kind of problem ?
    Has FFmpeg some option to terminate if there is no "stream" or if it has lost a connection with a camera ?

  • How to optimize FFMPEG/ Chromacast video ?

    5 août 2021, par Hasan

    Re-broadcast a live broadcast by chromecasting it. The code below delays 5 seconds.

    


    Server I use :
https://instances.vantage.sh/?selected=c5.2xlarge

    


    Can you help me optimize the code ?

    


    chromakey.sh

    


    
# Combine two files using a chromakey effects
filter_complex(){
  local videoWith="${1:-1920}"  # Video Size
  local videoHeight="${2:-1080}"  # Video Size
  local key="${3:-00FF00}"      # Colorkey colour - default vaue is 0000FF or green
  local colorSim="${4:-0.2}"    # Colorkey similarity level - default value is 0.2
  local colorBlend="${5:-0.1}"  # Colorkey blending level - default value is 0.1

  # Update color variable according to user input
  # This makes the matching case insensitive
  if [[ $3 =~ ^[0-9A-F]{6}$ ]]; then
    key=$3
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "blue" ]]; then
    key="0000FF"
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "green" ]]; then
    key="00FF00"
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "red" ]]; then
    key="FF0000"
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "purple" ]]; then
    key="0000FF"
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "orange" ]]; then
    key="ff9900"
  elif [[ $(tr "[:upper:]" "[:lower:]" <<<"$1")  = "yellow" ]]; then
    key="FFFF00"
  fi

  
  filterString="[1:v]scale=$videoWith x $videoHeight,chromakey=0 x $key:$colorSim:$colorBlend[ckout];[0:v]scale=(iw*sar)*max($videoWith/(iw*sar)\,$videoHeight/ih):ih*max($videoWith/(iw*sar)\,$videoHeight/ih), crop=$videoWith:$videoHeight[bg];[bg][ckout]overlay[out]"
  
  printf '%s%s%s%s%s' $filterString
}

ffmpeg -re -stream_loop -1 -i "${1}" -i "${2}" -preset ultrafast -filter_complex "$(filter_complex "${@:4}")" -map '[out]' -c:v libx264 -f flv "${3}"


    


    Usage : ./chromakey.sh mask.mp4 http://example.com/live/broadcast_orj rtmp ://example.com/live/broadcast_greenscreen 1920 1080 green 0.1 0.2