mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 17:50:36 +00:00
49 lines
1.1 KiB
Text
49 lines
1.1 KiB
Text
|
#!/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";
|
||
|
}
|