Recording both mic and system sound in ShareX - windows

How to record both microphone and system sound using shareX?
In shareX, under screen-recorder settings, I see two options:
virtual-audio-adapter
Microphone
When virtual-audio-adapter is selected, it only records the system sound. When Microphone is selected, it only records the microphone. I am unable to find any way.

Open ShareX --> Task settings screen. Then follow the below steps. Paste this:
-f dshow -i audio="<replace your audio>" -filter_complex amix=inputs=2:duration=longest
For example in my case:
-f dshow -i audio="Microphone (Realtek(R) Audio)" -filter_complex amix=inputs=2:duration=longest

Related

Merge two video devices into a third device by placing the video next to each other

The Situation
I have two webcams (with associated video devices /dev/video0 and /dev/video1). The first webcam generates a resolution of 720p while the other one generates 1080p.
The Task
I would like to create a new video device /dev/video2 that is defined by putting the video from the first webcame next to the one coming from the second webcam.
Install and modprobe v4l2loopback (your distro is unknown so I can't give you exact, copy-and-pasteable instructions).
Scale and stack with ffmpeg:
ffmpeg -i /dev/video0 -i /dev/video1 -filter_complex "[1]scale=-1:720[right];[0][right]hstack,format=yuv420p" -f v4l2 /dev/video2
Note that the output will be 2560x720.

How to specify Input video device when I use ffmpeg

I am trying to use ffmpeg to record video in command line.
I tried:
.\ffmpeg.exe -f vfwcap -i 0 c:\test.mp4
And it pops up a window asking for "Video Source", Select a Video Device: "Integrated Camera". So I tried:
.\ffmpeg.exe -f vfwcap -i "Integrated Camera" c:\test.mp4
But it still pops up the same window. How I can specify the 'Integrated Camera' as my input device to ffmpeg?
vfwcap is deprecated as mentioned here. You can use dshow instead of vfwcap.
ffmpeg -f dshow -i video="Integrated Webcam" camera.mp4

Use Windows ffmpeg to record audio output without using the StereoMix

I am looking for a way to record the audio output (speakers) using Windows ffmpeg.
I need to do this WITHOUT installing any extra dshow filters and without having the StereoMix input enabled (since this is not available on many computers).
I have read in the ffmpeg documentation that the -map would allow redirecting an audio output so that ffmpeg sees it as an audio input but I can't find any example of how to do that.
In Linux I managed to do it like this:
ffmpeg -f pulse -ac 2 -ar 44100 -i alsa_output.pci-0000_00_1f.4.analog-stereo.monitor -f pulse -ac 2 -ar 44100 -i alsa_input.pci-0000_00_1f.4.analog-stereo -filter_complex amix=inputs=2 test.mp4
However I can't find a similar way to do it in Windows and MacOSX.
So in short, is it possible with the Windows ffmpeg to record audio from the speakers without extra dshow filters (out-of-the-box)? Same question goes for MacOSX.
Thanks!
C:\DIR>choco install ffmpeg
C:\DIR>ffmpeg -list_devices true -f dshow -i dummy
[...]
[dshow # 00000000005d1140] DirectShow audio devices
[dshow # 00000000005d1140] "Microphone Array (Realtek High "
[dshow # 00000000005d1140] Alternative name "#device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\Microphone Array (Realtek High "
[...]
C:\DIR>ffmpeg -f dshow -i audio="Microphone Array (Realtek High " NAME.wav
[...]
[press 'q' to quit]
[...]
To play the file, I figured I needed to apply a work-around to a bug in the Windows SDL output device configuration,
https://trac.ffmpeg.org/ticket/6891
C:\DIR>#rem https://trac.ffmpeg.org/ticket/6891
C:\DIR>#rem set SDL_AUDIODRIVER=directsound or winmm
C:\DIR>set SDL_AUDIODRIVER=winmm
C:\DIR>ffplay -i NAME.wav
It's fun to watch ffplay's real-time spectrogram.
C:\DIR>ffplay -f dshow -i audio="Microphone Array (Realtek High "
[...]
[press 'm' to mute the echo]
[...]
[press 'q' to quit]
[...]
I saw other ways of playing the audio file using the Windows API from Python or its media player.
C:\DIR>type winsound-play.py
import sys, winsound
winsound.PlaySound(sys.argv[1], winsound.SND_FILENAME)
C:\DIR>c:\Python27\python winsound-play.py NAME.wav
C:\DIR>explorer NAME.wav
C:\DIR>"%ProgramFiles%\Windows Media Player\wmplayer.exe" /task NowPlaying %CD%\NAME.wav

recording live video stream from tv card using ffmpeg in windows

I want to capture thumbnail every 1 second from tv card(tv signal) using ffmpeg in windows.
first of all, to record live video from tv card, I tried below.
ffmpeg -f dshow -i video="SKYTV HD USB Maxx Video Capture" -r 20 -threads 0 D://test.mkv
But it didn't work.
the Error message is
"[dshow#000000000034d920] Could not run filter
video=SKYTV HD USB Maxx Video Capture: Input/output error"
I use the device called 'SKYTV HD USB Maxx Video Capture' for getting tv signal(TV card).
(people usually suggest "ffmpeg -f oss -i dev/dsp -f video4linux2 -i dev/video0/tmp/out.mpg"
but I dont think it works at window. this is the error message i got: "Unknown input format: 'video4linux2'")
what should i do to record live video and get thumbnail every 1 second from tv card(tv signal) using ffmpeg in window?
Please help..!
First be sure that the video label you use is really the label return by:
ffmpeg -list_devices true -f dshow -i dummy
More info here
But another solution should be ti use the old "Video For Windows" (VFW).
To try that, list your device with:
ffmpeg -y -f vfwcap -i list
And use your device number as value of the -ioption:
ffmpeg -y -f vfwcap -r 25 -i 0 out.mp4
And if finally you are able to record your stream, there is different options, but in your case everything is clear describe here
ffmpeg -y -f vfwcap -r 25 -i 0 -f image2 -vf fps=fps=1 out%d.jpg

ffmpeg command to is throwing error

I am new to ffmpeg usage.
I am trying to merge two video file.
The below bullets will provide you more details about it.
1. I-ball usb camera
2. Screen capture utility named UScreenCapture.
The below command i am using on DOS.
ffmpeg -f dshow -i video="iBall Face2Face Webcam C12.0" -f dshow -i video="UScreenCapture" -r 25 -vcodec mpeg4 -q 12 -f mpegts test.ts
This command captures only from Uscreencapture source.
while grabbing frames from Camera it is giving me an error saying that
real-time buffer 90% full! frame dropped!
real-time buffer 121% full! frame dropped!
Can any one provide me the solution for this issue?
Looks like you need the ffmpeg -map function
"Designate one or more input streams as a source for the output file"
FFMPEG "-map" Documentation

Resources