Recherche avancée

Médias (91)

Autres articles (42)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (6351)

  • why ffmpeg php conversion 0 bytes empty

    9 avril 2020, par user3080392

    I'm trying to convert a .wav file to .ogg with php and ffmpeg. The ogg file keeps being created as 0 bytes :

    



    <?php
$ffmpeg = "/usr/local/bin/ffmpeg";
shell_exec("$ffmpeg -y -i clip.wav clip.ogg");
?>


    



    I've tried various parameters for the ogg file, but none work. This simple conversion should work, but it doesn't.

    



    Here is the log :

    



    ffmpeg started on 2020-04-08 at 22:11:58
Report written to "ffmpeg-20200408-221158.log"
Command line:
/usr/local/bin/ffmpeg -y -i clip.wav clip.ogg -report
ffmpeg version N-71954-gbc6f84f Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
configuration: --prefix=/usr --enable-version3 --enable-gpl --enable-shared - 
-enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libvpx -- 
enable-libx264 --enable-libxvid --enable-libopencore-amrwb --enable- 
libopencore-amrnb --enable-postproc --enable-nonfree --enable-pthreads -- 
enable-x11grab --enable-libfaac --enable-libopenjpeg --enable-zlib --disable- 
doc
libavutil      54. 23.101 / 54. 23.101
libavcodec     56. 37.101 / 56. 37.101
libavformat    56. 31.102 / 56. 31.102
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 16.101 /  5. 16.101
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with 
argument '1'.
Reading option '-i' ... matched as input file with argument 'clip.wav'.
Reading option 'clip.ogg' ... matched as output file.
Reading option '-report' ... matched as option 'report' (generate a report) 
with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file clip.wav.
Successfully parsed a group of options.
Opening an input file: clip.wav.
[wav @ 0xe2fee0] Format wav probed with size=2048 and score=99
[wav @ 0xe2fee0] Before avformat_find_stream_info() pos: 44 bytes read:32768 
seeks:0
[wav @ 0xe2fee0] parser not found for codec pcm_s16le, packets or times may 
be invalid.
[wav @ 0xe2fee0] probing stream 0 pp:14
[wav @ 0xe2fee0] probing stream 0 pp:13
[wav @ 0xe2fee0] probing stream 0 pp:12
[wav @ 0xe2fee0] probing stream 0 pp:11
[wav @ 0xe2fee0] probing stream 0 pp:10
[wav @ 0xe2fee0] probing stream 0 pp:9
[wav @ 0xe2fee0] probing stream 0 pp:8
[wav @ 0xe2fee0] probing stream 0 pp:7
[wav @ 0xe2fee0] probing stream 0 pp:6
[wav @ 0xe2fee0] probing stream 0 pp:5
[wav @ 0xe2fee0] probing stream 0 pp:4
[wav @ 0xe2fee0] probing stream 0 pp:3
[wav @ 0xe2fee0] probing stream 0 pp:2
[wav @ 0xe2fee0] probing stream 0 pp:1
[wav @ 0xe2fee0] probed stream 0
[wav @ 0xe2fee0] parser not found for codec pcm_s16le, packets or times may 
be invalid.
[wav @ 0xe2fee0] All info found
[wav @ 0xe2fee0] After avformat_find_stream_info() pos: 204844 bytes 
read:213916 seeks:0 frames:50
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'clip.wav':
Duration: 00:00:01.11, bitrate: 1536 kb/s
Stream #0:0, 50, 1/48000: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 
Hz, 2 channels, s16, 1536 kb/s
Successfully opened the file.
Parsing a group of options: output file clip.ogg.
Successfully parsed a group of options.
Opening an output file: clip.ogg.
Successfully opened the file.
detected 32 logical cores
[AVFilterGraph @ 0xe25560] Error initializing threading.
[AVFilterGraph @ 0xe25560] Error creating filter 'anull'
Error opening filters!
[AVIOContext @ 0xe72180] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0xe2f560] Statistics: 213916 bytes read, 0 seeks


    


  • Error trying to stream multiple files - Invalid data found when processing input

    14 avril 2020, par xybrek

    ffmpeg -re -stream_loop -1 -i mylist.txt -f mpegts -vcodec copy -acodec copy http://localhost:8081/yoursecret

    



    mylist.txt file contains :

    



    file 'out001.ts'
file 'out002.ts'


    



    up to out327.ts

    



    Here's the output of the above command :

    



    ffmpeg version git-2020-04-03-52523b6 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200328
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 42.102 / 56. 42.102
  libavcodec     58. 77.101 / 58. 77.101
  libavformat    58. 42.100 / 58. 42.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.101 /  7. 77.101
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
mylist.txt: Invalid data found when processing input


    



    However streaming individual files works :

    



    ffmpeg -re -stream_loop -1 -i out001.ts -f mpegts -vcodec copy -acodec copy http://localhost:8081/yoursecret


    



    I've also tried but also does not work :

    



    ffmpeg -re -stream_loop -1 -i <(for %%i in (*.ts) do @echo file '%%i') -f mpegts -vcodec copy -acodec copy http://localhost:8081/yoursecret


    


  • ffmpeg crashes on crossfades between 3 clips if 2 clips coming from same input file [closed]

    14 avril 2020, par Erik

    I observed that ffmpeg 4.2.2 (macOS) crashes in particular cases of crossfades between clips, if one clip comes from file 1.dv, and two clips are cut out of file 2.dv, as shown below :

    



    ffmpeg -f lavfi -i color=black:size=720x576:duration=11:rate=25 -i 1.dv -i 2.dv -filter_complex "\
    [1:v]trim=5:10,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:st=3:type=out,setpts=expr=PTS-STARTPTS,fifo[s5];\
    [2:v]split=2[s7][s8];\
    [s7]trim=5:10,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:type=in,fade=alpha=1:d=2:st=6:type=out,setpts=expr=PTS-STARTPTS+(3/TB),fifo[s15];\
    [s8]trim=12:17,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:type=in,setpts=expr=PTS-STARTPTS+(6/TB),fifo[s22];\
    [0:v][s5]overlay=eof_action=repeat[s6];\
    [s6][s15]overlay=eof_action=repeat[s16];\
    [s16][s22]overlay=eof_action=repeat[s24];\
    [1:a]atrim=5:10,asetpts=expr=PTS-STARTPTS[s26];\
    [2:a]asplit=2[s27][s28];\
    [s27]atrim=5:10,asetpts=expr=PTS-STARTPTS[s30];\
    [s28]atrim=12:17,asetpts=expr=PTS-STARTPTS[s33];\
    [s26][s30]acrossfade=d=2[s31];\
    [s31][s33]acrossfade=d=2[s36]" \
     -map "[s24]" -map "[s36]" -ab 128k -acodec aac -crf 23 -movflags faststart -preset medium -tune film -vcodec libx264 -aspect 1024:576 out.mp4 -y


    



    The order makes a difference : if the two clips from 2.dv are used first and then the clip from 1.dv is appended, everything works fine. Also, if all clips are coming from different files.

    



    ffmpeg 3.4.6 (ubuntu 18.04) shows no issues in any case.

    



    A self-compiled ffmpeg version N-97322-gb1699f4 (commit 2020-04-13) works with short clips as above, but crashes if one of the two clips taken from 2.dv is getting longer. In my tests 1500 frames (64 sec) is OK, 1700 (68 sec) leads to a segmentation fault. That is, if you replace in the command line above :

    



      

    • [s7]trim=5:10... -> [s7]trim=0:68 and accordingly
    • 


    • [s27]atrim=5:10... -> [s27]atrim=0:68
    • 


    



    Interestingly, the length of the clip taken from 1.dv does not play a role.

    



    The ffmpeg output shows about 20 times :

    



    frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x  


    



    before it continues (seg fault case) :

    



    frame=    4 fps=0.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   24 fps=1.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   25 fps=1.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   34 fps=1.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   36 fps=2.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   39 fps=2.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   40 fps=2.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   40 fps=2.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   40 fps=1.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    



    



    success case :

    



    frame=    5 fps=0.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   42 fps=3.2 q=28.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   53 fps=3.9 q=28.0 size=       0kB time=00:00:00.36 bitrate=   2.9kbits/s speed=0.0264x    
frame=   65 fps=4.6 q=28.0 size=       0kB time=00:00:00.84 bitrate=   1.2kbits/s speed=0.0594x 
...   


    



    Slightly older versions included in the newest MacOS builds from zeranoe.com (git-2020-04-13-59e3a9a) and evermeet.cx (N-97308-g14dd0a9057-tessus, from 2020-04-12) are working nicely - also on my production cases (longer clips).

    



    Any feedback would be appreciated !