phpvideotoolkit-v2
phpvideotoolkit-v2 copied to clipboard
%timecode in extractSegment()
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
)