Media-Convert
view release on metacpan or search on metacpan
lib/Media/Convert/FfmpegInfo.pm view on Meta::CPAN
use JSON::MaybeXS;
has 'codecs' => (
is => 'ro',
isa => 'HashRef',
lazy => 1,
builder => '_build_codecs',
);
sub _build_codecs {
local $/ = "";
open my $ffmpeg, "-|", "ffmpeg -codecs 2>/dev/null";
my $codeclist = <$ffmpeg>;
close $ffmpeg;
my $parsing = 0;
my $rv = {};
foreach my $line(split /\n/, $codeclist) {
if(!$parsing) {
if($line =~ /^ ---+/) {
$parsing = 1;
}
lib/Media/Convert/KeyframeFinder.pm view on Meta::CPAN
has 'keyframes' => (
is => 'ro',
isa => 'ArrayRef[Num]',
lazy => 1,
builder => '_build_keyframes',
);
sub _build_keyframes {
my $self = shift;
local $/ = "";
open my $jsonpipe, "-|:encoding(UTF-8)", "ffprobe", "-loglevel", "quiet", "-print_format", "json", "-select_streams", "v", "-skip_frame", "nokey", "-show_frames", "-show_entries", "frame=pts_time,pict_type,best_effort_timestamp_time", $self->asset->...
my $data = decode_json(<$jsonpipe>);
my $rv = [];
foreach my $frame(@{$data->{frames}}) {
next unless $frame->{pict_type} eq "I";
push @$rv, ($frame->{pts_time} // $frame->{best_effort_timestamp_time}) + 0;
}
return $rv;
}
( run in 0.502 second using v1.01-cache-2.11-cpan-49f99fa48dc )