gstreamer/tools/gst-launch-ext

49 lines
1.1 KiB
Text
Raw Normal View History

#!/usr/bin/perl -w
# launch a gst-launch pipeline for the supplied media file
# use the extension to determine the gst-launch pipeline
# make use of default output sinks
### packages
use File::Basename;
### defaults
my $VIDEOSINK = "xvideosink";
my $AUDIOSINK = "osssink";
my $GST_CVS_PATH = "~/gst/cvs";
my %pipes = (
"mp3", "mad ! $AUDIOSINK",
"ogg", "vorbisdec ! $AUDIOSINK",
"mpg", "mpegdemux video_00! { queue ! mpeg2dec ! $VIDEOSINK } audio_00! { queue ! mad ! $AUDIOSINK }",
"avi", "avidemux video_00! { queue ! windec ! $VIDEOSINK }",
"vob", "mpegdemux video_00! { queue ! mpeg2dec ! $VIDEOSINK }",
);
sub extension
{
my $path = shift;
my $ext = (fileparse ($path, '\..*'))[2];
$ext =~ s/^\.//;
return $ext;
}
### main
my $file = shift @ARGV or die "Please give a file name !";
my $ext = extension ($file);
if ($pipe = $pipes{$ext})
{
$command = "$GST_CVS_PATH/gstreamer/tools/gst-launch filesrc location=\"$file\" ! $pipe";
print "Running $command\n";
system ($command);
}
else
{
print "No suitable pipe found for extension $ext.\n";
}