phpvideotoolkit-v2 icon indicating copy to clipboard operation
phpvideotoolkit-v2 copied to clipboard

%timecode in extractSegment()

Open cassianotartari opened this issue 10 years ago • 0 comments

Hello!

I'm here trying to understand why the output file is badly formated when I try to use %timecode in output file. The test code:

try {
                $path = "/var/www/html/MyProject/app/../web/medias/original/2014_11/BigBuckBunny_320x180.mp4";
                var_dump($path);
                $config = new \PHPVideoToolkit\Config(array(
                    'temp_directory' => './tmp',
                    'ffmpeg' => '/usr/bin/ffmpeg',
                    'ffprobe' => '/home/cassiano/bin/ffprobe',
                    'yamdi' => '/usr/bin/yamdi',
                    'qtfaststart' => '/usr/local/bin/qt-faststart',
                ));
                $video = new Video($path, $config);
                $output_format = new VideoFormat_Mp4(Format::OUTPUT, $config);
                $process = $video->extractSegment(new Timecode(0, Timecode::INPUT_FORMAT_SECONDS), new Timecode(209.453, Timecode::INPUT_FORMAT_SECONDS))
                                ->save('./output/big_buck_bunny_%timecode.mp4', $output_format, Video::OVERWRITE_EXISTING);


                echo '<h1>Executed Command</h1>';
                \PHPVideoToolkit\Trace::vars($process->getExecutedCommand());
                echo '<hr /><h1>FFmpeg Process Messages</h1>';
                \PHPVideoToolkit\Trace::vars($process->getMessages());
                echo '<hr /><h1>Buffer Output</h1>';
                \PHPVideoToolkit\Trace::vars($process->getBuffer(true));
                echo '<hr /><h1>Resulting Output</h1>';
                $videos = $process->getOutput();
                $video_paths = array();
                if(empty($video) === false)
                {
                    foreach ($videos as $video)
                    {
                        array_push($video_paths, $video->getMediaPath());
                    }
                }
                \PHPVideoToolkit\Trace::vars($video_paths);
            }
            catch(\PHPVideoToolkit\FfmpegProcessOutputException $e)
            {
                echo '<h1>Error</h1>';
                \PHPVideoToolkit\Trace::vars($e);

                $process = $video->getProcess();
                if($process->isCompleted())
                {
                    echo '<hr /><h2>Executed Command</h2>';
                    \PHPVideoToolkit\Trace::vars($process->getExecutedCommand());
                    echo '<hr /><h2>FFmpeg Process Messages</h2>';
                    \PHPVideoToolkit\Trace::vars($process->getMessages());
                    echo '<hr /><h2>Buffer Output</h2>';
                    \PHPVideoToolkit\Trace::vars($process->getBuffer(true));
                }
            }
            catch(\PHPVideoToolkit\Exception $e)
            {
                echo '<h1>Error</h1>';
                \PHPVideoToolkit\Trace::vars($e->getMessage());
                echo '<h2>\PHPVideoToolkit\Exception</h2>';
                \PHPVideoToolkit\Trace::vars($e);
            }

The outputs:

Executed Command:

/usr/bin/ffmpeg '-i' '/var/www/html/MyProject/web/medias/original/2014_11/BigBuckBunny_320x180.mp4' '-y' '-ss' '00:00:00.000' '-t' '209.453' '-q' '4' '-f' 'mp4' '-strict' 'experimental' '-threads' '1' '-acodec' 'aac' '-ar' '22050' '-vcodec' 'h264' '/var/www/html/MyProject/web/output/big_buck_bunny_.%12d.24_0._t.._u.32774_wb8v0_1418672503.u_.mp4'

FFmpeg Process Messages:

Array
(
    [libx264] => Array
        (
            [0x21f1f80] => Array
                (
                    [0] => -qscale is ignored, -crf is recommended.
                    [1] => using SAR=1/1
                    [2] => using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
                    [3] => profile High, level 1.2
                    [4] => 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: 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=1 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=2 keyint=250 keyint_min=24 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
                    [5] => frame I:48    Avg QP:18.65  size: 12800
                    [6] => frame P:2759  Avg QP:23.07  size:  1186
                    [7] => frame B:2220  Avg QP:28.41  size:   224
                    [8] => consecutive B-frames: 33.4% 19.1% 12.1% 35.4%
                    [9] => mb I  I16..4: 31.4% 14.8% 53.7%
                    [10] => mb P  I16..4:  1.1%  1.7%  1.1%  P16..4: 31.4%  9.2%  7.2%  0.0%  0.0%    skip:48.3%
                    [11] => mb B  I16..4:  0.1%  0.2%  0.3%  B16..8: 21.5%  2.2%  0.8%  direct: 0.8%  skip:74.2%  L0:38.5% L1:51.9% BI: 9.6%
                    [12] => 8x8 transform intra:35.3% inter:50.9%
                    [13] => coded y,uvDC,uvAC intra: 60.4% 81.1% 51.4% inter: 12.8% 14.3% 3.2%
                    [14] => i16 v,h,dc,p: 23% 32% 22% 23%
                    [15] => i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 18% 26%  4%  6%  6%  6%  6%  7%
                    [16] => i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 15% 15%  5%  7%  6%  7%  6%  6%
                    [17] => i8c dc,h,v,p: 48% 24% 17% 10%
                    [18] => Weighted P-Frames: Y:2.0% UV:0.7%
                    [19] => ref P L0: 71.4% 15.2%  9.2%  4.2%  0.0%
                    [20] => ref B L0: 88.0%  9.9%  2.1%
                    [21] => ref B L1: 94.2%  5.8%
                    [22] => kb/s:167.47
                )

        )

)

Buffer Output

ffmpeg version 2.4.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov  4 2014 18:00:10 with gcc 4.9.1 (Ubuntu 4.9.1-16ubuntu6)
  configuration: --prefix=/home/cassiano/ffmpeg_build --extra-cflags=-I/home/cassiano/ffmpeg_build/include --extra-ldflags=-L/home/cassiano/ffmpeg_build/lib --bindir=/home/cassiano/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      54. 11.100 / 54. 11.100
  libavcodec     56. 10.102 / 56. 10.102
  libavformat    56. 12.100 / 56. 12.100
  libavdevice    56.  2.100 / 56.  2.100
  libavfilter     5.  2.102 /  5.  2.102
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/Archive/web/medias/original/2014_11/BigBuckBunny_320x180.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
    title           : Big Buck Bunny
    artist          : Blender Foundation
    composer        : Blender Foundation
    date            : 2008
    encoder         : Lavf52.14.0
  Duration: 00:09:56.46, start: 0.000000, bitrate: 867 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 702 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
[libx264 @ 0x21f1f80] -qscale is ignored, -crf is recommended.
[libx264 @ 0x21f1f80] using SAR=1/1
[libx264 @ 0x21f1f80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 @ 0x21f1f80] profile High, level 1.2
[libx264 @ 0x21f1f80] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: 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=1 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=2 keyint=250 keyint_min=24 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
Output #0, mp4, to '/var/www/html/Archive/web/output/big_buck_bunny_.%12d.24_0._t.._u.32774_wb8v0_1418672503.u_.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    date            : 2008
    title           : Big Buck Bunny
    artist          : Blender Foundation
    composer        : Blender Foundation
    encoder         : Lavf56.12.100
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x180 [SAR 1:1 DAR 16:9], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
      encoder         : Lavc56.10.102 libx264
    Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 22050 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
      encoder         : Lavc56.10.102 aac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame=  161 fps=0.0 q=28.0 size=     212kB time=00:00:06.94 bitrate= 250.7kbits/s    
frame=  296 fps=296 q=28.0 size=     509kB time=00:00:12.51 bitrate= 333.0kbits/s    
frame=  453 fps=301 q=28.0 size=     896kB time=00:00:19.06 bitrate= 385.1kbits/s    
frame=  609 fps=303 q=28.0 size=    1174kB time=00:00:25.60 bitrate= 375.6kbits/s    
frame=  711 fps=283 q=28.0 size=    1435kB time=00:00:29.83 bitrate= 394.0kbits/s    
frame=  826 fps=274 q=28.0 size=    1727kB time=00:00:34.61 bitrate= 408.6kbits/s    
frame=  931 fps=265 q=28.0 size=    1970kB time=00:00:39.03 bitrate= 413.6kbits/s    
frame= 1050 fps=261 q=28.0 size=    2207kB time=00:00:43.95 bitrate= 411.3kbits/s    
frame= 1193 fps=264 q=28.0 size=    2509kB time=00:00:49.89 bitrate= 412.0kbits/s    
frame= 1309 fps=261 q=28.0 size=    2769kB time=00:00:54.77 bitrate= 414.1kbits/s    
frame= 1450 fps=262 q=28.0 size=    3036kB time=00:01:00.62 bitrate= 410.2kbits/s    
frame= 1634 fps=271 q=28.0 size=    3362kB time=00:01:08.28 bitrate= 403.3kbits/s    
frame= 1762 fps=270 q=28.0 size=    3625kB time=00:01:13.62 bitrate= 403.3kbits/s    
frame= 1879 fps=267 q=28.0 size=    3867kB time=00:01:18.50 bitrate= 403.5kbits/s    
frame= 1982 fps=263 q=28.0 size=    4162kB time=00:01:22.77 bitrate= 411.9kbits/s    
frame= 2127 fps=265 q=28.0 size=    4405kB time=00:01:28.81 bitrate= 406.3kbits/s    
frame= 2314 fps=271 q=28.0 size=    4666kB time=00:01:36.61 bitrate= 395.6kbits/s    
frame= 2531 fps=280 q=28.0 size=    5030kB time=00:01:45.67 bitrate= 389.9kbits/s    
frame= 2672 fps=280 q=28.0 size=    5296kB time=00:01:51.52 bitrate= 389.0kbits/s    
frame= 2804 fps=279 q=28.0 size=    5557kB time=00:01:57.04 bitrate= 389.0kbits/s    
frame= 2946 fps=280 q=28.0 size=    5876kB time=00:02:02.94 bitrate= 391.5kbits/s    
frame= 3087 fps=280 q=25.0 size=    6154kB time=00:02:08.79 bitrate= 391.4kbits/s    
frame= 3234 fps=280 q=28.0 size=    6417kB time=00:02:14.97 bitrate= 389.4kbits/s    
frame= 3408 fps=283 q=28.0 size=    6759kB time=00:02:22.22 bitrate= 389.3kbits/s    
frame= 3550 fps=283 q=28.0 size=    7022kB time=00:02:28.11 bitrate= 388.4kbits/s    
frame= 3716 fps=285 q=28.0 size=    7349kB time=00:02:35.03 bitrate= 388.3kbits/s    
frame= 3929 fps=290 q=28.0 size=    7721kB time=00:02:43.90 bitrate= 385.9kbits/s    
frame= 4086 fps=291 q=28.0 size=    8024kB time=00:02:50.45 bitrate= 385.6kbits/s    
frame= 4248 fps=292 q=28.0 size=    8285kB time=00:02:57.18 bitrate= 383.1kbits/s    
frame= 4409 fps=293 q=28.0 size=    8659kB time=00:03:03.92 bitrate= 385.7kbits/s    
frame= 4533 fps=291 q=28.0 size=    8953kB time=00:03:09.07 bitrate= 387.9kbits/s    
frame= 4686 fps=291 q=28.0 size=    9267kB time=00:03:15.48 bitrate= 388.3kbits/s    
frame= 4842 fps=292 q=28.0 size=    9590kB time=00:03:21.94 bitrate= 389.0kbits/s    
frame= 4998 fps=293 q=28.0 size=    9872kB time=00:03:28.44 bitrate= 388.0kbits/s    
frame= 5027 fps=291 q=28.0 Lsize=   10141kB time=00:03:29.46 bitrate= 396.6kbits/s    
video:4283kB audio:5743kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.148757%
[libx264 @ 0x21f1f80] frame I:48    Avg QP:18.65  size: 12800
[libx264 @ 0x21f1f80] frame P:2759  Avg QP:23.07  size:  1186
[libx264 @ 0x21f1f80] frame B:2220  Avg QP:28.41  size:   224
[libx264 @ 0x21f1f80] consecutive B-frames: 33.4% 19.1% 12.1% 35.4%
[libx264 @ 0x21f1f80] mb I  I16..4: 31.4% 14.8% 53.7%
[libx264 @ 0x21f1f80] mb P  I16..4:  1.1%  1.7%  1.1%  P16..4: 31.4%  9.2%  7.2%  0.0%  0.0%    skip:48.3%
[libx264 @ 0x21f1f80] mb B  I16..4:  0.1%  0.2%  0.3%  B16..8: 21.5%  2.2%  0.8%  direct: 0.8%  skip:74.2%  L0:38.5% L1:51.9% BI: 9.6%
[libx264 @ 0x21f1f80] 8x8 transform intra:35.3% inter:50.9%
[libx264 @ 0x21f1f80] coded y,uvDC,uvAC intra: 60.4% 81.1% 51.4% inter: 12.8% 14.3% 3.2%
[libx264 @ 0x21f1f80] i16 v,h,dc,p: 23% 32% 22% 23%
[libx264 @ 0x21f1f80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 18% 26%  4%  6%  6%  6%  6%  7%
[libx264 @ 0x21f1f80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 15% 15%  5%  7%  6%  7%  6%  6%
[libx264 @ 0x21f1f80] i8c dc,h,v,p: 48% 24% 17% 10%
[libx264 @ 0x21f1f80] Weighted P-Frames: Y:2.0% UV:0.7%
[libx264 @ 0x21f1f80] ref P L0: 71.4% 15.2%  9.2%  4.2%  0.0%
[libx264 @ 0x21f1f80] ref B L0: 88.0%  9.9%  2.1%
[libx264 @ 0x21f1f80] ref B L1: 94.2%  5.8%
[libx264 @ 0x21f1f80] kb/s:167.47
<c-644661-548f39773cc17-e550801214abf9e221ea507a4dbb5a79>

Resulting Output

Array
(
    [0] => /var/www/html/MyProject/web/output/big_buck_bunny_.%12d.24_0._t..mp4
)

cassianotartari avatar Dec 15 '14 19:12 cassianotartari