aMSN Forums
November 24, 2014, 08:46:53 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: New forum for aMSN !!
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Whitch Video Codec uses MSN Live Messenger 2009 ?  (Read 10854 times)
chr3001
Newbie

Offline Offline

Posts: 5


View Profile
« on: May 18, 2009, 05:13:10 pm »

Hello,

Does Anyone know, what Codec is used by the Windows Live Messenger 2009. In erlier versions, the ml20 codec was used for webcam sessions.

The new Version is now using RTP as transport Protocol.

I sniffed a Webcam session between me and a Friend with Wireshark. In Wireshark i see 4 Streams. 2 Forward (Me -> Friend) Streams and 2 Reversed (Friend -> Me)  Streams. There is 1 Stream with Payload Type 121 in Forward and Reversed Direction. And a Payload Type 118 Stream in each Direction.

I saved the Payload of the PT 121 Stream with Wireshark "Save Payload as"
Then i opened the stream File with a Windows XP Program called "Media Converter". This Program says, that this File uses the VC-1 Codec and uses AP@L1
AP@L1 means. Advanced Profile @ L1. I dont think the Webcam Stream is really encoded with VC-1 with AP@L1. I think this codec is used for Blue Ray and not for Webcam sessions :-)
If i rename the File to stream.vc1, then ffplay can play the File. But the Framerate is toooooo high. I think the PT 121 Stream contains only the Key Frames and the PT118 contains the rest.
But i cant open the PT118 stream.

Perhaps anyone knows the correct Codec for the streams. Then i can try to combine the 2 PT 121 and 118 streams to a complete Video File.

Sorry for my bad english ;-)

Greeting

Chris
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #1 on: May 19, 2009, 01:51:28 am »

Hi, welcome to the forums.
There are two possible codecs for the RTP video of WLM 2009, the first one with the highest priority is "x-rtvc1" with payload type 121, the second one is H263 with payload type 34.
Anyways, the framerate issue is not because it only contains the keyframes, it's simply because it's RTP, ffmpeg probably guesses the framerate is 30 fps, but since there is network lag, etc.. the actual framerate might be around 10 or 15 (it's also a dynamic framerate, it can't be fixed)... so you'd actually need to depayload the RTP and use the RTP timestamps on each buffer...
there is no PT 118, maybe you meant 114, which is the PT for the highest priority AUDIO codec : "x-msrta"
your english was quite good! Smiley
Logged

KaKaRoTo
chr3001
Newbie

Offline Offline

Posts: 5


View Profile
« Reply #2 on: May 19, 2009, 04:13:01 pm »

Thank you for your fast answer :-)

This is the first forum where i got an answer to my post :-)

Just after submitting my first post here, i took a look at 5 very interesting MSN Protocol Packets some seconds earlier the RTP stream starts. This 5 packes where BASE64 coded. After decoding them i got a full SDP description for the stream :-)

The stream is x-rtvc1. But i have the x-msrta packets, too. But my friend and i did no audio conversation. I dont have a microphone^^ The 114 packets are in both directions and this two PT 114 streams are about 7 MB size. Is this audio stream a type of carrier ?

I tryed to depayload the stream with rtpplay. I used "rtpplay.exe -T -f stream.rtp 127.0.0.1/5050" to send the stream. And "rtpdump.exe -F payload -o video.vc1 127.0.0.1/5050" to receive the Payload.
Without the -T parameter rtpplay should use the RTP Timestamps, but the stream is sent in 5 seconds.Thats to fast i think.
With the -T parameter rtpplay sends the stream with a timing between packets corresponds to the arrival timing.

Is it possible thats there a small difference between VC-1 and x-rtvc1 ? I read some information about rtvc1 and the headers of the frames.
There is a frame caching feature which VC-1 possibly not has ?

If i try to open a saved payload of an PT121 stream with ffplay, i see only the first upper half of the Video. If i use an hex editor and remove this character chains from the whole stream File "cc000000" "dc000000" "df000000" then i can see the full picture but even with a to high framerate and it seems that there are some missing frames.

Perhaps a VC-1 decoder doesn´t want this character chains and produces a bad picture.
Perhaps a x-rtvc1 decoder wants this character chains and produces a good picture with a better Framerate.

I tryed to send the stream via RTPPLAY to Mplayer. I started "mplayer.exe sdp://1.rtp" but mplayer doesn´t reorganize the codec.

Code:
Failed to initiate "video/X-RTVC1" RTP subsession: RTP payload format unknown or
 not supported
No stream found


My 1.sdp looks like this

Code:
v=0
o=- 1234 1 IN IP4 127.0.0.1
s=SDPTest
c=IN IP4 127.0.0.1
i=<none>
t=0
m=video 5050 RTP/AVP 121
a=rtpmap:121 x-rtvc1/90000


I tryed it with a=rtpmap:121 vc1/90000 ,too.But mplayer gives the same error.
Is there somewhere a Player, which can open a x-rtvc1 stream ?

I hope my questions are not to off Topic. Because i´m asking about RTP and not the MSN Client itself.
This Forum is my last hope to get such stream working. I asked many Mailing Lists and Forums without any results.This is the first anwer i got to my questions :-)

Greetings

Chris
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #3 on: May 19, 2009, 07:04:24 pm »

hehe, you're welcome! We always try to help out people! But I'm also always curious as to why someone would ask such questions.. what exactly are you trying to do ?
Anyways, the RTVC1 is the probably from the "RT" suite of codecs recently made by microsoft (RT = Real Time, they have the RTAudio codecs for audio, which is the "x-msrta").. the 'vc1' only means it uses VC1 but I think that every recent codec uses VC1, I know that VC1 is used even by the very old WMV3 codec, as well as msmpeg4, h264, etc... this is just another iteration of VC1 made into an "RT" codec by microsoft...
I'm actually a bit surprised that ffmpeg could play that sort of file...
About framerate, this is what we call a 'live pipeline', it's "live" so there is no specific framerate, basically as soon as a frame reaches you, you play it... (after going through a jitterbuffer)
I don't know about rtplay or rtpdump.. but does it even support the rtvc1 payloading? I'm sure that the RTP payloader is specific and you need the depayloader for it to extract the actual data from it...
Have a look at the microsoft standards for more info about the payloading : http://msdn.microsoft.com/en-us/library/cc431494.aspx
(it does say in there that the RTVC1 codec is the codec called "RTVideo stream codec")
Maybe once you are able to depayload it correctly, you'll be able to play the audio... but I'm not sure if ffmpeg will be able to play it all correctly considering all the possible payloading options that you may get...
Note also that you will probably need a jitterbuffer to compensate for network jitter.. in other words, rearrange packets so they are taken in the right order (otherwise you think you loose those keyframes)...

anyways, you're in luck because i've worked on all of that not too long ago (aMSN's SVN already does support making video calls using this new SIP method introduced in WLM 2009) and I work for Collabora which specializes in VoIP and RTP, etc.. so i'm famaliar with all that stuff! Smiley
Logged

KaKaRoTo
chr3001
Newbie

Offline Offline

Posts: 5


View Profile
« Reply #4 on: May 20, 2009, 06:20:50 pm »

Hello,

thank you for your answer and the link to this very interesting document. I learnd many more over this codec and the different payload headers :-)
My friend and me are trying to write a Free MSN Webcam Recording software. Like the ML20 MSN Webcam recorder. This program doesn´t work on WLM 2009. The Ml20 codec is no longer in use in WLM 2009. We dont want such screen capture tool, we want to get the Streams from the Network Layer and not from a screen or Desktop capture.I have no idea how to write such program, this is the job of my friend.My job is to get informations about the streams and payloads. A very hard job, too. I found out now :-)

With the informations from the MS document i tryed to depayload my test stream manually. It worked good on all I-Frames. I got the same result if i remove those character chains i wrote in my last post. But i got no luck with the P Frames. I can remove all headers from this frames, but ffplay does not decode them :-(
I think the problem is the difference betweem raw vc1 and x-rtvc1. A VC-1 Decoder can decode the first Packet of an I-Frame. The second third ..... last packet starts with an header which a vc1 decoder doesnt understand. If i remove this headers, the I Frame is decoded perfectly.Because iam loosing all P Frames in the stream, the Framerate is so extremly high.

If i had an Player for x-rtvc1, i think i dont need to remove any headers from the stream. Perhaps the player needs this informations.
I goggled days and days, but theres no player or codec pack to test :-(

Do you know a player oder an RTP Player which can read such streams ? I tryed VLC, Mplayer and ffmpeg, ffplay with no luck.

Greetings

Chris
Logged
chr3001
Newbie

Offline Offline

Posts: 5


View Profile
« Reply #5 on: May 22, 2009, 03:45:47 pm »

Ok, i give up. Theres no Player out there for that Video Format.

The Windows Media Player isn´t able to play that file,too.
The programm does not read a SDP File. If it could read such files i think i can open the stream.
But this player can nothing :-( Theres only the useless Media library :-(

Thats a big reason why i use VLC  :wink:

Ok, theres no player and no program for such stream.

You know many about codecs and VOIP :-)
My question, do u know a document like the one you told me, about the payloads and headers of VC-1 ?
Perhaps i can rewrite the headers to VC-1 to open the stream with some frameloss but with an better result like now. Now i have only "I" frames. Perhaps i can get some SP frames, too. It´s worth a try Wink

This is my last try to get the stream working. I i fail again, We´ll drop the MSN recorder project and the people who want to record webcam sessions need to use those trashy Screencapture tools for to much money :-( Or wait for another guy who tries to get information about a codec which no one uses.

Greetings

Chris
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #6 on: May 22, 2009, 04:54:58 pm »

Hi, well, that's what i thought, there's no player.. sorry for the disappointment! changing the headers won't help.. the difference between vc1 and RTVideo VC1 is not about the headers, it's about the codec, the format, the method of compression, the huffman tables, etc... the headers are just a there to help the player which *already understands the format* to decode the stream correctly... changing the headers will just not work!
About other documents, look at the link, on the left side, you have all the standards documents microsoft released... search for it there...

another solution for you would be to simply use the codec's DLL and have M$ dll decode the stream for you :p I know Ole Andre did it for the RTAudio codecs, so you would just need to do the same for the video codecs..
Have a look here : http://bazaar.launchpad.net/~oleavr/oabuild/gst-plugins-farsight/files/head%3A/ext/mscodecs/
at the code he did to hook up the RTMPLTFM.dll that comes with WLM... note however that this is NOT an easy task, it's very difficult.. but it still is a possible solution...
Logged

KaKaRoTo
chr3001
Newbie

Offline Offline

Posts: 5


View Profile
« Reply #7 on: May 22, 2009, 07:09:30 pm »

Thank you for this link.

I looked there but i don´t understand anything :-)

We´ll decided to give the project up :-( So we must use that expensive trashy screen recorder software. I hope someone tryes to get a RTP Recorder working. We will do it not for the next time.

Thank you for your help. Only here i got some answers. I postet on the Wireshark, ffmpeg and mplayer mailinglist, too. But no answer. BTW: I hate that old geeky and unconfortable mailinglists ^^ Why there are not opening a forum. Hey. were in 2009  Cool
For the next time i dont want to see any Hexadecimal number, i dreamed of that cf000000 some nights :-)

Thanks again 4 helping :-)

Greetings

Chris
Logged
kakaroto
Administrator
Super Power User
*****
Offline Offline

Posts: 9428


View Profile WWW
« Reply #8 on: May 22, 2009, 08:29:43 pm »

lol no problem! too bad it's bein abandonned, but maybe sometime in the future you'll be able to pick it up and continue doing it... hopefully there will be a player for rtvc1 Smiley
Logged

KaKaRoTo
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!