Newest 'ffmpeg' Questions - Stack Overflow

http://stackoverflow.com/questions/tagged/ffmpeg

Les articles publiés sur le site

  • ffmpeg mp4 x264 encoding -> playback causes "pending" in both crome and IE causing 10+ seconds delay

    29 septembre 2014, par user1978645

    After encoding a video to mp4(x264 with aac); I have the following weird behaviour in both crome and IE:

    Im serving the content from https with spdy enables.

    It takes up to 30 seconds before the video is actually played, in the mean time i cannot reload the page it shows up as "pending". (even after i have visual on the video sometimes it takes 10-20 seconds before i can actually reload the page, or navigate to another url on the same domain)

    After looking at the "network" tab in developer tools, i see the following requests for 1 page/video:

    Path        Method Status   Type         Initiator   Size/content  Time/latency
    video.mp4   GET    206 OK   video/mp4    other       32.3KB/32.0kb  600ms/339MS 
    video.mp4   GET    206 OK   video/mp4    other       123kb/123b     21.85s/21.46s
    video.mp4   GET    206 OK   video/mp4    other       7.1MB/7.2MB    1.4min/2ms
    

    I tried to isolate the problem, When i use an mp4 video from the internet (for example the demo video of jplayer) and load it from my server, it loads rapidly, without delays.

    So it makes me think the problem lies within the encoding. I tried various things. FFmpeg:

    • csr 69 (low quality)

    • various options

    HTML:

    • preload="none"

    • javascript loading/playing of the movie

    • type='mp4/video'

    • no posterimage

    But i cannot resolve the problem. Does anyone have a clue what is causing this?

    I have a download speed of 300kb/s and the movie is 6MB.

    After the video starts, the video isn't fully buffered, so i wonder: What is the html5 videoplayer doing all this time?

    The problem also blocks the connections. When i press "F5" in both chrome and IE the page beeing reloaded comes up in the network tab as "pending" and it can take 10 to 20 seconds before the page actually reloads.

    ffmpeg command: (i used various commands but this is just 1 example which causes the problem)

    /root/bin/ffmpeg    -threads 1 -y  -i /home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936  -threads 0 -codec:a libfdk_aac -b:a 128k  -vf "scale=-2:320" -preset veryslow -vcodec h264 -acodec aac -strict -2  /home/flirtzo/public_html/userfiles/files/b2/72/695f4eba95169a3f29564bf9571c703b05f1b5974f5156da633eb139c80a1575452e2858dfc61cc82bfca02d2b156aa64d4503695756481dc2a5d1c673a4cdea-94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4
    

    Output:

    ffmpeg version git-2014-04-16-c150e2c Copyright (c) 2000-2014 the FFmpeg developers
      built on Sep 28 2014 21:08:17 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
      configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-        ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-nonfree -    -enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-    libx264
      libavutil      52. 76.100 / 52. 76.100
      libavcodec     55. 58.103 / 55. 58.103
      libavformat    55. 37.100 / 55. 37.100
      libavdevice    55. 13.100 / 55. 13.100
      libavfilter     4.  4.100 /  4.  4.100
      libswscale      2.  6.100 /  2.  6.100
      libswresample   0. 18.100 /  0. 18.100
      libpostproc    52.  3.100 / 52.  3.100
    Input #0, mpeg, from         '/home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936':
      Duration: 00:00:25.97, start: 0.340078, bitrate: 29004 kb/s
        Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 200:219 DAR 880:657], 1150     kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
        Stream #0:1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 224 kb/s
    [libx264 @ 0x2b189c0] using SAR=1199/1314
    [libx264 @ 0x2b189c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x2b189c0] profile High, level 1.3
    [libx264 @ 0x2b189c0] 264 - core 142 r2 d6b4e63 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 -     http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex     subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0     deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=1 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=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0     rc_lookahead=20 rc=crf mbtree=1 crf=51.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to     '/home/flirtzo/public_html/userfiles/files/b2/72/695f4eba95169a3f29564bf9571c703b05f1b5974f5156da633e    b139c80a1575452e2858dfc61cc82bfca02d2b156aa64d4503695756481dc2a5d1c673a4cdea-    94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4':
      Metadata:
        encoder         : Lavf55.37.100
        Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x218 [SAR 1199:1314        DAR 880:657], q=-1--1, 30k tbn, 29.97 tbc
        Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s
    Stream mapping:
      Stream #0:0 -> #0:0 (mpeg1video -> libx264)
      Stream #0:1 -> #0:1 (mp2 -> aac)
    Press [q] to stop, [?] for help
    frame=16127 fps=786 q=-1.0 Lsize=   10559kB time=00:08:58.12 bitrate= 160.7kbits/s dup=12 drop=0
    video:1586kB audio:8410kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:     5.638589%
    [libx264 @ 0x2b189c0] frame I:109   Avg QP:50.58  size:   494
    [libx264 @ 0x2b189c0] frame P:9537  Avg QP:51.00  size:   138
    [libx264 @ 0x2b189c0] frame B:6481  Avg QP:51.00  size:    40
    [libx264 @ 0x2b189c0] consecutive B-frames: 21.8% 72.1%  5.4%  0.7%
    [libx264 @ 0x2b189c0] mb I  I16..4: 46.1% 53.9%  0.0%
    [libx264 @ 0x2b189c0] mb P  I16..4:  6.0%  6.1%  0.0%  P16..4: 12.7%  1.1%  0.1%  0.0%  0.0%        skip:74.1%
    [libx264 @ 0x2b189c0] mb B  I16..4:  0.1%  0.1%  0.0%  B16..8:  6.3%  0.0%  0.0%  direct: 0.7%      skip:92.9%  L0:38.6% L1:61.2% BI: 0.2%
    [libx264 @ 0x2b189c0] 8x8 transform intra:50.8% inter:85.6%
    [libx264 @ 0x2b189c0] coded y,uvDC,uvAC intra: 5.9% 39.5% 0.1% inter: 0.1% 1.0% 0.0%
    [libx264 @ 0x2b189c0] i16 v,h,dc,p: 56% 30%  7%  7%
    [libx264 @ 0x2b189c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 11% 62%  3%  3%  3%  3%  2%  2%
    [libx264 @ 0x2b189c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19%  5% 73%  2%  0%  0%  0%  0%  2%
    [libx264 @ 0x2b189c0] i8c dc,h,v,p: 97%  1%  2%  0%
    [libx264 @ 0x2b189c0] Weighted P-Frames: Y:5.5% UV:2.7%
    [libx264 @ 0x2b189c0] ref P L0: 64.8% 35.2%
    [libx264 @ 0x2b189c0] ref B L0: 75.2% 24.8%
    [libx264 @ 0x2b189c0] ref B L1: 99.3%  0.7%
    [libx264 @ 0x2b189c0] kb/s:24.13
    ffmpeg version git-2014-04-16-c150e2c Copyright (c) 2000-2014 the FFmpeg developers
      built on Sep 28 2014 21:08:17 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
      configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-    ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-nonfree -    -enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-    libx264
      libavutil      52. 76.100 / 52. 76.100
      libavcodec     55. 58.103 / 55. 58.103
      libavformat    55. 37.100 / 55. 37.100
      libavdevice    55. 13.100 / 55. 13.100
      libavfilter     4.  4.100 /  4.  4.100
      libswscale      2.  6.100 /  2.  6.100
      libswresample   0. 18.100 /  0. 18.100
      libpostproc    52.  3.100 / 52.  3.100
    Input #0, mpeg, from     '/home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936':
      Duration: 00:00:25.97, start: 0.340078, bitrate: 29004 kb/s
        Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 200:219 DAR 880:657], 1150         kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
        Stream #0:1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 224 kb/s
    [libx264 @ 0x300d9c0] using SAR=200/219
    [libx264 @ 0x300d9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x300d9c0] profile High, level 2.2
    [libx264 @ 0x300d9c0] 264 - core 142 r2 d6b4e63 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 -                     http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh         subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=0     deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0     decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2 b_bias=0     direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0     rc_lookahead=60 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to     '/home/flirtzo/public_html/userfiles/files/b2/72/73d4a3245c0b0e174ab7ce0f872ba3f649f8b93f73a6deeab364    4a994009d73638ce61aecc7dc2e0250c4e74ff2d9a4d479ed35cef26b3f6e1a77e8bf5938518-    94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4':
      Metadata:
        encoder         : Lavf55.37.100
        Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 352x240 [SAR 200:219     DAR 880:657], q=-1--1, 30k tbn, 29.97 tbc
        Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s
    Stream mapping:
      Stream #0:0 -> #0:0 (mpeg1video -> libx264)
      Stream #0:1 -> #0:1 (mp2 -> aac)
       Press [q] to stop, [?] for help
    frame=16127 fps= 88 q=-1.0 Lsize=   29190kB time=00:08:58.12 bitrate= 444.4kbits/s dup=12 drop=0
    video:20221kB audio:8410kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:     1.954086%
    [libx264 @ 0x300d9c0] frame I:73    Avg QP:24.31  size:  8024
    [libx264 @ 0x300d9c0] frame P:4399  Avg QP:26.97  size:  2600
    [libx264 @ 0x300d9c0] frame B:11655 Avg QP:32.51  size:   745
    [libx264 @ 0x300d9c0] consecutive B-frames:  3.8%  5.0% 27.2% 18.4%  8.4% 33.9%  1.7%  0.7%  0.9%
    [libx264 @ 0x300d9c0] mb I  I16..4: 10.8% 68.5% 20.7%
    [libx264 @ 0x300d9c0] mb P  I16..4:  2.9%  7.5%  0.8%  P16..4: 45.1% 18.4% 12.4%  0.5%  0.1%        skip:12.3%
    [libx264 @ 0x300d9c0] mb B  I16..4:  0.6%  1.3%  0.1%  B16..8: 40.1%  8.7%  1.7%  direct: 2.1%      skip:45.5%  L0:47.2% L1:41.7% BI:11.1%
    [libx264 @ 0x300d9c0] 8x8 transform intra:66.7% inter:76.7%
    [libx264 @ 0x300d9c0] direct mvs  spatial:99.9% temporal:0.1%
    [libx264 @ 0x300d9c0] coded y,uvDC,uvAC intra: 60.3% 75.8% 16.4% inter: 17.3% 16.8% 0.6%
    [libx264 @ 0x300d9c0] i16 v,h,dc,p: 16% 27% 11% 47%
    [libx264 @ 0x300d9c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 13% 18%  6%  9%  9% 11%  9% 11%
    [libx264 @ 0x300d9c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 15%  7%  7% 14% 14% 13%  8% 10%
    [libx264 @ 0x300d9c0] i8c dc,h,v,p: 26% 32% 20% 22%
    [libx264 @ 0x300d9c0] Weighted P-Frames: Y:10.1% UV:6.9%
    [libx264 @ 0x300d9c0] ref P L0: 40.6% 12.1% 10.0%  5.2%  5.2%  4.7%  4.6%  3.0%  2.5%  2.1%  1.9%      1.8%  1.7%  1.7%  1.6%  1.3%
    [libx264 @ 0x300d9c0] ref B L0: 71.4%  5.6%  3.2%  3.0%  3.1%  2.8%  2.5%  1.8%  1.3%  1.0%  1.1%      1.2%  1.0%  0.7%  0.5%
    [libx264 @ 0x300d9c0] ref B L1: 96.3%  3.7%
    [libx264 @ 0x300d9c0] kb/s:307.82
    
  • sdl 1.2 & ffmpeg 1.09 flickering when overlays a picture during a video is playing

    29 septembre 2014, par Alberto Martín

    Iḿ developing a media player using SDL1.2 & ffmpeg 1.09.(C programming over VS2010, win7)

    I have flickering when i try to overlay an image in the screen during the video is playing.(Like full screen buttons or an ad).

    To display the video i'm creating overlay using SDL_CreateYUVoverlay function. Then I set the rectangle and call SDL_DisplayYUVOverlay.

    I'm trying to show a picture while the video is playing. For showing the picture i tried YUV overlays(SDL_CreateYUVoverlay + SDL_DisplayYUVOverlay ) and also with surfaces(SDL_BlitSurface + SDL_UpdateRect or SDL_Flip) but it always flickers.

    I use ffplay.c as an example.

    I read something about merge two YUV overlays in one (2 input to 1 output), but i could not found information or examples about that.

    Does anyone knows how to do this?

  • Compilation error when compiling libvpx for FFMPEG

    29 septembre 2014, par Flock Dawson

    I'm compiling FFMPEG on my 64bit Ubuntu 14 machine. Everything compiled well, except for the libvpx library, which keeps throwing errors:

    [AS] vp9/common/x86/vp9_subpixel_8t_ssse3.asm.o
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:856: warning: label alone on a line without a colon might be in error
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:897: warning: label alone on a line without a colon might be in error
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:970: warning: label alone on a line without a colon might be in error
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:1002: warning: label alone on a line without a colon might be in error
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:340: error: invalid combination of opcode and operands
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:457: error: invalid combination of opcode and operands
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:897: error: invalid combination of opcode and operands
    vp9/common/x86/vp9_subpixel_8t_ssse3.asm:1002: error: invalid combination of opcode and operands
    make[1]: *** [vp9/common/x86/vp9_subpixel_8t_ssse3.asm.o] Error 1
    make: *** [.DEFAULT] Error 2
    

    I followed this guide: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu I don't know what this error means, but read somewhere that compiling libvpx with NASM is broken, but I don't know how to compile it otherwise. Installing version 1.2 or 1.1 makes no difference whatsoever. Any ideas?

  • Handling correctly the ffmpeg & ffprobe with php

    29 septembre 2014, par cocco

    Handling correctly the ffmpeg & ffprobe with php

    maybe not relevant final goals:

    1. upload clip with ajax
    2. get ajax info from ffprobe using php as json executing ffprobe once only (no ffmpeg)
    3. handle all calculations with javascript
    4. maybe an extra php script tool that can create gifs, extract frames(thumbs), or a video grid preview
    5. when rdy ajax the conversion info to the final php conversion script executing ffmpeg once only (just the final ffmpeg string.).

    I'm trying to write my own ffmpeg local web video editor that converts all formats to mp4 automatically. As mp4 is the most compatible container now and the h264+aac/+ac3 is also one of the best compressions. I also want to be able to cut, crop, resize, remove streams, add streams and more. I'm stuck on some simple problems:

    1. HOW TO GET THE INFO?

    I'm using ffprobe to get the file information as json with the following command:

    ffprobe -v quiet -print_format json -show_format -show_streams -show_packets '.$video
    

    this gives you a lot of information, but some relevant stuff is not always present. I need the duration (in milliseconds),the fps (as a float) and the total frames (as an integer).

    i know that these values can sometimes be found inside this array:

    format.duration //Total duration
    streams[0].duration //Video duration
    streams[1].duration //Audio duration
    
    streams[0].avg_frame_rate //Average framerate
    streams[0].r_frame_rate //Video framerate
    
    streams[0].nb_frames //Total frames
    

    but most of the time nb_frames is missing, also avg_frame_rate differs from r_frame_rate, which is also not always available.

    I know that i could use multiple commands to increase the chance to get the correct values.. but srsly???

    //fps
    ffmpeg -i INPUT 2>&1 | sed -n "s/.*, \(.*\) fp.*/\1/p" 
    //duration
    ffmpeg -i INPUT 2>&1 | awk '/Duration/ {split($2,a,":");print a[1]*3600+a[2]*60+a[3]}'
    //frames
    ffmpeg -i INPUT -vcodec copy -f rawvideo -y /dev/null 2>&1 | tr ^M '\n' | awk '/^frame=/ {print $2}'|tail -n 1
    

    I don't want to execute ffmpeg 3 times to get this information; I'd prefer to just use ffprobe.

    So... is there an elegant way to get the extra info that is not always present inside the ffprobe output (fps, frames, duration)???

    In the preview i want to be able to jump correctly to a specific frame (NOT TIME). if the above parameters are aviable i can do that using this command.

    ffmpeg -i INPUT -vf 'select=gte(n\,FRAMENUMBER)' -vframes 1 -f image2 OUTPUT
    

    using the above command by setting the framenumber to the last frame always returns a black frame. if there are 50 frames (for example) the range is 1-50 -- correct? Frame 50 is black, frame 1 is ok, frame 0 returns an error...


    2. WHILE READING THE LOG HOW TO SKIP ERRORS AND DETERMINE IF THE CONVERSION IS FINISHED?

    I'm able to upload one single video per time (per page) and i can read the current progress from the ffmpeg generated output log until i don't close the page. more control/multiple conversions would be nice.

    i'm reading the last line of the log with a custom tail function but as this is a log that also includes errors i don't always get a nice line containing the desidered values. btw to check if the progress is complete i check if the last line CONTAINS the WORD frame ....

    How can i find out when the conversion progress is finished?

    maybe a way to delete the log with ffmpeg command??And skip/log the errors??

    i'm using server sent events to read the log... here is the php code

    <?php
    setlocale(LC_CTYPE, "en_US.UTF-8");
    function tailCustom($filepath,$lines=1,$adaptive=true){
     // a custom function to get the last line of a textfile.
    }
    function send($data){
     echo "id: ".time().PHP_EOL;
     echo "data: ".$data.PHP_EOL;
     echo PHP_EOL;
     ob_flush();
     flush();
    }
    header('Content-Type: text/event-stream');
    header('Cache-Control: no-cache');
    while(true){
     send(tailCustom($_GET['log'].".log"));
     sleep(1);
    }
    ?>
    

    And here the SSE js

    function startSSE(fn){
     sse=new EventSource("ffmpegProgress.php?log="+encodeURIComponent(fn));
     sse.addEventListener('message',conversionProgress,false);
    }
    function conversionProgress(e){
     if(e.data.substr(0,6)=='frame='){
      inProgress=true;
      var x=e.data.match(/frame=\s*(.*?)\s*fps=\s*(.*?)\s*q=\s*(.*?)\s*size=\s*(.*?)\s*time=\s*(.*?)\s*bitrate=\s*(.*?)\s*$/);
      x.shift();x={frame:x[0]*1,fps:x[1]*1,q:x[2],size:x[3],time:x[4],bitrate:x[5]};
    var elapsedTime = ((new Date().getTime()) - startTime);
    var chunksPerTime = timeString2ms(x.time) / elapsedTime;
    var estimatedTotalTime = duration / chunksPerTime;
    var timeLeftInSeconds = Math.abs(elapsedTime-(estimatedTotalTime*1000));
    var withOneDecimalPlace = Math.round(timeLeftInSeconds * 10) / 10;
      conversion.innerHTML='Time Left: '+ms2TimeString(timeLeftInSeconds).split('.')[0]+'
    '+ 'Time Left2: '+(ms2TimeString(((frames-x.frame)/x.fps)*1000)+(timeString2ms(x.time)/(duration*1000)*100|0)).split('.')[0]+'
    '+ 'Estimated Total: '+ms2TimeString(estimatedTotalTime*1000).split('.')[0]+'
    '+ 'Elapsed Time: '+ms2TimeString(elapsedTime).split('.')[0]; }else{ if(inProgress){ sse.removeEventListener('message',conversionProgress,false); sse.close(); sse=null; conversion.textContent='Finished in '+ms2TimeString((new Date().getTime()) - startTime).split('.')[0]; //delete log/old file?? inProgress=false; } } }

    EDIT

    HERE IS A SAMPLE OUTPUT after detecting h264 codec in a m2ts with ac3 audio

    As most devices can already read h264 i just need to convert the audio in aac and copy the same audio AC3 as second track. and put everything inside a mp4 container. So that i have a Android/chrome/ios & more browsers compatible file.

    $opt="-map 0:0 -map 0:1 -map 0:1 -c:v copy -c:a:0 libfdk_aac -metadata:s:a:0 language=ita -b:a 128k -ar 48000 -ac 2 -c:a:1 copy -metadata:s:a:1 language=ita -movflags +faststart";
    
    $i="in.m2ts";
    $o="out.mp4";
    $t="title";
    $y="2014";
    $progress="nameoftheLOG.log";
    
    $cmd="ffmpeg -y -i ".escapeshellarg($i)." -metadata title=".$t." -metadata date=".$y." ".$opt." ".$o." null >/dev/null 2>".$progress." &";
    

    if you have any questions about the code or want to see more code just ask...

  • FFProbe and Specific codec profile name

    29 septembre 2014, par egekhter

    I'm trying to re-create the XML structure for a .plist file produced by mediafilesegmenter from HLS tools, specifically the part:

    videoCodecInfo
    avc1.4d401f
    

    Using:

    ffprobe -i video.mp4 -print_format json -show_format -show_streams
    

    The values mapping to videoCodecInfo are not supplied, only Profile and Level (in the case of video).

    Aside from creating a custom dictionary and querying ffprobe values to find a matching string like "avc1.4d401f", are there any other ways to get this information?