1. Go to this page and download the library: Download soluble/mediatools library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
soluble / mediatools example snippets
use Soluble\MediaTools\Video\Config\FFMpegConfig;
use Soluble\MediaTools\Video\Exception\ConverterExceptionInterface;
use Soluble\MediaTools\Video\{VideoConverter, VideoConvertParams};
$converter = new VideoConverter(new FFMpegConfig('/path/to/ffmpeg'));
$params = (new VideoConvertParams())
->withVideoCodec('libx264')
->withStreamable(true)
->withCrf(24);
try {
$converter->convert(
'/path/inputFile.mov',
'/path/outputFile.mp4',
$params
);
} catch(ConverterExceptionInterface $e) {
// See chapter about exception !!!
}
use Soluble\MediaTools\Video\Config\FFProbeConfig;
use Soluble\MediaTools\Video\Exception\InfoReaderExceptionInterface;
use Soluble\MediaTools\Video\VideoInfoReader;
use Soluble\MediaTools\Video\VideoInfo;
$infoReader = new VideoInfoReader(new FFProbeConfig('/path/to/ffprobe'));
// Step 1: Read a media file
try {
$info = $infoReader->getInfo('/path/video.mp4');
} catch (InfoReaderExceptionInterface $e) {
// not a valid video (see exception)
}
$duration = $info->getDuration(); // total duration
$format = $info->getFormatName(); // container format: mkv, mp4
// Step 2: Media streams info (video, subtitle, audio, data).
// Example with first video stream (streams are iterable)
try {
$video = $info->getVideoStreams()->getFirst();
} catch (\Soluble\MediaTools\Video\Exception\NoStreamException $e) {
// No video stream,
}
$codec = $video->getCodecName(); // i.e: vp9
$fps = $video->getFps($decimals=0); // i.e: 24
$width = $video->getWidth(); // i.e: 1080
$ratio = $video->getAspectRatio();
// Alternate example
if ($info->countStreams(VideoInfo::STREAM_TYPE_SUBTITLE) > 0) {
$sub = $info->getSubtitleStreams()->getFirst();
$sub->getCodecName(); // webvtt
}
use Soluble\MediaTools\Video\Config\FFMpegConfig;
use Soluble\MediaTools\Video\Exception\ConverterExceptionInterface;
use Soluble\MediaTools\Video\{VideoThumbGenerator, VideoThumbParams, SeekTime};
$generator = new VideoThumbGenerator(new FFMpegConfig('/path/to/ffmpeg'));
$params = (new VideoThumbParams())
->withTime(1.25);
try {
$generator->makeThumbnail(
'/path/inputFile.mov',
'/path/outputFile.jpg',
$params
);
} catch(ConverterExceptionInterface $e) {
// See chapter about exception !!!
}
use Soluble\MediaTools\Video\Config\FFMpegConfig;
use Soluble\MediaTools\Video\Exception\AnalyzerExceptionInterface;
use Soluble\MediaTools\Video\VideoAnalyzer;
$analyzer = new VideoAnalyzer(new FFMpegConfig('/path/to/ffmpeg'));
try {
$interlaceGuess = $analyzer->detectInterlacement(
'/path/input.mov',
// Optional:
// $maxFramesToAnalyze, default: 1000
$maxFramesToAnalyze = 200
);
} catch(AnalyzerExceptionInterface $e) {
// See chapter about exception !!!
}
$interlaced = $interlaceGuess->isInterlaced(
// Optional:
// $threshold, default 0.25 (if >=25% interlaced frames, then true)
0.25
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.