Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • December 04, 2016, 04:14:58 AM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: MFCRecorder - Continued  (Read 18012 times)

4wd

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 4,473
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #50 on: October 02, 2016, 09:13:33 PM »
However, to get the stream with the higher resolution requires a different URL, eg.


Right, and so theres nothing that can be done on MFCrecorder as of yet?

Asudem has not released any code for his updated version of MFCRecorder, however the source is still available for the original release if you want to play with that.

Send him a PM, he was having trouble with thread notifications at one point.  Otherwise, he hasn't been active here or a couple of other sites I know of for the last 3-4 months, it could be that real life has reared it's ugly head  :)

Here's the section of the original source that builds the URL:
Code: C# [Select]
  1. private string GetVideoUrl(Model model)
  2.         {
  3.             try
  4.             {
  5.                 if (_videoServers.ContainsKey(model.Camserv.ToString()))
  6.                 {
  7.                     long modelid = model.Id;
  8.                     if (modelid < 100000000) { modelid += 100000000; }
  9.  
  10.                     return string.Format("http://{0}.myfreecams.com:1935/NxServer/mfc_{1}.f4v_aac/playlist.m3u8", _videoServers[model.Camserv.ToString()], modelid);
  11.                 }
  12.             }
  13.             catch (Exception ex)
  14.             {
  15.                 Log.Error("GetVideoUrl Exception: " + ex);
  16.             }
  17.  
  18.             return "-1";
  19.         }

I assume that the section could be duplicated with the new parameters for the high-res stream with a fallback to the low-res if it encounters an error, eg. 404, etc.
« Last Edit: October 02, 2016, 09:26:35 PM by 4wd »

emm.arr

  • Participant
  • Joined in 2016
  • *
  • default avatar
  • Posts: 2
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #51 on: October 04, 2016, 06:54:54 AM »
Hi All,

I'm new to this forum but I've been following this topic for a while...

I've managed to get the source to build and I've started to re-write the bits of the code that were de-compiled into the 'nasty' IL / Dynamic - (all the CallSite related code) and I'm very keen to get the higher resolution streams working. Does anyone know what the URL's for the higher res streams would look like or where the in the 'non mobile' version of the site I can look at to get them?

I'm hoping to re-write the app as I don;t like the 'clunky' WPF front end that it currently has. I've taken a look a look at the non-mobile site in fiddler to see if I can trace what urls it's using but fiddler soesn't seem to catch them...any ideas?

4wd

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 4,473
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #52 on: October 04, 2016, 07:44:24 AM »
Does anyone know what the URL's for the higher res streams would look like or where the in the 'non mobile' version of the site I can look at to get them?

See here, the links came from this Stream Recorder post.

At this post there is a small tool that will call Livestreamer to record the stream so you can test that there is a stream and the recorded resolution.  Of course, you could just use that tool to record a stream as it loops until a stream is found so you can run multiple instances, each with a different model.

To record the non mobile feed would require you to use RTMP protocol, (thereby using rtmpserv, rtmpsuck, or rtmpdump), and from what I've read the initial handshaking to get that stream isn't the standard.
« Last Edit: October 04, 2016, 07:50:34 AM by 4wd »

emm.arr

  • Participant
  • Joined in 2016
  • *
  • default avatar
  • Posts: 2
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #53 on: October 04, 2016, 08:06:22 AM »
Cheers 4wd - much appreciated.

May I just clarify a couple of points first please....

Are you saying that the format of the URL in the earlier post is correct for higher res streams: -

Quote
http://video482.myfr...4v_aac/playlist.m3u8
http://video482.myfr...mobile/playlist.m3u8

But even if correct I wouldn't be able to use FFMPEG to capture it due to the non-standard handshaking and instead could use the tool (calling livestreamer) you kindly mentioned in the same way that the current MFCRecorder codebase using FFMPEG by spawning from another process?

Apologies in advance...








4wd

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 4,473
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #54 on: October 04, 2016, 08:54:29 PM »
You could use ffmpeg to capture either of the mobile streams, (m3u8 streams), that tool I pointed to just uses Livestreamer.  ffmpeg will give you the option of transcoding, eg. the audio stream to MP3, and then muxing into a MP4 container.

If you read a little more of the thread it also appears that adding the ngrp: and substituting _mobile is not guaranteed to get you the higher-res feed though.

This is only my interpretation of reading through the Stream Recorder forum but you could use rtmpserv or ffmpeg to capture the RTMP stream (the normal non-mobile stream) but you need to perform all the non-standard RTMP negotiation to get the URL to begin with.

MFC go out of their way to make capturing the RTMP stream hard - I think they also block the feed if more than one is detected going to the same IP with no valid login.

Just to clarify a bit more (possibly):
The URLs ending .m3u8 are the mobile streams, you can capture these using Livestreamer, ffmpeg, etc because it's just a HTTP streaming playlist.  You can play them with VLC, MPC-HC, etc.
(It should be noted that there is no mobile (m3u8) stream for Private.)

The non-mobile stream uses Flash and the URL is something like RTMPS://....flv - that requires a Flash video player at the client end.  rtmp(dump|suck|serv) and ffmpeg can capture RTMP(S) streams but there is handshaking to be done before the final URL is known.  As far as I understand, MFC messed around with handshaking a little so that it's not standard, so making it a little harder to retrieve the final RTMP(S) URL.

As I said, this is my interpretation of what I've read.
« Last Edit: October 05, 2016, 05:16:01 AM by 4wd »

highfive7

  • Participant
  • Joined in 2016
  • *
  • default avatar
  • Posts: 1
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #55 on: October 16, 2016, 11:52:15 PM »
hi guys,

first of all thank you so much for providing a simple solution for MFC
but i can't even make any changes on this while i'm running.
nothing won't change.
do i have to modify Settings.xml before launching the "MFCRecorder.exe"

anyway, I did at least the model ID who I want.

and do I also have to modify this section?
<UpdateTime>0001-01-01T00:00:00</UpdateTime>
if so, please let me know how to modify this part.

FYI, i put 2 files in the "MFCRecorder" folder : ffmpeg/ffplay (x86 the latest version of ffmpeg)

i tried clicking on "get model datat" in the file menu and nothing's come up.

OS: Windows 10 x64


any help please?
(if i didn't do anyting wrong, please send me a working version of yours including ffmpeg and ffplay)
« Last Edit: October 16, 2016, 11:58:07 PM by highfive7 »

PacoPaco

  • Participant
  • Joined in 2016
  • *
  • default avatar
  • Posts: 6
    • View Profile
    • Donate to Member
Re: MFCRecorder - Continued
« Reply #56 on: November 11, 2016, 09:23:41 PM »
No news about being able to record at a higher bitrate folks?