On Wed, Mar 22, 2006 at 06:51:01PM -0800, Florin Andrei wrote: > I have a large AC3 file: > > $ file chicken.ac3 > chicken.ac3: ATSC A/52 aka AC-3 aka Dolby Digital stream, 48 kHz,, > complete main (CM) 3 front/2 rear, LFE on,, 448 kbit/s reserved Dolby > Surround mode > > I want to create a much smaller file with the same parameters, ideally > silent, with a duration of about 2 sec, then concatenate the small file > at the beginning of the existing large file. > > If I'm not mistaken, an AC3 file is made out of independent frames of > fixed size. Is that correct? If yes, what is the size of a frame? > If the frames are fixed-size, I could simply use dd to generate a small > fragment out of the existing file, then use cat to glue the fragment and > the original file. Frames vary in size based on the parameters chosen. In a stream, the frames should stay the same size. If they don't, then that probably means that there was a cut from one stream to another, like if you were recording AC3 over spdif from a satalite reciever while changing channels. Using dd to generate a fragment will be non-trivial if you aren't intimately familiar with AC3. Or at least thoroughly aquainted with it. The ATSC spec is available online. I wouldn't call it easily readable, but you can work your way through it. A better technique might be to make a silent wav file, then use ffmpeg to convert it to AC3, using the parameters of the original file. If the parameters match (or are at least close enough, which is a little bit decoder dependant), you can just cat them together. I don't know that ffmpeg will allow you to actually tinker with all the parameters though. For safest results (which is technically degraded, but is how the professionals would usually do it), it might be best to just convert from the AC3 to .wav or .aiff, then place your silences, then convert back. -- Joshua D. Boyd jdboyd@xxxxxxxxxx http://www.jdboyd.net/ http://www.joshuaboyd.org/