Sunday, September 18, 2022

[Solved] Streaming USB webcam via command command line with cvlc (VLC) with MJPG output

Welp, I've been using VLC to stream my webcam to my LAN so I can see when my Amazon packages arrive since my doorbell isn't that loud. At first I used motion since it was the only thing that somewhat worked, but it was horrid...people looked like they were just going across my screen only with the same leg up and just moving every second instead of actually walking. Then I did some tweaks with VLC and it was laggy but it worked way better than motion. After many hours I found that Theora and Ogg had the smoothest results.

Then, I wanted to use only the command line version since it would reduce memory usage by half...then some more hours to even get it working and then some more to get MJPG working then realizing all that time was pointless since now it's way faster without transcoding lol. I also found out that using MKV is (for me) faster than Ogg with far less dropped frames. For MKV you need the libmatroska-dev library. 

    sudo apt-get install libmatroska-dev

Anyways...for those who want to know how to set the GUI for decent webcam streaming on your LAN...see below.


1. Select your video device (duh)
2. Check the [Show more options] box and then fill in the Advanced options.
2 (a) If you want to use MJPG instead of the default YUYV, fill in the third line [Video input chroma format] with MJPG, otherwise leave it blank or whatever other option you need, such as h264. Set the other info so that you can get all your settings done at once. Then click OK
3. At the bottom in the [Edit Options] box, copy the whole line. That's your v4l2 options. You'll need that later so save it into a file otherwise you have to select your options EVERY TIME.

INFO:I use HTTP as my stream so your settings may differ if you stream with something else. And I'm only streaming at 800x448 resolution. Again, it works for my purpose. 

4. Click Stream -> Next, click the pull-down and select HTTP and click Add -> Next.
If you want to transcode, create a new profile. Select Ogg/Ogm

-As mentioned earlier, I switched to MKV-
Then click the [Video codec] tab -> check the Video checkbox and select Theora in the Codec pull-down. Adjust the Frame Rate to fit your needs. I use 16 since it's good enough and doesn't stutter. If you want audio then select that as well. For my purposes, I don't use audio to keep the stream fast. Then click Create, and then Next.

5. Copy the [Generated stream output string] to be used later for the command line option.

6. Click Stream to make sure it works.

7. To save on RAM usage, use the command line program, cvlc

cvlc -vvv <your device> <the v4l2 options> <the transcode info>

    The -vvv device is in [MRL] just above [Edit Options]

cvlc -vvv v4l2:///dev/video0 --no-audio :v4l2-standard= :v4l2-dev=/dev/video0 :v4l2-vbidev= :v4l2-chroma=MJPG :v4l2-input=0 :v4l2-audio-input=-1 :v4l2-width=800 :v4l2-height=448 :v4l2-aspect-ratio= :v4l2-fps=16 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-brightness-auto=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-hue-auto=-1 :v4l2-white-balance-temperature=-1 :v4l2-auto-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-sharpness=-1 :v4l2-chroma-gain=-1 :v4l2-chroma-gain-auto=-1 :v4l2-power-line-frequency=0 :v4l2-backlight-compensation=-1 :v4l2-band-stop-filter=-1 :no-v4l2-hflip :no-v4l2-vflip :v4l2-rotate=-1 :v4l2-color-killer=-1 :v4l2-color-effect=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :no-v4l2-audio-loudness :v4l2-set-ctrls= :live-caching=150 --sout '#transcode{vcodec=theo,vb=815,fps=16,scale=Auto,width=800,height=448,acodec=none,scodec=none}:http{mux=mkv,dst=:8080/}' --no-sout-all --sout-keep --quiet

And if you don't want or need to transcode (since I set the resolution and the fps and all the other options, I'm sending it as I want it...although the fps ends up as 250 [sometimes 1000, not sure what's going on there] instead of 16!)

cvlc -vvv v4l2:///dev/video0 --no-audio :v4l2-standard= :v4l2-dev=/dev/video0 :v4l2-vbidev= :v4l2-chroma=MJPG :v4l2-input=0 :v4l2-audio-input=-1 :v4l2-width=800 :v4l2-height=448 :v4l2-aspect-ratio= :v4l2-fps=16 :no-v4l2-controls-reset :v4l2-brightness=-1 :v4l2-brightness-auto=-1 :v4l2-contrast=-1 :v4l2-saturation=-1 :v4l2-hue=-1 :v4l2-hue-auto=-1 :v4l2-white-balance-temperature=-1 :v4l2-auto-white-balance=-1 :v4l2-red-balance=-1 :v4l2-blue-balance=-1 :v4l2-gamma=-1 :v4l2-autogain=-1 :v4l2-gain=-1 :v4l2-sharpness=-1 :v4l2-chroma-gain=-1 :v4l2-chroma-gain-auto=-1 :v4l2-power-line-frequency=0 :v4l2-backlight-compensation=-1 :v4l2-band-stop-filter=-1 :no-v4l2-hflip :no-v4l2-vflip :v4l2-rotate=-1 :v4l2-color-killer=-1 :v4l2-color-effect=-1 :v4l2-audio-volume=-1 :v4l2-audio-balance=-1 :no-v4l2-audio-mute :v4l2-audio-bass=-1 :v4l2-audio-treble=-1 :no-v4l2-audio-loudness :v4l2-set-ctrls= :live-caching=150 --sout '#standard{access=http,mux=mkv,dst=:8080/}' --quiet


Transcoding with MJPG is about 60% CPU usage, YUYV is about 35% CPU usage, and no transcoding is about 2% (evenings due to less light) to 7% (daytime due to brighter colors) CPU usage. I went with no transcoding since I'm running Linux on a mini PC with only 2 cores and 2 threads.

If you want to just use the GUI, skip the [Advanced options] part and just paste the v4l2 options, which you saved earlier, directly in the [Edit Options] box. You still need to select your [Video device name] tho. Then select the transcode profile you created or uncheck the [Activate Transcode] checkbox to skip transcoding, and then stream.

Hope this helps!

Wednesday, June 22, 2022

Stupid Galaxy/Android keyboard update got rid of "3 x 4 flick", here's how to get it back!

 Well, it might be an unpopular opinion but I like using the 3x4 flick input keyboard and after the latest Galaxy/Android update (I did mine on June 19, 2022 for my Galaxy S20). Well color me surprised when I couldn't type anything properly...WTF! I checked and double checked but couldn't find the "3x4 flick" option! It only had the stupid "3x4" option and you need to move your finger left to right to get the letter you want??...so freaking annoying. I like the tap, flick up, flick down, flick left, or flick right way of entering characters...been using it forever so I have it memorized. I don't want to learn another way.


Luckily after a bit of searching I found out how to get the "flick" part back.


Go to Settings > General Management > Galaxy Keyboard settings > Layout > Button and symbol layout
Select Alternative. Next go back to Galaxy Keyboard settings > Languages and types, and click (in my case) English (US) and select "3 x 4 flick"

All is well again! and Leave my keyboard setting alone!

Wednesday, May 4, 2022

[Solved] Linux: Fix for USB Webcam not being recognized and no /dev/video* for newer kernels or after kernel upgrade

 So my USB webcam was working fine until newer kernel versions. Then all of a sudden it wouldn't show up in guvcview or cheese. Tried a bunch of stuff but it was pointless. Then after much googling, I found two fixes, a temporary one and a permanent one. 
Because this only worked because I tried the temporary fix first, your results may vary. Therefore, try the temp fix to see if your unrecognizable webcam will actually work.

1. [Temporary, necessary after reboot. **Must have a second working webcam**] If you have another USB webcam that actually works, reboot with the working webcam plugged in. This will load uvcvideo during boot. Then plug in the one that doesn't get recognized and it should get recognized.

2. [Permanent] in /etc/modules-load.d create uvcvideo.conf and add the following line

    uvcvideo

*If Fix #1 works, then this will load uvcvideo during boot without needing to actually do Fix #1. Also make sure uvcvideo isn't added to a blacklist.

Tuesday, September 26, 2017

[Solved] Disable hot corner in gnome-shell

1. Start: gnome-shell-extension-prefs
2. scroll down to TaskBar
      -you should see a gear for the settings, click on the gear























      -a new window opens up
3. Go to the Misc tab
      -if it's hidden, you can click the right arrow until you get to Misc,or just make the window bigger
4. Turn "ON" Disable Hot Corner


















5. Close the the TaskBar window and gnome-shell-extension-prefs and you're done!

**I don't remember installing an extension to disable the hot corner so...if you don't find it, let me know!

Friday, January 6, 2017

[solved] ? Windows takes forever / Windows takes a long time to do a windows update

GASP! an MS Windows post! blasphemy!

...but I use Windows at work and ran into the same problem and looked online for ways to solve it but couldn't find a solution...nothing seemed to work.
However! by combining suggestions I ran into something very interesting. Any time there's a Windows update that includes one for Internet Explorer, the update takes forever!
So instead of manually installing everything willy-nilly, just manually install the one for Internet Explorer and update the rest normally.

1. You can just wait until you get that dreaded notice and try your luck...or go to TN Security Advisories and click on Security Bulletin Summaries, the current year...yeah it's 2017 but no updates yet so click on 2016 (unless it's the future!) and then MS16-DEC.
2. Look for the one that says Internet Explorer under Affected Software and click that Bulletin ID, in this case MS16-144.
3. Find your version, download the Monthly Rollup or Security Only file and manually install the update. I chose the Monthly Rollup.
4. Reboot...twice just in case...cause Windows. Then in Task Manager -> Services, make sure BITS is running. Start it up if it's not running and go take a break for a few minutes.
5. Then, if you haven't gotten the "hey there's updates available" message in the tray, try running Windows Update. It should work a lot faster and hopefully get all the necessary updates.

Every now and then (usually three or four times a month) check that BITS is running (I changed mine to automatic...but for some reason, it changes back to manual so I change it to automatic again...and again..) then open up the Windows Update window to make sure it's checking for updates. You can see if it is by looking at the date...if it hasn't changed since the last update, you may have problems during the next update...but fret not, I haven't had any issues these past few months so it does seems to work.

Hope this helped. And let me know if this worked for you!

Cheers!

I may have unintentionally left something out...if you run into a roadblock let me know.
There are plenty of sites that tell you how to manually install updates so I didn't include those instructions here. google it.

Monday, June 17, 2013

Hey Gordon Ramsay et al or whomever will listen...I have an interesting idea for a show!! (June 18, 2013 Japan Standard Time 10:14am)

I bet you get that a lot Chef Ramsay...but I have an idea that is relevant to today's socioeconomic situation. Currently you have shows geared towards those that are basic cooks wanting to become chefs or those that want to make a name for themselves or wanting a turnaround in their current restaurant. But as most people are struggling to make ends meet, I think a show that takes people in the lower class and shows them how to budget correctly and teaches them how to cook smartly will make for an interesting show. I'm kind of sick of seeing Undercover Boss trying to throw in the very often sap story. Every week it has an employee that had this or that happen to them and it seems staged. With the bottom of the lower class society they have a very limited amount to survive and most struggle or starve. I was watching a show about families in welfare trying to make ends meet with around $25 a week just for food. How about a way to teach them how to make nutritional food and feed their families for the whole week at that amount or under instead of eating canned processed food. How to get things for a lower price or even free since most restaurants throw away their food at the end of the day. Even if you only do a few episodes I think it will help those in need especially the children.


Thanks!

Friday, February 1, 2013

[SOLVED] BUFFALO AirStation WHR-G301N not forwarding ports

So my PCi wireless router died after a little over 2.5 years. I was looking to get another cheap router (I got the PCi one at a second hand shop but unopened for around 1800yen (~$20). The good great thing about it was that the port forwarding was super easy. I just needed to figure out how to allow everything thru from my "CTU" (NTT Hikari Fiber's router). After that it was smooth sailing and I was able to access my computer from the outside without any problems.

Fast forward to a few days ago and...well, BUFFALO happened. What a piece of S**T. And I'm not the only one that has issues with it.

[Edit: Please try the port forwarding first with the original firmware before attempting this as you may be one of the lucky ones and have it work right out of the box.]

If you need it to ONLY use the internet and do absolutely NOTHING else...then it's for you. But if you do anything else well you need to modify it and yes...break your warranty. I didn't care about that! I just wanted the port forwarding to work! And if you do too...these are the steps I took and I hope I don't leave anything out.

***Step 1a is if you haven't changed the firmware yet...if you have been mucking with dd-wrt already, go to Step 1b.***

Step 1a.
Get rid of the stupid OEM firmware and get DD-WRT installed. (Just so you know I installed DD-WRT and port forwarding didn't work right away. If yours did then you suck =p ). You can follow these instructions from HERE to get dd-wrt installed. Then once you've upgraded to the latest firmware, changed the username and password...

(Step 1b. - If you do Step 1a skip this one.
So you already have it installed and been pulling your hair out trying to get port forwarding working but it just won't go...well this is EXACTLY what I did. I got OpenWRT's upgrade file from here and get openwrt-ar71xx-generic-whr-g301n-squashfs-factory.bin (maybe you don't have to but this is how I got mine to work...) then do a firmware upgrade and select "Reset to default settings" and start over (actually it didn't install OpenWRT but it was one of the steps I did to get it working. It's highly possible you just need to reset to "factory defaults".)...see step 2)

Step 2.

DON'T click on "Apply Settings" AT ALL until you finish EVERYTHING! even the port forwarding lines.
Instead click on "Save" for each page/change you make.


These are the lines I put in my NAT->Port Range Forwarding. I have 6 lines...just click add 6 times and then enter your info (IP Address of course should be changed to YOUR server IP).

==============================================================
Application start end Protocol IP Address Enable

1 1 138 Both 192.168.0.100 "checked"
2 140 444 Both 192.168.0.100 "checked"
3 446 630 Both 192.168.0.100 "checked"
4 632 8079 Both 192.168.0.100 "checked"
5 8081 22272 Both 192.168.0.100 "checked"
6 2274 65535 Both 192.168.0.100 "checked"
==============================================================


of course you could change the lines to whatever you wish...but with one line from 1 to 65535 didn't work initially for me but that was before I started over. It might work for you.

Step 3.

After I went thru every single tab and option that I needed, I finally clicked on "Apply Settings" while in the Administration->Management tab. Next I clicked on "Reboot Router". I also rebooted my ISP's equipment...Then I waited and got online and crossed my fingers. Using THIS link (Open ports checker) I did what I did MANY times and clicked on check common links at the right (near the bottom)....and oh the sight of the green flags were amazing =) FINALLY!!! it works!

Hope this wasn't a fluke and that it helps SOMEONE out there!
cheers.