The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MP4::LibMP4v2 - Perl interface to the libmp4v2

SYNOPSIS

    use MP4::LibMP4v2;
    my $mp4 = MP4::LibMP4v2->read('/path/to/movie.mp4');
    my $num_tracks = $mp4->get_number_of_tracks;
    for (my $i = 0; $i < $num_tracks; $i++) {
        my $track_id = $mp4->find_track_id($i);
        my $bit_rate = $mp4->get_track_bit_rate($track_id);
    }

DESCRIPTION

The MP4::LibMP4v2 module provides an interface to the libmp4v2. This module supports libmp4v4 version 2 or above. Please use MP4::File for its version 1.

METHODS

MP4::LibMP4v2->optimize($filename [, $to_filename])

Optimize the mp4 file.

MP4::LibMP4v2->read($filename) :MP4::LibMP4v2

Read the file and return an instance of MP4::LibMP4v2.

MP4::LibMP4v2->set_log_level($level)

Set log level. Defaults to MP4_LOG_NONE.

MP4::LibMP4v2->get_log_level() :Int

Get log level.

$mp4->get_file_name() :Str

$mp4->info() :Str

$mp4->have_atom($atom_name) :Bool

$mp4->get_integer_property($prop_name) :Int

$mp4->get_float_property($prop_name) :Num

$mp4->get_string_property($prop_name) :Str

$mp4->get_bytes_property($prop_name) :ArrayRef[Str]

$mp4->get_duration() :Int

$mp4->get_time_scale() :Int

$mp4->get_od_profile_level() :Int

$mp4->get_scene_profile_level() :Int

$mp4->get_video_profile_level() :Int

$mp4->get_audio_profile_level() :Int

$mp4->get_graphics_profile_level() :Int

$mp4->get_number_of_tracks() :Int

$mp4->find_track_id($index [, $type, $subtype]) :Int

$mp4->find_track_index($track_id) :Int

$mp4->get_track_duration_per_chunk($track_id) :Int

$mp4->have_track_atom($track_id, $atom_name) :Bool

$mp4->get_track_type($track_id) :Str

$mp4->get_track_media_data_name($track_id) :Str

$mp4->get_track_media_original_format($track_id) :Str

$mp4->get_track_duration($track_id) :Int

$mp4->get_track_time_scale($track_id) :Int

$mp4->get_track_language($track_id) :Str

$mp4->get_track_name($track_id) :Str

$mp4->get_track_audio_mpeg4_type($track_id) :Int

$mp4->get_track_esds_object_type_id($track_id) :Int

$mp4->get_track_fixed_sample_duration($track_id) :Int

$mp4->get_track_bit_rate($track_id) :Int

$mp4->get_track_video_metadata($track_id) :ArrayRef[Str]

$mp4->get_track_es_configuration($track_id) :ArrayRef[Str]

$mp4->get_track_h264_length_size($track_id) :Int

$mp4->get_track_number_of_samples($track_id) :Int

$mp4->get_track_video_width($track_id) :Int

$mp4->get_track_video_height($track_id) :Int

$mp4->get_track_video_frame_rate($track_id) :Num

$mp4->get_track_audio_channels($track_id) :Int

$mp4->is_isma_cryp_media_track($track_id) :Bool

$mp4->get_track_integer_property($track_id, $prop_name) :Int

$mp4->get_track_float_property($track_id, $prop_name) :Num

$mp4->get_track_string_property($track_id, $prop_name) :Str

$mp4->get_track_bytes_property($track_id, $prop_name) :ArrayRef[Str]

$mp4->get_hint_track_rtp_payload($track_id) :Str

$mp4->convert_from_movie_duration($duration, $time_scale) :Int

$mp4->convert_from_track_timestamp($track_id, $timestamp, $time_scale) :Int

$mp4->convert_to_track_timestamp($track_id, $timestamp, $time_scale) :Int

$mp4->convert_from_track_duration($track_id, $duration, $time_scale) :Int

$mp4->convert_to_track_duration($track_id, $duration, $time_scale) :Int

CONSTANTS

MP4_LOG_NONE

MP4_LOG_ERROR

MP4_LOG_WARNING

MP4_LOG_INFO

MP4_LOG_VERBOSE1

MP4_LOG_VERBOSE2

MP4_LOG_VERBOSE3

MP4_LOG_VERBOSE4

MP4_OD_TRACK_TYPE

MP4_SCENE_TRACK_TYPE

MP4_AUDIO_TRACK_TYPE

MP4_VIDEO_TRACK_TYPE

MP4_HINT_TRACK_TYPE

MP4_CNTL_TRACK_TYPE

MP4_TEXT_TRACK_TYPE

MP4_SUBTITLE_TRACK_TYPE

MP4_SUBPIC_TRACK_TYPE

MP4_CLOCK_TRACK_TYPE

MP4_MPEG7_TRACK_TYPE

MP4_OCI_TRACK_TYPE

MP4_IPMP_TRACK_TYPE

MP4_MPEGJ_TRACK_TYPE

MP4_SECONDS_TIME_SCALE

MP4_MILLISECONDS_TIME_SCALE

MP4_MICROSECONDS_TIME_SCALE

MP4_NANOSECONDS_TIME_SCALE

MP4_SECS_TIME_SCALE

MP4_MSECS_TIME_SCALE

MP4_USECS_TIME_SCALE

MP4_NSECS_TIME_SCALE

MP4_MPEG4_INVALID_AUDIO_TYPE

MP4_MPEG4_AAC_MAIN_AUDIO_TYPE

MP4_MPEG4_AAC_LC_AUDIO_TYPE

MP4_MPEG4_AAC_SSR_AUDIO_TYPE

MP4_MPEG4_AAC_LTP_AUDIO_TYPE

MP4_MPEG4_AAC_HE_AUDIO_TYPE

MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE

MP4_MPEG4_CELP_AUDIO_TYPE

MP4_MPEG4_HVXC_AUDIO_TYPE

MP4_MPEG4_TTSI_AUDIO_TYPE

MP4_MPEG4_MAIN_SYNTHETIC_AUDIO_TYPE

MP4_MPEG4_WAVETABLE_AUDIO_TYPE

MP4_MPEG4_MIDI_AUDIO_TYPE

MP4_MPEG4_ALGORITHMIC_FX_AUDIO_TYPE

MP4_MPEG4_ALS_AUDIO_TYPE

MP4_MPEG4_LAYER1_AUDIO_TYPE

MP4_MPEG4_LAYER2_AUDIO_TYPE

MP4_MPEG4_LAYER3_AUDIO_TYPE

MP4_MPEG4_SLS_AUDIO_TYPE

SEE ALSO

https://github.com/sergiomb2/libmp4v2, MP4::File

LICENSE

Copyright (C) Jiro Nishiguchi.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Jiro Nishiguchi <jiro@cpan.org>