#!/usr/bin/perl -w use strict; use MPEG::Audio::Frame; open MP3IN, $ARGV[0] or die $!; my $cut_start = $ARGV[1]; my $cut_end = $ARGV[2]; my $pos = 0; my $writing = 0; my $done = 0; my $frame; while (!$done and $frame = MPEG::Audio::Frame->read(\*MP3IN)) { if (!$writing and $pos + $frame->seconds() >= $cut_start) { $writing = 1; print STDERR "starting write at $pos\n"; } elsif ($writing and $pos + $frame->seconds() >= $cut_end) { $done = 1; print STDERR "stopping write at $pos\n"; } print $frame->asbin() if $writing; $pos += $frame->seconds(); }