ShareX / ShareX

ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
https://getsharex.com
GNU General Public License v3.0
29.75k stars 3.21k forks source link

Share X not recording audio - Please Help! #5147

Closed Jamington closed 3 years ago

Jamington commented 4 years ago

Hello there!

I have been using ShareX to record audio snippets from Japanese shows on my Windows 10 PC(for language learning). I am using the setup outlined here https://youtu.be/CfvDKgNUSi8?t=1196

Unfortunately, my recordings are blank. When I click on the VLC recording, I get this window. The bar at the bottom has --:-- next to it and there's no audio. Not even a recording that rolls but doesn't have sound, there's just nothing, no recording at all.

Every time I try to record using my hotkey for recording, it takes the program a few seconds to start recording. It also takes it a few seconds to stop after I press the hotkey again. The recordings are always blank.

Here's what I've tried so far! I've followed exactly the setup in the video, which I know works for others. I have installed ffmpeg and I've installed recorder devices. I've restarted my PC. I've uninstalled and reinstalled ShareX. Nothing seems to work. I have only been trying to record windowed applications, not full-screen ones.

Does anyone have any advice on this, please? If not, perhaps an alternative program for recording audio snippets? Thank you for your time! 1szZO638BM

nalam002 commented 4 years ago

Does it work if you also record the video along with the audio and extract the audio afterwards with something like Pazera's free software?

Jamington commented 4 years ago

Hi there! Thank you for your comment and suggestion. I changed the video source to 'screen-capture-recorder' and two things happened

I tested with CMD and got this error message... Do you perhaps have any other ideas, please?

Thanks! Capture

nalam002 commented 4 years ago

Interesting. I can't seem to reproduce your problem on ShareX 13.2.1, everything works ok for me. How about you set audio source to None/Microphone and add "-f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest" to the additional command line arguments? That's what I'm doing. (Also I use AAC as my audio codec)

Here's my complete command line if you wish to compare:

-rtbufsize 150M -f dshow -framerate 30 -i video="screen-capture-recorder":audio="Microphone (Realtek(R) Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -c:a aac -ac 2 -b:a 192k -y "output.mp4"
Jamington commented 4 years ago

Thanks for the reply! I'm also on ShareX 13.2.1. I tried a few things after reading your response. The first thing I did was add what you suggested to the additional command line arguments. I then tried the following:

result: ShareX says I can't have both of them set to 'none'

command line in this case: empty

result: same error outlined in my original post

command line in this case: -rtbufsize 150M -f dshow -i audio="Microphone Array (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest -c:a libmp3lame -qscale:a 4 -y "output.mp3"

result: same error as in my comment from yesterday

command line with no audio source: -rtbufsize 150M -f dshow -framerate 30 -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -y "output.mp4"

command line with mic as audio source: -rtbufsize 150M -f dshow -framerate 30 -i video="screen-capture-recorder":audio="Microphone Array (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -c:a libmp3lame -qscale:a 4 -y "output.mp4"

This is tricky... Do you have any other ideas perhaps?

I'm grateful for your help so far!

nalam002 commented 4 years ago

Hmm, maybe try removing the additional arguments and try with video + only mic and video + no sound, so we are not using the ""virtual-audio-capturer"" at all. This might help us pinpoint if the problem is with the audio codec or the video one.

I also found another person's post who mentioned that adding -thread_queue_size 5096 in front of each -f dshow solved his problem.

Jamington commented 4 years ago

Thanks for the reply. I removed the additional arguments and tried a few things

The result in both cases was the same:

I also added the -thread_queue_size 5096 in front of each -f dshow, so my command line looks something like -rtbufsize 150M -thread_queue_size 5096 -f dshow -framerate $fps$ -i video="screen-capture-recorder" -c:v libx264 -r $fps$ -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -y "$output$"

It makes no difference though - same blank recordings and, when I test with CMD, I get the the same error as in my comment from yesterday.

Since I had virtual-audio-capturer off in all these cases, maybe the issue is with the video codec? But then, why would that prevent me from taking just audio snippets without video, as I originally intended? I'm pretty lost ngl

Thanks

nalam002 commented 3 years ago

@Jamington This is super late and you have probably solved the issue by now, but suddenly one day this issue started popping up for me too, and after a lot of wrestling I managed to fix it by adding -rtbufsize 1024M -thread_queue_size 512 in front of my video input and -rtbufsize 100M -thread_queue_size 1024 in front of the audio. Complete command line:

ffmpeg -thread_queue_size 512 -rtbufsize 1024M -f dshow -framerate 15 -i video="screen-capture-recorder":audio="Microphone (Realtek(R) Audio)" -rtbufsize 100M -thread_queue_size 1024 -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest -c:v libx264 -r 15 -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -c:a aac -ac 2 -b:a 192k -y "output.mp4"
github-actions[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

kunamvahees commented 2 years ago

-f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=longest

Adding this line enable me to record both Audio IN and OUT with my capture. Thank you.