phpvideotoolkit-v2
phpvideotoolkit-v2 copied to clipboard
When multiple streams to single output, probe is displaying incorrect data.
When multiple streams to single output, probe is displaying incorrect data. Solved by modifying ProgressHandlerPortable.php line 231 like below.
$video_stream_count = preg_match_all('/\s*Stream\s*\#([0-9]+):[0-9]+s*\(...\)\s*:\s*Video\s*:/i', substr($raw_data, strpos($raw_data, 'Output #0')));
Some part of my code:
$video = new Video($filename);
$output_format = new VideoFormat_Mp4();
$output_format->setStrictness(null);
$output_format->setThreads(0);
$output_format->setQualityVsStreamabilityBalanceRatio(null);
$output_format->setAudioCodec(null);
$output_format->setAudioQuality(null);
$output_format->setVideoCodec(null);
$output_format->setVideoQuality(null);
$process = $video->getProcess();
//$process->addPreInputCommand('-t', '3');
$process->addCommand('-metadata:s', 'language=und');
$process->addCommand('-movflags', '+faststart');
$process->addCommand('-preset:v', 'ultrafast');
$process->addCommand('-c:v', 'libx264');
$process->addCommand('-r', '25');
$process->addCommand('-x264opts', 'keyint=25:min-keyint=25:no-scenecut:cabac=1:bframes=2');
$process->addCommand('-pix_fmt', 'yuv420p');
$process->addCommand('-c:a', 'aac');
$process->addCommand('-ac', '2');
$process->addCommand('-map', '0:v', true);
$process->addCommand('-map', '0:v', true);
$process->addCommand('-map', '0:v', true);
$process->addCommand('-map', '0:v', true);
$process->addCommand('-map', '0:a', true);
$process->addCommand('-crf:0', '18');
$process->addCommand('-b:0', '5000k');
$process->addCommand('-maxrate:0', '5000k');
$process->addCommand('-bufsize:0', '5000k');
$process->addCommand('-filter:0', 'scale=-2:1080');
$process->addCommand('-crf:1', '18');
$process->addCommand('-b:1', '3500k');
$process->addCommand('-maxrate:1', '3500k');
$process->addCommand('-bufsize:1', '3500k');
$process->addCommand('-filter:1', 'scale=-2:720' );
$process->addCommand('-crf:2', '18');
$process->addCommand('-b:2', '2000k');
$process->addCommand('-maxrate:2', '2000k');
$process->addCommand('-bufsize:2', '2000k');
$process->addCommand('-filter:2', 'scale=-2:540' );
$process->addCommand('-crf:3', '18');
$process->addCommand('-b:3', ' 800k');
$process->addCommand('-maxrate:3', ' 800k');
$process->addCommand('-bufsize:3', ' 800k');
$process->addCommand('-filter:3', 'scale=-2:360' );
$process->addCommand('-b:4', '192k');
$saveProcess = $video->saveNonBlocking('./output/output.mp4', $output_format, Media::OVERWRITE_EXISTING);
$_SESSION['phpvideotoolkit_portable_process_id'] = $video->getPortableId();