Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (20)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

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

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (5118)

  • GStreamer with MPEG-TS Video4Linux ATSC/DVB Recording

    21 juin 2013, par Dustin Oprea

    I'm having an impossible time setting up a filtergraph to read from a recording that I made from my DVB video4linux device. Any help would be vastly appreciated.

    How I made the recording :

    To tune the channel :

    azap -c ~/channels.conf "Florida"

    To record the channel :

    cat /dev/dvb/adapter0/dvr0 > /tmp/test

    This is the way that recordings must be made (I can not use any GST DVB plugins to do this for me).

    I used tstools to identify that the recording is a TS stream :

    tstools/bin$ ./stream_type ~/recordings/20130129-202049
    Reading from /home/dustin/recordings/20130129-202049
    It appears to be Transport Stream

    ...but that there are no PAT/PMT frames :

    tstools/bin$ ./tsinfo ~/recordings/20130129-202049
    Reading from /home/dustin/recordings/20130129-202049
    Scanning 10000 TS packets

    Found 0 PAT packets and 0 PMT packets in 10000 TS packets

    I was able to produce a single ES (elementary stream) stream, by running ts2es :

    tstools/bin$ ./ts2es -pid 97 ~/recordings/20130129-202049 ~/recordings/20130129-202049.es
    Reading from /home/dustin/recordings/20130129-202049
    Writing to   /home/dustin/recordings/20130129-202049.es
    Extracting packets for PID 0061 (97)
    !!! 4 bytes ignored at end of file - not enough to make a TS packet
    Extracted 219258 of 248113 TS packets

    I am able to play the ES stream (even though the video is frozen on the first frame) :

    gst-launch-0.10 filesrc location=~/recordings/20130129-202049.es ! decodebin2 ! autovideosink
    gst-launch-0.10 filesrc location=~/recordings/20130129-202049.es ! decodebin2 ! xvimagesink
    gst-launch-0.10 playbin2 uri=file:///home/dustin/recordings/20130129-202049.es

    No matter what I do, though, I can't get the original TS file to open. However, it opens in Mplayer/FFMPEG, perfectly (but not VLC). This is the output of FFMPEG :

    ffmpeg -i 20130129-202049

    ffmpeg version 0.8.5-4:0.8.5-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
     built on Jan 24 2013 18:03:14 with gcc 4.6.3
    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
    [mpeg2video @ 0x9be7be0] mpeg_decode_postinit() failure
       Last message repeated 4 times
    [mpegts @ 0x9be3aa0] max_analyze_duration reached
    [mpegts @ 0x9be3aa0] PES packet size mismatch
    Input #0, mpegts, from '20130129-202049':
     Duration: 00:03:39.99, start: 9204.168844, bitrate: 1696 kb/s
       Stream #0.0[0x61]: Video: mpeg2video (Main), yuv420p, 528x480 [PAR 40:33 DAR 4:3], 15000 kb/s, 30.57 fps, 29.97 tbr, 90k tbn, 59.94 tbc
       Stream #0.1[0x64]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    At least one output file must be specified

    This tells us that the video stream has PID 0x61 (97).

    I have been trying for a few days, so the following are only examples of a couple of attempts. I'll provide the playbin2 example first, since I know that thousands of people will respond, insisting that I just use that. It doesn't work.

    gst-launch-0.10 playbin2 uri=file:///home/dustin/recordings/20130129-202049

    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMpegTSDemux:mpegtsdemux0: Could not determine type of stream.
    Additional debug info:
    gstmpegtsdemux.c(2931): gst_mpegts_demux_sink_event (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMpegTSDemux:mpegtsdemux0:
    No valid streams found at EOS
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...

    It fails [probably] because no PID has been specified with which to find the video (the "EOS" error, I think).

    Naturally, I tried the following to start by demuxing the TS format. I believe it's the "es-pids" property that receives the PID in the absence of PMT information (which tstools said there weren't any, above), but I tried "program-number", too, just in case. gst-inspect indicates that one is hex and the other is decimal :

    gst-launch-0.10 -v filesrc location=20130129-202049 ! mpegtsdemux es-pids=0x61 ! fakesink
    gst-launch-0.10 -v filesrc location=20130129-202049 ! mpegtsdemux program-number=97 ! fakesink

    Output :

    gst-launch-0.10 filesrc location=20130129-202049 ! mpegtsdemux es-pids=0x61 ! fakesink
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0: Could not determine type of stream.
    Additional debug info:
    gstmpegtsdemux.c(2931): gst_mpegts_demux_sink_event (): /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0:
    No valid streams found at EOS
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...
    dustin@dustinmicro:~/recordings$ gst-launch-0.10 -v filesrc location=20130129-202049 ! mpegtsdemux es-pids=0x61 ! fakesink
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0: Could not determine type of stream.
    Additional debug info:
    gstmpegtsdemux.c(2931): gst_mpegts_demux_sink_event (): /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0:
    No valid streams found at EOS
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...
    dustin@dustinmicro:~/recordings$ gst-launch-0.10 -v filesrc location=20130129-202049 ! mpegtsdemux es-pids=0x61 ! fakesink
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0: Could not determine type of stream.
    Additional debug info:
    gstmpegtsdemux.c(2931): gst_mpegts_demux_sink_event (): /GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0:
    No valid streams found at EOS
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...

    However, when I try mpegpsdemux (for program streams (PS), as opposed to transport streams (TS)), I get further :

    gst-launch-0.10 filesrc location=20130129-202049 ! mpegpsdemux ! fakesink

    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `position != -1' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_mini_object_ref: assertion `mini_object != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_pad_push_event: assertion `event != NULL' failed
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `position != -1' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_mini_object_ref: assertion `mini_object != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_pad_push_event: assertion `event != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `position != -1' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_mini_object_ref: assertion `mini_object != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_pad_push_event: assertion `event != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `position != -1' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_mini_object_ref: assertion `mini_object != NULL' failed

    (gst-launch-0.10:14805): GStreamer-CRITICAL **: gst_pad_push_event: assertion `event != NULL' failed


    ...


    Got EOS from element "pipeline0".
    Execution ended after 1654760008 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

    I'll still get the same problem whenever I use the mpegtsdemux, even if it follows mpegpsdemux, above.

    I don't understand this, since I haven't even picked a PID yet.

    What am I doing wrong ?

    Dustin

  • Restoring corrupted video after recovery

    22 août 2019, par Harold.Demure

    I have recently recovered the content of an old drive of mine using photorec.

    To my surprise, photorec recovered a lot of files with non-video extensions (.sqlite, .apple, .pdf, .torrent...) that contain fragments of video. I can see these fragments only using mplayer/mencoder (quicktime and vlc cannot). Some of the files are even hundreds of megabyte large, but mplayer only shows me a few seconds of the video.

    Is there any script/data carving tool that I can use to see if I can recover more video fragments from these files ? I am not afraid of trying solutions that require some coding or manual inspection (e.g., search for headers via hex editors).

    Thank you for your help, any suggestion is highly appreciated.
    Harol.

  • need help on solving my ffmpeg command line

    3 avril 2019, par DRMTV

    i create a small bash script to encode 1080p video , the video will be added with watermark at bottom left and i need to add a black padding on top and bottom

    i tried several way but still no luck , i tried -vf and yes it worked but cant use padding and watermark together , and suggest use filter_complex

    if i use this code directly without bash script it work

    time ffmpeg -hide_banner -i transformers.mp4 -i transformers.ass -loop 1 -i watermark.png -loop 1 -i logo.png -map 0:0 -map 0:1 -filter_complex "[0:0]scale=(iw*sar)*min(1920/(iw*sar)\,800/ih):ih*min(1920/(iw*sar)\,800/ih), pad=1920:800:(1920-iw*min(1920/iw\,800/ih))/2:(800-ih*min(1920/iw\,800/ih))/2;ass=transformers.ass[FID1];[FID1][2:v]overlay=10:${WATERMARKPOSITION}:repeatlast=0:enable='between(t,300,600)'[FID3];[3:v]fade=in:st=1200:d=1.6:alpha=1,fade=out:st=107998:d=1.6:alpha=1[FID6];[FID3][FID6]overlay=10:5:repeatlast=0:enable='between(t,1200,187922)'" -c:v libx264 -minrate 1800k -maxrate 1800k -bufsize 3600k -profile:v high -c:a aac -b:a 128k -profile:a aac_main -movflags faststart -strict -2 -f mp4 -y "transformers.mp4"

    but when i include it with my bash script i got this error ,

    [libx264 @ 0x2a063e0] height not divisible by 2 (300x39)
    Output #0, mp4, to '/movie/Paddy/output/Transformers.Age.of.Extinction.2014.1080p.BluRay.H264.AAC-RARBG.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       comment         : Transformers.Age.of.Extinction.2014.1080p.BluRay.H264.AAC-RARBG
       encoder         : Lavf57.71.100
       title           : Transformers Age of Extinction 2014 1080p BluRay H264 AAC-RARBG - Visit us @ Juraganfilm.COM
       Stream #0:0: Video: h264 (libx264), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], q=-1--1, max. 2300 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc
       Metadata:
         encoder         : Lavc56.60.100 libx264
       Stream #0:1: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 25 fps
       Metadata:
         encoder         : Lavc56.60.100 libx264
       Stream #0:2(eng): Audio: aac, 0 channels, 128 kb/s (default)
       Metadata:
         creation_time   : 2017-12-19 07:58:39
         handler_name    : SoundHandler
         encoder         : Lavc56.60.100 aac
    Stream mapping:
     Stream #0:0 (h264) -> scale (graph 0)
     Stream #0:0 (h264) -> overlay:overlay (graph 0)
     Stream #2:0 (png) -> ass (graph 0)
     Stream #3:0 (png) -> fade (graph 0)
     pad (graph 0) -> Stream #0:0 (libx264)
     overlay (graph 0) -> Stream #0:1 (libx264)
     Stream #0:1 -> #0:2 (aac (native) -> aac (native))
    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

    and below is the script i have been working on

    output="/movie/output"

    FILESDIR=`find $PWD -type f -regex ".*\.\(mp4\|mkv\|avi\)" | sed 's@.*/@@' | sort -n`
    for video in $FILESDIR
    do

    MOVIETITLE=${video%.*}
    INFOVID=${MOVIETITLE//./ }
    BITRATE="${HEIGHT}"
    WIDTH=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ${video} 2>&1 | sed -e 's|\[.*||g' | sed ':a;N;$!ba;s/\n//g' | sed -e 's|x.*||g')
    HEIGHT=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ${video} | sed -e 's/.*x//')
    WATERMARKPOSITION=$(expr $HEIGHT - 50)
    VIDEOMAP=$(ffmpeg -i $video 2>&1 | grep "Stream #" | grep Video | sed -e "s|.*\#||g" | sed -e "s|: Video.*||g" | sed -e "s|(.*||g")
    AUDIOMAP=$(ffmpeg -i $video 2>&1 | grep "Stream #" | grep Audio | sed -e "s|.*\#||g" | sed -e "s|: Audio.*||g" | sed -e "s|(.*||g")
    MAXRATE=$(expr $BITRATE + 500)
    BUFFSIZE=$(expr $MAXRATE \* 2)

    time ffmpeg -hide_banner -i $video -i $MOVIETITLE.ass -loop 1 -i $WATERMARK -loop 1 -i $LOGO -map ${VIDEOMAP} -map ${AUDIOMAP} -filter_complex "[${VIDEOMAP}]scale=(iw*sar)*min(${WIDTH}/(iw*sar)\,${HEIGHT}/ih):ih*min(${WIDTH}/(iw*sar)\,${HEIGHT}/ih), pad=${WIDTH}:${HEIGHT}:(${WIDTH}-iw*min(${WIDTH}/iw\,${HEIGHT}/ih))/2:(${HEIGHT}-ih*min(${WIDTH}/iw\,${HEIGHT}/ih))/2;ass=$MOVIETITLE.ass[FID1];[FID1][2:v]overlay=10:${WATERMARKPOSITION}:repeatlast=0:enable='between(t,300,600)'[FID3];[3:v]fade=in:st=1200:d=1.6:alpha=1,fade=out:st=107998:d=1.6:alpha=1[FID6];[FID3][FID6]overlay=10:5:repeatlast=0:enable='between(t,1200,187922)'" -c:v libx264 -minrate ${BITRATE}k -maxrate ${MAXRATE}k -bufsize ${BUFFSIZE}k -profile:v high -c:a aac -b:a 128k -profile:a aac_main -movflags faststart -strict -2 -f mp4 -y "${output}/$MOVIETITLE.mp4"
    done

    has been working all day and still i cant make it to work.

    can someone guide me which part is wrong ?