That “bug” is from 2010. The new kernel made that error show up, 4.19, including 4.19.1.
It breaks with random new kernels.
Now to dissect the script from here, that claims to fix it. Just want to see what it does, I doubt I need the script.
All the script does is rmmod and modprobe the snd-usb-audio module.
rmmod -w snd-usb-audio
Doesn’t work, change the w to f, and it works. What is the w supposed to do?
Interesting, rmmod -f snd-usb-audio, and then modprobe snd-usb-audio, actually fixed it. Put those in a sh file, ran it, and started the webcam recorder, and got the error again. Added the sleeps to my sh file, to see if that changes anything. And sound works again.
The recording has no audio, just no errors. Well, no errors in the webcam recording program. Microphone works in other stuff. If you can see the bar lighting up or whatever, then it’s working, just not in Xeoma.
Microphone works in OBS, recorded nothing except audio. Can’t use Audacity, can’t change the audio driver.
Might switch the recording software. Sucks I paid a whooping $10 for it.
Might be a Xeoma problem, just recorded audio in OBS, without ever opening Xeoma. After rebooting because I semi-crashed Linux. If you use ffmpeg, you get better video. I used the highest resolution. Going to make a script to record using ffmpeg, assuming I can get audio.
I think I might know the problem, is Xeoma using ALSA? I’m using pulseaudio, which is probably the problem.
If you are recording from RAW, you have to use a smaller resolution, if you want 30 FPS.
Writing the Python script now.
Script works. Python is easier then shell or bash.
#!/usr/bin/env python import subprocess, shlex from datetime import datetime while True: d = datetime.now() output_file = "/media/xxx/xxx/" + str(d.year) + "-" + str(d.month) + "-" + str(d.day) + "_" + str(d.hour) + "-" + str(d.minute) + "-" + str(d.second) + ".mkv" ffmpeg = 'ffmpeg -f pulse -i alsa_input.usb-046d_0825_B6A75580-02.analog-mono -f v4l2 -framerate 7.5 -video_size 1280x960 -i /dev/video0 -t 1800 ' + output_file runner = shlex.split(ffmpeg) subprocess.run(runner, stdout=subprocess.PIPE)
To lazy to add it to the Scripts page, not a very big script anyways. Need to change it to 10 seconds, to make sure it works as intended, it’ll record in 30 minute chunks until you kill the script, then you’ll get a Python error.
Works as intended, and the CPU cranks up to 41C. Seems to happen after the first chunk while starting the next one. Nope, recording and doing other stuff at the same time, increases the temperature. Can you encode it with a video card? The quality won’t be as good. Oh wait, that might of been NVIDIA.
Using pulseaudio doesn’t get that error yet.
That script will probably need to be modified, unless /media/xxx/xxx exists, and your device name is the same, you can get it by running “pacmd list-sources”, it’s the name. Mine is index 0.
Beats using the WMV format in Xeoma. If I use a different format, if I close Xeoma, the recording will be corrupt.
If you want 30 FPS, use the below command, and the file will be huge.
ffmpeg -f pulse -i alsa_input.usb-046d_0825_B6A75580-02.analog-mono -f v4l2 -input_format mjpeg -framerate 30 -video_size 1280x960 -i /dev/video0 -t 1800 -c:v copy
What happens if you remove the -c:v copy?
[mjpeg @ 0x555848638240] unable to decode APP fields: Invalid data found when processing input
You’ll see that. It does record, and in H264. I’ll just use the RAW video at 7.5 FPS, it looks better. And that error doesn’t repeat itself constantly.
Going to use the mjpeg format, the RAW video has issues, like missing video. It pauses, and then it’s corrupt or something. And the files are almost 1 GB for 30 minutes.