Share My Creation RECdesk - Screen Recorder/Video Capture/Grabber

recdesk.jpg


RECdesk - A simple and solid "utility" to record your Windows Desktop.

The whole idea is not mine - there are thousands of those utilities... like ShareX (actually I liked this a lot)... but i think having my utility - you will forget all these.... sometimes simple is better..

Is a very good example of all these you can do with B4X easily:

- Automatically download a Software package - the FFMpeg package (jokhttputils2)
- Unzip it at the right (your application) folder that will not need any permission (jSD_ZipLibray)
- Check if the needed command line is there...
- Create TrayIcon and Menu Options (jSystemTray)
- Run the Executable FFmpeg with right parameters (changing easily) hidden... when needed (jShell)
- Select a Region or Full Screen (using a timer at top-right of the screen - wait for your move)
- Capture Video
- Close FFMpeg with the "right" way !
- Show with explorer the right folder video saved...

Features as Utility:
- Record your desktop as MP4 (codec can change easily, but using this for my purposes: MPEG-4/isom/AVC/High 4:4:4 Predictive@L4/x264) - K-lite codec support it.
- Select specific Region or Full Screen to Record.

Some pictures:

rec1.JPG


rec2.JPG
rec3.JPG
rec5.JPG


rec4.JPG


The Windows Standalone (x64) is Free for all !

difficulty-low.png
Very Easy Source-Code !


Source Code: If you are a Licensed Member of this Forum - get the source-code for Free - from here !

Thanks in advance for your support... gives me "energy" to continue creating...

Stand-Alone: Download from here !

btn_donateCC_LG.gif
 
Last edited:

amorosik

Expert
Licensed User
I'm trying the RecDesk project to record to disk the images of a video that is displayed on a PC screen
How to add audio recording?
 

Magma

Expert
Licensed User
Longtime User
I'm trying the RecDesk project to record to disk the images of a video that is displayed on a PC screen
How to add audio recording?
Hi there,

you must edit the ffmpeg command line and add the switch record the audio from specific source...

If your scope is to record what you hear you must check first, if your device support this method, go to audio settings, at control panel of audio, at record... must be there something like "Stereo-Mix" (may be need enable it and select it too), if there you can add at ffmpeg command line this code:

at ffmpeg you can see the list of devices with this command (so you can check how stereo-mix will be... or use your microphone to record everything hearing, your voice either):
ffmpeg -list_devices true -f dshow -i dummy

----

add this too at parameters (after every space is a parameter)
... -f dshow -i audio="Stereo-Mix" ...

So... at RecDESK replace those lines:

B4X:
            Dim par As List
            par.Initialize
            par.Add("-f")
            par.Add("gdigrab")
            par.Add("-framerate")
            par.Add("25")
            If width1>100 And height1>100 Then
                par.Add("-offset_x")
                par.Add(left1.As(String))
                par.Add("-offset_y")
                par.Add(top1.As(String))
                par.Add("-video_size")
                par.Add(width1.As(String) & "x" & height1.As(String))
                'par.Add("-show_region")
                'par.Add("1")
            End If
            par.Add("-i")
            par.Add("desktop")
            par.Add("-f")        'May be dshow 
            par.Add("dshow")    'not working at your PC - remove these two lines...
            par.Add("-vcodec")
            par.Add("libx264")
            'par.Add("-movflags")
            'par.Add("empty_moov")
            par.Add("-f")
            par.Add("mp4")
            par.Add(QUOTE & CaptureFolder & "\" & CaptureFileName & QUOTE) 'at pipe... or - ??? hmmm
            arun("ffmpeg.exe",par)

with those:

B4X:
            Dim par As List
            par.Initialize
            par.Add("-f")
            par.Add("gdigrab")
            par.Add("-framerate")
            par.Add("25")
            If width1>100 And height1>100 Then
                par.Add("-offset_x")
                par.Add(left1.As(String))
                par.Add("-offset_y")
                par.Add(top1.As(String))
                par.Add("-video_size")
                par.Add(width1.As(String) & "x" & height1.As(String))
                'par.Add("-show_region")
                'par.Add("1")
            End If
            par.Add("-i")
            par.Add("desktop")
            par.Add("-f")        'May be dshow 
            par.Add("dshow")    'not working at your PC - remove these two lines...
            par.Add("-vcodec")
            par.Add("libx264")
            'par.Add("-movflags")
            'par.Add("empty_moov")

            par.Add("-f")        'add audio source
            par.Add("dshow")    
            par.Add("audio=" & quote & "Stereo-Mix" & quote )  'Not sure if at your pc is Stereo-Mix or something different... this always changes from language/region settings

            par.Add("-f")
            par.Add("mp4")
            par.Add(QUOTE & CaptureFolder & "\" & CaptureFileName & QUOTE) 'at pipe... or - ??? hmmm
            arun("ffmpeg.exe",par)
 

amorosik

Expert
Licensed User
Ok, very well
There is a way to read the string "Stereo-Mix" that identify the audio channel?
 

Magma

Expert
Licensed User
Longtime User

Magma

Expert
Licensed User
Longtime User
i really don;t know... may be you can read the text will receive from this command:
ffmpeg -list_devices true -f dshow -i dummy

and have a combo to select audio-in for recording... you may be use some way matching text for auto select:

searching for those strings:
Dim sst(3) As String 'english/italian/german - greek - spanish, french (hmm)
sst(0)="Stereo Mix"
sst(1)="Στερεοφωνική μείξη"
sst(2)="Mezcla estéreo"

* something i ve tried at "msupport-remote admin via mqtt" working at 90%
** I think and audio-expert like @stevel05 can help at this, may be he knows what to do... probably there is a way to catch the name of this "source" somehow...
*** also have in mind... that many audio-cards (old always)... not have this option of source...
 
Top