Sponsored Content
Operating Systems Linux A little help understanding FIFOs? Post 88145 by deckard on Tuesday 1st of November 2005 12:46:48 PM
Old 11-01-2005
A little help understanding FIFOs?

This isn't strictly a Linux question, but... I've been working on a project to archive some streaming media for time shifting using 'mplayer' and have been using FIFOs to archive in Ogg Vorbis format:


Code:
mkfifo program_name.wav

(mplayer -ao pcm -aofile program_name.wav &)
MPLAYER_PID="`/sbin/pidof mplayer`"

(oggenc program_name.wav &)
OGGENC_PID="`/sbin/pidof oggenc`"

sleep 30m && kill -9 "$MPLAYER_PID" "$OGGENC_PID"
rm program_name.wav

That works OK. But some of the streams I archive are long (3-4 hours) and are difficult to "fast forward" through on my car player. So I'd like to break the recordings up into 5 minute segments WHILE I am encoding the stream. The problem is that when oggenc stops reading from the program_name.wav FIFO, mplayer stops streaming and won't start up again. Any ideas how I would do this without just grabbing the whole show in WAV format and then splitting it after the fact?
 

9 More Discussions You Might Find Interesting

1. Programming

Praying for help: FIFOs, IPC

omg i need help so bad. I've been working on a school project for what seems like an eternity and i'm close to deadline. Using FIFO's (i ahve to) to communicate between parent and child proc's. Right now I'm stuck on a read/write. fifomsg is a struct with int length and char message fields. ... (5 Replies)
Discussion started by: Funktar
5 Replies

2. Programming

forks, ipc, fifos, update issues...

Hi, so I've got this program("main") that fork executes another ("user"). These programs communicate through fifos. One communication is a spawn call, where user passes an executable, main forks and executes it. So, I'm keeping track of all my processes using a task table. After the fork (for... (6 Replies)
Discussion started by: Funktar
6 Replies

3. UNIX for Advanced & Expert Users

tar and fifos

How can I make tar read data from a fifo, instead of storing it as a fifo? (8 Replies)
Discussion started by: Corona688
8 Replies

4. UNIX for Advanced & Expert Users

UNIX domain sockets vs FIFOs

Is there a performance advantage of one of these over the other? Obviously, it makes no sense to use normal TCP sockets or UDP sockets w/ the overhead they carry. But what about UNIX domain sockets vs FIFOs? I'd think they'd be very similar, in terms of performance and in terms of how they're... (2 Replies)
Discussion started by: mgessner
2 Replies

5. UNIX for Dummies Questions & Answers

Understanding shutdown

Hi there, I start using the function shutdown instead of reboot + poweroff. But there are some points that are not explained in the man pages. 1) What is the usage of the t swith. Both commands will display the message immediatly on every terminal and shutdown at 22:30. Where is the... (6 Replies)
Discussion started by: chebarbudo
6 Replies

6. Shell Programming and Scripting

need help understanding mv

I just started shell coding and I'm a bit confused on how 'mv' works can someone explain to me how it works and if i did this correctly. Thanks. echo "Enter Name of the first file:" read file1 #echo $file1 if ; then echo "Sorry, file does not exist." exit 1 ... (16 Replies)
Discussion started by: taiL
16 Replies

7. UNIX for Dummies Questions & Answers

understanding {%/*}/

Hi Gurus: I am trying to understand the following line of code.I did enough of googling to understand but no luck.Please help me understand the follow chunk of code: X=$0 MOD=${X%/*}/env.ksh X is the current script from which I am trying to execute. Say if X=test.ksh $MOD is echoing :... (3 Replies)
Discussion started by: vemana
3 Replies

8. Programming

kill() function problem in client-server ipc message using 2 FIFOs

I want to have a message send & receive through 2 uni-direction FIFO Flow of data FIFO1 stdin--->parent(client) writefd--->FIFO1-->child(server) readfd FIFO2 child(server) writefd2---->FIFO2--->parent(client) readfd2--->stdout I need to have boundary structed message... (3 Replies)
Discussion started by: ouou
3 Replies

9. Shell Programming and Scripting

Need your help in understanding this

Hi, I found this in a script and I would like to know how this works Code is here: # var1=PART1_PART2 # var2=${var1##*_} # echo $var2 PART2 I'm wondering how ##* makes the Shell to understand to pick up the last value from the given. (2 Replies)
Discussion started by: sathyaonnuix
2 Replies
qwavcut(1)							 quelcom man pages							qwavcut(1)

NAME
qwavcut - extract and/or delete parts of a wav file SYNOPSIS
qwavcut [option]... file DESCRIPTION
qwavcut allows to extract and/or delete a fragment of a wav file. some parameters must be supplied in order to define the start/size/end cut points and what to do then: either the fragment must be copied to another file or erased from the file (or both) GENERAL OPTIONS
-d, --delete deletes the fragment from the file. if option --output is used, deletion action is always done after fragment extraction. -h, --help show a brief help and exit. -o <outfile>, --output=<outfile> outfile is the file where the samples contained in the specified cut will be copied. -V, --version show version and exit. CUT OPTIONS
cut options are used to specify at which sample the fragment begins (options -b or -B), ends (options -e and -E), or which size it has (option -s). at least, one cut option must be specified. neither the options -b and -B, and the options -e and -E can be used together; also, a begin, end and size option can be used at the same time. by default, the fragment begins at the first sample and ends at the last sample; there's no default value for size. all the values are treated as a sample number unless a format specifier is used. see the FORMATS section below for information. all values must be positive integer. -b <begin>[<format>], --set-begin-from-eof=<begin>[<format>] begin specifies the first sample of the file that belongs to the cut counting from the end of the file. -B <begin>[<format>], --set-begin=<begin>[<format>] begin specifies the first sample of the file that belongs to the cut counting from the beginning of the file. -e <end>[<format>], --set-end-from-eof=<end>[<format>] end specifies the last sample of the file that belongs to the cut counting from the end of the file. -E <end>[<format>], --set-end=<end>[<format>] end specifies the last sample of the file that belongs to the cut counting from the beginning of the file. -s <size>[<format>], --set-size=<size>[<format>] size specifies the number of samples contained in the cut. -S <begin>-<end>, --slice <begin>-<end> slice specifies the starting and ending points of the cut as a timeslice, which is to say, two time specifications ([[h:]m:]s[.ms]) joined by a hyphen. FORMATS
cut options can have also an optional modifier. if this modifier is not used, then the value provided with the corresponding cut option will be interpreted as a number of samples. since most of the times will be difficult to specify a cut in terms of samples, the following modifiers are provided: j value is interpreted as milliseconds. m value is interpreted as minutes. s value is interpreted as seconds. b value is interpreted as bytes. k value is interpreted as kbytes (1024 bytes). M value is interpreted as megabytes (1024 kbytes). in either case, the values specified will be rounded to get an integer number of samples. EXAMPLES
here are some examples: to get the last ten seconds of a file: qwavcut -b 10s -o outfile.wav infile.wav four ways of getting the first minute of a file: qwavcut -S -1:0 -o outfile.wav infile.wav qwavcut -S -60 -o outfile.wav infile.wav qwavcut -E 1m -o outfile.wav infile.wav qwavcut -s 1m -o outfile.wav infile.wav four ways of getting the second quarter of a file: qwavcut -S 15:0-30:0 -o outfile.wav infile.wav qwavcut -B 15m -E 30m -o outfile.wav infile.wav qwavcut -s 15m -E 30m -o outfile.wav infile.wav qwavcut -B 15m -s 15m -o outfile.wav infile.wav NOTES
if neither the options --output nor --delete are specified, the program will do nothing. when cutting at the end, a simple truncate call is needed. but when cutting in the middle or in the beginning, all the data behind the cut must be moved ahead and, depending on the amount of the data to be moved, this can be a time consuming operation. BUGS
tests has been done only with 44100 Hz 16 bit stereo files, though it may work with mono/stereo 8/16 bits files. AUTHOR
dmanye@etse.urv.es http://www.etse.urv.es/~dmanye/quelcom/quelcom.html SEE ALSO
qwavinfo(1), qwavjoin(1), qwavsilence(1), qwavfade(1), qwavheaderdump(1) qmp3info(1), qmp3join(1), qmp3cut(1), qmp3check(1), qmp3report(1) quelcom 0.4.0 february 2001 qwavcut(1)
All times are GMT -4. The time now is 03:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy