This is the sixth time I have attempted to send this to the list.  I think Lou 
may have identified the issue, so I am trying a different way of posting this 
and hope it will go through.  If it does, thanks Lou!
 
I have a strange situation in that I have a satellite receiver that receives 
one particular channel that has a rather different audio arrangement.  I can 
record programs, but at the moment I can't play them back and hear the full 
audio on my home theater PC.
 
The facts are:
 
The recordings are from a DVB-S2 satellite source and are saved as .ts files.  
Each .ts file only contains the recording of a single channel; it's not one of 
those .ts files that contains a raw dump from a transponder with many channels. 
 The video is fine as is and does not need to be converted, it's only the audio 
that is a problem.
 
The recordings contain four different audio streams or tracks or channels (each 
software program calls them something different; I will refer to them as 
streams hereafter), each of which have a left and right channel.
 
Most software by default only plays the first stream, which contains only 
background music and sound effects in stereo, but no dialogue.   You can select 
a different stream but no matter which you select, you wind up missing some of 
the audio.
 
QuickTime on an OS X machine will play all the audio streams merged together 
and normally that sounds pretty good, except when there is a "described video" 
track (that narrates the action for sight-impaired users).  Since at this point 
in my life I don't have any vision problems that severe, I'd prefer not to hear 
that track, but QuickTimes give you no way to selectively turn it off, and 
anyway my HTPC box runs Ubuntu Linux, so running QuickTime there is not an 
option.  I really want to be able to play the recordings in XBMC.
 
As best I can tell, the way the broadcaster is sending the tracks appears to be 
as follows:

Stream 1: Background Music and sound effects in stereo
Stream 2: Left channel is vocal audio and a few additional sound effects.  
Right channel appears to be low-level background noise only.
Stream 3: Appears to be rear channel audio (but no dialogue) in stereo
Stream 4: Left channel is either blank or contains described video narration 
(which I do NOT want).  Right channel contains dialogue but sometimes with 
slight reverb, probably for surround sound systems.

If my guess on that is accurate, and I am not 100% sure it is, then my 
suspicion is that the way the channels are supposed to be mapped are as follows:

Stream 1: Front left and right speakers
Stream 2: Left channel (dialogue) to center speaker.  Not sure about right 
channel, maybe mixed with front center?
Stream 3: Rear left and right speakers
Stream 4: Left channel for described video or alternate language. Right channel 
to rear center OR mixed with front center.

But, it would be acceptable to take the stream 2 Left channel and send it to 
the front left speaker, and the stream 4 right channel and send it to the front 
right center, mixed with the stream 1 audio of course.  What is not wanted is 
the stream 4 left channel audio.  This is what I believe QuickTime is doing, 
just mixing all the lefts together and all the rights together, and it sounds 
pretty good except when that unwanted described video track is present.

I have found that I can use this to get rid of the unwanted left channel in 
Stream 4:

ffmpeg -i "original_program.ts" -c:v copy -map 0:0 -map 0:1 -map_channel 0.1.0 
-map_channel 0.1.1 -map 0:2 -map_channel 0.2.0 -map_channel 0.2.1 -map 0:3 
-map_channel 0.3.0 -map_channel 0.3.1 -map 0:4 -map_channel -1 -map_channel 
0.4.1 -c:a mp2  test.ts

That may not be the optimal way to do that (suggestions to streamline that 
would be appreciated) but it took me over six hours to get that much figured 
out. Unfortunately, it still saves the remaining audio as four separate streams:

Output #0, mpegts, to 'test.ts':
  Metadata:
    encoder         : Lavf55.33.100
    Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuvj420p, 1920x1080 [SAR 
1:1 DAR 16:9], q=2-31, 29.97 fps, 90k tbn, 29.97 tbc
    Stream #0:1(aaa,aab): Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
    Stream #0:2(aac,aad): Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
    Stream #0:3(aae,aaf): Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
    Stream #0:4(aag,aah): Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (mp2 -> mp2)
  Stream #0:2 -> #0:2 (mp2 -> mp2)
  Stream #0:3 -> #0:3 (mp2 -> mp2)
  Stream #0:4 -> #0:4 (mp2 -> mp2)

This does not help me at all in XBMC. What I need to figure out is how to 
combine all the streams and merge them down to a single stereo stream (5.1 
would be better, but at this point even plain stereo would be a huge 
improvement). Does ffmpeg have this capability?

TVHeadEnd will let you post-process a recording automatically as soon as the 
recording ends, so I was thinking that if it were possible to do this with 
ffmpeg, maybe I could run it that way.  Problem is, prior to looking at it for 
this use, I have have no experience at all with ffmpeg (other than being 
vaguely aware that it's a prerequisite for certain other software packages) so 
I have no idea what it's capable of, nor what options I would need to use to 
get the result I want.
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to