Recherche avancée

Médias (91)

Autres articles (111)

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

  • Initialisation de MediaSPIP (préconfiguration)

    20 février 2010, par

    Lors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
    Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
    Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
    Dans un premier temps il active ou désactive des options de SPIP qui ne le (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (10529)

  • Elixir long running background task doesn't complete, sometimes crashes

    29 mars 2018, par Kulix

    As a little bit of background, I have an endpoint that is responsible for video upload. What I want to do, is copy the video file to a temporary location from the request, and spin up an asynchronous task (ffmpeg shell process) to transcode that video in the background so that my endpoint can return a 200 in a timely manner, and the response does not wait for ffmpeg to finish transcoding that video.

    Here is my code from the controller.

    def create(conn, %{"file" => file ... })
       uuid = Video.uuid()
       tmp_path = Application.get_env(:myapp, :video_tmp_path) <> "/" <> uuid
       :ok = File.cp(file.path, tmp_path)
       VideoService.process(tmp_path, final_path)

    The inside of VideoService looks like the following.

    defmodule MyApp.Services do
     defmodule VideoService do
       def process(tmp_path, final_path) do
         Task.start_link fn ->
           System.cmd("ffmpeg", ["-i", tmp_path, final_path, "-hide_banner"])
           File.rm(tmp_path)
         end
       end
     end
    end

    The problem I am having here is that no matter what, nothing past the System.cmd("ffmpeg") call executes in the VideoService, and sometimes the System.cmd call doesn’t even spin up an ffmpeg process. Am I doing something wrong here ? What I need is a way to spin this ffmpeg shell process out in the background from the controller / service and respond with a 200 on video upload. Thanks for help in advance. I am new to elixir / OTP, so I’m sure I’m doing something stupid.

    I also randomly see the following error

    erl_child_setup: failed with error 32 on line 240

  • ffmpeg make slideshow with images and videos

    6 avril 2020, par atticus

    I'm trying to make a slideshow with ffmpeg that should contain videos and images. Since as far as I know, ffmpeg cannot do this in one step (which would be of course the preferable step)
I'm breaking it up to make a slideshow of some images and concatenate the resulting video with another video.

    



    The problem with this is that when making a slideshow with ffmpeg (like described here : https://trac.ffmpeg.org/wiki/Slideshow) the framerate is adjusted to make it possible to view one image for a longer time.

    



    Now I've got multiple videos with different framerates to concatenate which is no good (I didn't got it working).

    



    I also tried to make the slideshow with a higher framerate (with -vf fps=25) but I didn't got this working.

    



    (since I have images from different locations/not all images of the current directory should be concatenated at once I really need to use the concat demuxer (as far as I know))

    



    Does someone know how to do this right ?

    




    



    What I already tried :

    



    ffmpeg -safe 0 -f concat -i tmp -vsync vfr -pix_fmt yuv420p -vf fps=25  output.mkv


    



    with a file tmp looking like this : (see the link above for reference)

    



    file /path/to/file1.JPG
duration 2
file /path/to/file2.JPG
duration 2
file /path/to/file2.JPG


    



    This gives me a video which somehow only the first image.

    




    


    ffmpeg -safe 0 -f concat -i tmp -vsync vfr -pix_fmt yuv420p output.mkv


    



    with a file tmp looking like this : (see the link above for reference)

    



    file /path/to/file1.JPG
duration 2
file /path/to/file2.JPG
duration 2
file /path/to/file2.JPG


    



    This gives me a file which shows all images at the right rate (everything right up to now) but I'm unable to concatenate it with the right video (25fps) with ffmpeg -safe 0 -f concat -i <(printf "file ${PWD}/%s\n" "output.mkv" "video.mp4") -c copy out.mkv

    




    



    EDIT : The main problem is the concatenation of these two Files :

    



    $ mediainfo video2.MTS
General
ID                                       : 1 (0x1)
Complete name                            : video2.MTS
Format                                   : MPEG-TS
File size                                : 8.95 MiB
Duration                                 : 8 s 240 ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 9 024 kb/s
FileExtension_Invalid                    : ts m2t m2s m4t m4s tmf ts tp     trp ty

Video
ID                                       : 256 (0x100)
Menu ID                                  : 1 (0x1)
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : 27
Duration                                 : 8 s 320 ms
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Writing library                          : x264 core 159 r2991 1771b55
Encoding settings                        : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

Audio
ID                                       : 257 (0x101)
Menu ID                                  : 1 (0x1)
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low         Complexity
Format version                           : Version 4
Muxing mode                              : ADTS
Codec ID                                 : 15-2
Duration                                 : 8 s 192 ms
Bit rate mode                            : Variable
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Delay relative to video                  : -21 ms

Menu
ID                                       : 4096 (0x1000)
Menu ID                                  : 1 (0x1)
Duration                                 : 8 s 240 ms
List                                     : 256 (0x100) (AVC) / 257         (0x101) (AAC)
Service name                             : Service01
Service provider                         : FFmpeg
Service type                             : digital television


    



    and

    



    $ mediainfo output.mkv
General
Unique ID                                :     28406040384100140874396026026809692875 (0x155ECDEBB2C5FEFE07B31D86D8B512CB)
Complete name                            : output.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 10.2 MiB
Duration                                 : 6 s 83 ms
Overall bit rate                         : 14.0 Mb/s
Writing application                      : Lavf58.29.100
Writing library                          : Lavf58.29.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L6
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 6 s 63 ms
Width                                    : 5 184 pixels
Height                                   : 3 888 pixels
Display aspect ratio                     : 4:3
Frame rate mode                          : Variable
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Writing library                          : x264 core 159 r2991 1771b55
Encoding settings                        : cabac=1 / ref=3 /     deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 /     psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Default                                  : Yes
Forced                                   : No

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low         Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 6 s 83 ms
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Writing library                          : Lavc58.54.100 aac
Default                                  : Yes
Forced                                   : No


    


  • No output when creating an RTMP stream from an RTP stream with FFmpeg

    28 août 2021, par Simon S

    I am building a service that needs to convert RTP streams into HLS streams. The requirements recently shifted, and I now have to create an RTMP stream from the RTP stream and then convert the RTMP to HLS using two separate FFmpeg processes. The problem is that the RTP to RTMP process doesn't actually output anything to the specified RTMP URL.

    


    Going directly from RTP to HLS with the following command (some options removed for brevity) works as expected :

    


    ffmpeg -f sdp \
       -protocol_whitelist file,udp,rtp \
       -i example.sdp \
       -g 2 \
       -hls_time 2.0 \
       -hls_list_size 5 \
       -vcodec libx264 \
       -acodec aac \
       -f hls chunks/test-master.m3u8



    


    However, converting RTP to RTMP with the following command yields no output, nor does it seem to be receiving any input despite the use of an identical SDP file :

    


    ffmpeg -f sdp \
       -protocol_whitelist pipe,udp,rtp \
       -i example.sdp \
       -g 2 \
       -vcodec libx264 \
       -acodec aac \
       -f flv rtmp://localhost/test-stream



    


    This is an example of what the SDP file looks like :

    


    v=0
o=- 0 0 IN IP4 127.0.0.1
s=Test
c=IN IP4 127.0.0.1
t=0 0
m=audio 37000 RTP/AVPF 97
a=rtpmap:97 opus/48000/2
a=fmtp:97 minptime=10;useinbandfec=1
m=video 37002 RTP/AVPF 96
a=rtpmap:96 H264/90000
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001E


    


    MediaSoup generates the RTP stream, and the ports and host match up. I've verified that there is actually a stream of data coming through the ports in question using nc. There are no error messages. Am I missing something obvious here ?