[![Build Status](https://travis-ci.org/spiritloose/MP4-LibMP4v2.svg?branch=master)](https://travis-ci.org/spiritloose/MP4-LibMP4v2) # 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](https://metacpan.org/pod/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](https://github.com/sergiomb2/libmp4v2), [MP4::File](https://metacpan.org/pod/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