Hi, I'm a pretty big fan of BASH scripting. I've got a bunch I use for random things and lately a couple issues have been plaguing me.
Both are somewhat related, in that they deal with filenames with spaces and "escaped" characters and with launching a program with command line arguements (which invariably include these filenames).
for instance. I have a bunch of MKV movies with embedded subtitles. I'd like to extract the subtitles into their own SRT file. so I've got this basic script written:
which gives me
Quote:
$ ./subtitleextract.sh Ying\ Xiong\ \(Hero\).mkv
Original Movie: Ying Xiong (Hero).mkv
srt File: Ying Xiong (Hero).srt
Track is: 3
Error: Missing track ID in argument 'Xiong'.
it should be running
mkvextract tracks Ying\ Xiong\ \(Hero\).mkv 3:Ying\ Xiong\ \(Hero\).srt
but obviously isn't.
The other script I've got that I'd love to get working is one I wrote to combine a series of avi files using avidemux. to do this I wrote a script that takes the input files as the arguements, deduces the output file name and then because of avidemux's arguement procedure I have it create a set of strings that it needs to append to the call to avidemux for each file being added to the original. I have a similar problem with this script as well, but with many more arguements involved. What I've done with this one is have it echo the required command to run which I can then copy and paste and it works fine, but it would be much nicer if I could get it to actually *launch* said command.
phew, hopefully someone that knows how to solve this bothered to read through this long post, and to you sir, I thank and congratulate you, especially if you have an answer to my troubles!
I have launched telnet on nt and have connected to a unix server,
I'm trying to run a program on the unix server which will launch a gui, but when I try to launch it
I get the message
"display not set\n"
"By default set it to 0.0"
I can sit down at the unix machine and launch the program with... (3 Replies)
Hello,
in the application i'm writing i need to launch "recordmydesktop" to capture the screen,but i'm having a problem: when the recording stops,and the encoding of the saved file starts,the entire system hangs until the completion of the encoding.This happens if i launch recordmydesktop from my... (7 Replies)
Hi there, im new too shell scripting and was wondering if it is possible to create a shell script to take in a variable and load a c program.
My C program is a file monitor, and is started by using the terminal and using to following code
./monitor FileToBeMonitored
is it possible to have... (12 Replies)
Hi i wanted to know if any one can give me an example on how to launch a windows program in a perl script. I wanted to open the nmap software on my computer with a perl script, i heard this can be done with the system function. Would the function be in this format:
$text =... (1 Reply)
So I am attempting to get a short but complex perl script to be able to time out an application that I will launch from a command line. The terminal I use is MKS C SHELL and I am having trouble doing the a job spawn that will launch the application and keep time on it.
I know you could do this... (1 Reply)
Hey guys, first post! I want to write a script that will wait 1 second and then input the keys CTRL+ALT+J to the application i just opened.
The program is dosbox, and thay key combination starts video recording :) I have no idea how to program this, can anyone help please?
thanks in advance! (2 Replies)
Hi ULFers,
I am trying to setup a (very) simple startup script on a centos 6.4 computer and it kind of failed.... Here are the details :
As said just above the computer setup is running a CentOS 6.4 x64, on this computer a vncserver is automatically started (by a chkconfig vncserver on), i... (1 Reply)
Hello all.
I am a linux and linux scripting newbie so please forgive my ignorance. I have been tasked to write what I thought should be a pretty simple script that does the following:
1) Loads our forticlient ssl vpn command line client
2) sends the vpn password to the client
Pretty... (2 Replies)
I want to create a simple html page that should contain 2 fields in which the user can write the input. Then I want to have a button that should launch a shell script with the parameters inserted by user in the fields from the webpage.
This is the code behind my webpage:
<html>
<form... (2 Replies)
Discussion started by: black_fender
2 Replies
LEARN ABOUT DEBIAN
subtitles
Subtitles(3pm) User Contributed Perl Documentation Subtitles(3pm)NAME
Subtitles - handle video subtitles in various text formats
DESCRIPTION
Video files (avi mpeg etc) are sometimes accompanied with subtitles, which are currently very popular as text files. "Subtitles" provides
means for simple loading, re-timing, and storing these subtitle files. A command-line tool subs for the same purpose and using "Subtitles"
interface is included in the distribution.
The module supports "srt", "sub", "smi", and "mdvd" subtitle formats.
Time values are floats, in seconds with millisecond precision.
SYNOPSIS
use Subtitles;
my $sub = Subtitles->new();
open F, 'Ichi The Killer.sub' or die "Cannot read:$!";
die "Cannot load:$@
" unless $sub-> load(*F);
close F;
# back two minutes
$sub-> shift( $sub-> parse_time('-02:00'));
# re-frame from 25 fps
$sub-> scale( 23.976 / 25 );
# or both
$sub-> transform( -120, 0.96);
$sub-> transform( -120, 0.96, 0, $sub-> length - 60);
# split in 2
my ( $part1, $part2) = $sub-> split( $self-> length / 2);
# join back with 5-second gap
$part1-> join( $part2, 5);
# save
open F, "> out.sub" or die "Cannot write:$!
";
$part1-> save( *F);
close F;
# report
print "sub is ", time2str( $sub-> length);
API
Package methods
codecs
Returns array of installed codecs.
hms2time HOURS, MINUTES, SECONDS, MILLISECONDS
Combines four parameters into float time in seconds.
time2hms TIME
Splits time into four integers, - hours, minutes, seconds, and milliseconds. If time is less than zero, zero times are returned.
time2shms
Splits time into five integers, - time sign, hours, minutes, seconds, and milliseconds.
time2str TIME
Converts time to a human-readable string.
Object methods
clear
Removes all content
codec [ STRING ]
If STRING is not defined, returns currently associated codec. Otherwise, sets the new codec in association. The STRING is the codec's
package name, such as "Subtitles::Codec::srt".
dup [ CLEAR ]
Duplicates object instance in deep-copy fashion. If CLEAR flag is set, timeframes are not copied.
join GUEST, GAP
Adds content of object GUEST at the end of the list of subtitles with GAP in seconds.
length
Returns length of subtitle span.
load FH [ CODEC ]
Reads subtitle content into object. If successful, returns 1; otherwise undef is returned and $@ contains the error.
By default, tries to deduce which codec to use; to point the selection explicitly CODEC string is to be used.
lines
Returns number of subtitle cues.
new Creates a new instance. To force a particular codec, supply "codec" string here.
parse_time STRING
Parses STRING which is either a "[[HH:]MM:]SS[,MSEC]" string or string in a format specific to a codec, for example, number of a frame.
rate FPS
Forces a particluar frame-per-second rate, if a codec can make use of it.
save FH
Writes content of instance into FH file handle, using the associated codec.
scale A
Changes time-scale. If A is 2, the subtitles go off 2 times slower, if 0.5 - two times faster, etc.
shift B
Shifts timings by B seconds. B can be negative.
split TIME
Splits the content of the instance between two newly created instances of the same class, by TIME, and returns these. The both
resulting subtitles begin at time 0.
transform A, B [FROM, TO]
Applies linear transformation to the time-scale, such as "u = At + B" where "t" is the original time and "u" is the result. If FROM and
TO brackets are set, the changes are applied only to the lines in the timeframe between these.
BUGS
This is alpha code, more a proof-of-concept rather that anything else, so most surely bugs are lurking.
Anyway: not all subtitle types are recognized. The modules doesn't handle multi-language subtitles.
SEE ALSO
subs - command-line wrapper for this module
THANKS
<http://dvd.box.sk/>, <http://subs.2ya.com>.
AUTHOR
Dmitry Karasik, <dmitry@karasik.eu.org>.
perl v5.14.2 2012-02-14 Subtitles(3pm)