Recherche avancée

Médias (0)

Mot : - Tags -/auteurs

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (62)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (4215)

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

  • 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 !

  • Nginx RTMP Pull to HLS Streaming

    5 avril 2023, par Nathaniel Anderson

    I've followed this guide on setting up RTMP to HLS streaming - https://web.archive.org/web/20221205201139/https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/

    


    RTMP streaming works just fine but for some reason I can't get HLS to link with the already existing RTMP server. I'm using OBS to stream to RTMP and it's set to be on x264 and as far as I know the default codec for audio is AAC so I'm not sure why it's not picking it up.

    


    Current Nginx.conf

    


    worker_processes  auto;
events {
    worker_connections  1024;
}

# RTMP configuration
rtmp {
    server {
        listen 1935; # Listen on standard RTMP port
        chunk_size 4000;

# Define the Application
        application show {
            live on;
            pull rtmp://localhost:1935/stream/test;
            # Turn on HLS
            hls on;
            hls_path /mnt/hls/;
            hls_fragment 3;
            hls_playlist_length 60;
            # disable consuming the stream from nginx as rtmp
            deny play all;
        }

        # RTMP video on demand for mp4 files
        application vod {
            play /mnt/mp4s;
        }

        # RTMP stream using OBS
        application stream {
            live on;
        }

    }
}

http {
    sendfile off;
    tcp_nopush on;
    aio on;
    directio 512;
    default_type application/octet-stream;

    server {
        listen 8080;

        location / {
            # Disable cache
            add_header 'Cache-Control' 'no-cache';

            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }

            types {
                application/dash+xml mpd;
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            root /mnt/;
        }
    }
}


    


    I've tried changing the rtmp link I have in that config too to both internal and external IP's since it can be reached. I tested watching the rtmp from another computer on the network to confirm it was functional. I wanted to avoid transcoding with ffmpeg since the server doesn't have that kind of power.