MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones

Alex Alab Artemiev
MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones Hello everybody!
My  name  is Alex, I'm an extensive mkv files user, but it's the first time ever I'm asking an mkv related question.
I've got many bilingual movies (Eng+French) and I wish I could watch them in French while everybody else I'm watching them with is listening to the English track.
For instance, so that I could have my French track channeled to my headphones and the English one channeled to the speakers for my friends.
Searching for a solution, I addressed [hidden email]
They recommended me to try GStreamer. That's why I'm asking this question here.
Can GStreamer do this kind of channeling? Is it practicable?
I'm using an E-MU sound card with multiple outputs.
Looking forward to reading back from you.
Many thanks.
Kind regards,
Alex
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones

Tim-Philipp Müller-2
On Mon, 2012-08-27 at 14:37 +0300, Alex Alab Artemiev wrote:

Hi Alex,

> My  name  is Alex, I'm an extensive mkv files user, but it's the first
> time ever I'm asking an mkv related question.
> I've got many bilingual movies (Eng+French) and I wish I could watch
> them in French while everybody else I'm watching them with is
> listening to the English track.
> For instance, so that I could have my French track channeled to my
> headphones and the English one channeled to the speakers for my
> friends.
> Searching for a solution, I
> addressed [hidden email]
> They recommended me to try GStreamer. That's why I'm asking this
> question here.
> Can GStreamer do this kind of channeling? Is it practicable?
> I'm using an E-MU sound card with multiple outputs.
> Looking forward to reading back from you.

Sure, that should be doable, e.g. with something like:

  gst-launch-0.10 uridecodebin uri=file:///path/to/foo.mkv name=d \
      d.video_00 ! queue ! autovideosink \
      d.audio_00 ! queue ! pulsesink \
      d.audio_01 ! queue ! pulsesink

Now, that would output both audio tracks simultaneously, which isn't
what you want of course, and the names (numbers) of the audio pads might
also differ in your case, but that's not a problem if you write some
code.

How to hook up the two audio tracks depends a bit on the details of your
sound card and sound setup, and what you are using for output
(pulseaaudio? alsa?)

In the easiest case you just have, say, different alsa devices for the
speakers and the headphones (I don't know if this is something that can
be achieved with .asoundrc fiddling or not), then you can just use
alsasink device=foo . It might also be possible to do something clever
with pulseaudio/pulsesink here to force routing one way or another.

If it's the same device, then you would probably have to interleave the
two stereo streams into a single four-channel stream or so? This can be
done with two deinterleave elements and an interleave element, something
like this (completely untested):

  gst-launch-0.10 uridecodebin uri=file:///path/to/foo.mkv name=d \
      d.video_00 ! queue ! autovideosink \
      d.audio_00 ! deinterleave name=split_00 \
      d.audio_01 ! deinterleave name=split_01 \
      interleave name=combine ! alsasink \
      split_00.src0 ! queue ! combine.sink0 \
      split_00.src1 ! queue ! combine.sink1 \
      split_01.src0 ! queue ! combine.sink2 \
      split_01.src1 ! queue ! combine.sink3

You can replace alsasink with fakesink to see if it works in principle.

Good luck, let us know how it goes.

 Cheers
  -Tim



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones

Alex Alab Artemiev
Dear Tim,

I truly appreciate your comprehensive reply. Thank you!
Unfortunately,  I'm  a complete dummy.  I thought that Gstreamer was kind of a player or something.
Now it seems like I have to study this software.
What do I have to download and install to make it happen?

> How  to hook up the two audio tracks depends a bit on the details of
> your sound card and sound setup, and what you are using for output
> (pulseaaudio? alsa?)

I  use  an EMU1820, it has numerous I/O. For instance, I used to listen
to  the  music using my headphones while everybody else was watching TV
using a TV tuner through the same PC and sound card.

Many thanks and a nice weekend!

Kind regards,
Alex

-----Original message-----
From: Tim-Philipp Müller, <[hidden email]>
To: [hidden email], <[hidden email]>
Subject: MKV \ channel two tracks (English & French) simultaneously to different outputs : EN > speakers, FR > headphones
Date: Friday, September 7, 2012

> On Mon, 2012-08-27 at 14:37 +0300, Alex Alab Artemiev wrote:

> Hi Alex,

>> My  name  is Alex, I'm an extensive mkv files user, but it's the first
>> time ever I'm asking an mkv related question.
>> I've got many bilingual movies (Eng+French) and I wish I could watch
>> them in French while everybody else I'm watching them with is
>> listening to the English track.
>> For instance, so that I could have my French track channeled to my
>> headphones and the English one channeled to the speakers for my
>> friends.
>> Searching for a solution, I
>> addressed [hidden email]
>> They recommended me to try GStreamer. That's why I'm asking this
>> question here.
>> Can GStreamer do this kind of channeling? Is it practicable?
>> I'm using an E-MU sound card with multiple outputs.
>> Looking forward to reading back from you.

> Sure, that should be doable, e.g. with something like:

>   gst-launch-0.10 uridecodebin uri=file:///path/to/foo.mkv name=d \
>       d.video_00 ! queue ! autovideosink \
>       d.audio_00 ! queue ! pulsesink \
>       d.audio_01 ! queue ! pulsesink

> Now, that would output both audio tracks simultaneously, which isn't
> what you want of course, and the names (numbers) of the audio pads might
> also differ in your case, but that's not a problem if you write some
> code.

> How to hook up the two audio tracks depends a bit on the details of your
> sound card and sound setup, and what you are using for output
> (pulseaaudio? alsa?)

> In the easiest case you just have, say, different alsa devices for the
> speakers and the headphones (I don't know if this is something that can
> be achieved with .asoundrc fiddling or not), then you can just use
> alsasink device=foo . It might also be possible to do something clever
> with pulseaudio/pulsesink here to force routing one way or another.

> If it's the same device, then you would probably have to interleave the
> two stereo streams into a single four-channel stream or so? This can be
> done with two deinterleave elements and an interleave element, something
> like this (completely untested):

>   gst-launch-0.10 uridecodebin uri=file:///path/to/foo.mkv name=d \
>       d.video_00 ! queue ! autovideosink \
>       d.audio_00 ! deinterleave name=split_00 \
>       d.audio_01 ! deinterleave name=split_01 \
>       interleave name=combine ! alsasink \
>       split_00.src0 ! queue ! combine.sink0 \
>       split_00.src1 ! queue ! combine.sink1 \
>       split_01.src0 ! queue ! combine.sink2 \
>       split_01.src1 ! queue ! combine.sink3

> You can replace alsasink with fakesink to see if it works in principle.

> Good luck, let us know how it goes.

>  Cheers
>   -Tim



> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel




_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel