Open tolga9009 opened 8 years ago
I just tried this newest version with my 0x005d, and it worked! I already notified @seveirein that the colorspace wasn't auto-detected for me, but that seems to be about it. I'm now going to try a few different configurations, to see if they hold up as well!
What tests do you want to perform? Or just test it?
I'm just returning from vacations, I'll report later mi findings...
@Criptos just general testing, using it in your environment with the advertised features, like auto-detecting source, auto-detecting resolution, auto-detecting colorspace, etc. We just want to make sure, it runs with all available Elgato GCHD revisions and all implemented features.
Thanks for helping!
Do I need to make the steps for the firmware?
because on my first try I got: Device not supported...
EDIT:
Did the driver thing... there are 2 directories, beddo y beddo3, I used beddo.
When trying to open with vlc
This revision of the Elgato Game Capture HD is currently not supported.
Version confirmed: Bus 001 Device 011: ID 0fd9:005d Elgato Systems GmbH Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0fd9 Elgato Systems GmbH idProduct 0x005d bcdDevice 2.00 iManufacturer 1 Elgato iProduct 2 GameCapture HD iSerial 3 080F39A944 bNumConfigurations 1
Strace shows: strace -eopen gchd open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libusb-1.0.so.0", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libudev.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/proc/filesystems", O_RDONLY) = 3 FIFO: /tmp/gchd.ts has been created. Waiting for user to open it. open("/tmp/gchd.ts", O_WRONLYOct 18 17:00:37 strix.aullox.com kwin_x11[1758]: QXcbConnection: XCB error: 3 (BadWindow), sequence: 60101, resource id: 33866479, major code: 10 (UnmapWindow), minor code: 0 Oct 18 17:00:37 strix.aullox.com kwin_x11[1758]: QXcbConnection: XCB error: 3 (BadWindow), sequence: 60106, resource id: 33866479, major code: 4 (DestroyWindow), minor code: 0 ) = 3 open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 4 open("/sys/bus", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 8 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:1", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:2", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:10", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:5", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb2/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/c189:128", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-0:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-4:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-4:1.1", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-5:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-5:1.1", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.2/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-5:1.2", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-6:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-9:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.1/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:1-9:1.1", O_RDONLY|O_CLOEXEC) = 9 open("/sys/devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0/uevent", O_RDONLY|O_CLOEXEC) = 9 open("/run/udev/data/+usb:2-0:1.0", O_RDONLY|O_CLOEXEC) = 9 open("/sys/class", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/usb1/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb1/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb1/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb1/descriptors", O_RDONLY) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/1-4/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-4/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-4/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-4/descriptors", O_RDONLY) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/1-5/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-5/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-5/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-5/descriptors", O_RDONLY) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/1-6/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-6/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-6/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-6/descriptors", O_RDONLY) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/1-9/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-9/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-9/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/1-9/descriptors", O_RDONLY) = 7 open("/sys/devices/pci0000:00/0000:00:14.0/usb2/uevent", O_RDONLY|O_CLOEXEC) = 7 open("/sys/bus/usb/devices/usb2/busnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb2/devnum", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb2/speed", O_RDONLY) = 7 open("/sys/bus/usb/devices/usb2/descriptors", O_RDONLY) = 7 open("/dev/bus/usb/001/011", O_RDWR) = 10 This revision of the Elgato Game Capture HD is currently not supported.
Criptos, you are using the main branch, not the dev branch. Only the dev branch supports your device. git checkout dev
And then a rebuild should fix your problem.
No video in my setup... Waiting for user to open it.
Initializing device. Hardware revision is V1300230
and vlc shows blackscreen and OBS doesn't react...
Second try:
[root@strix ~]# gchd
FIFO: /tmp/gchd.ts has been created.
Waiting for user to open it.
Initializing device.
Hardware revision is V1300230
No signal found. Defaulting to HDMI.
HDMI input forced.
terminate called after throwing an instance of 'std::runtime_error'
what(): Failure changing states.
Aborted (core dumped)
[root@strix ~]# gchd
FIFO: /tmp/gchd.ts has been created.
Waiting for user to open it.
Initializing device.
Hardware revision is V1300230
I'm using a Vixia HFG20 camera, hdmi is enabled and it works. Tried with the HDMI output of a sony camera, didn't work neither.
Now, an Innocent question... Do I need to connect something to the HDMI Output? I'm just using the HDMI Input and the USB.... and nothing at the HDMI output...
@Criptos No, the output shouldn't be necessary, I also have an Elgato 005d, and never connect anything to the HDMI out, I only ever use the HDMI in.
Well, then.... isn't working for me... and I don't know why... Do i need to copy the udev rule file to the rules directory? Or the driver works fine without it?
@Criptos Thank you for the test Criptos! Not sure what is causing your issue, but you shouldn't need the udev rule file if running gchd as root (which you are). For the time being, be sure to reset the device by unplugging and replugging the USB cable back in between runs, when testing. The next step to figuring out your issue would be to do a Wireshark USB capture. See https://github.com/tolga9009/elgato-gchd/wiki/USB-Wireshark-Capturing-on-Linux for how to do that.
Reporting back, did a git pull, rebuild everything and el gato is working...
Do you still need the usb capturing? It worked ok, I'm using a cheap "go pro" style camera... it worked fine...
I'll do other testings with other cameras later...
Thanks Criptos, glad it is working for you. Very happy to hear that.
Ir seems is a video camera related issue.
Stream from the action camera worked, but stream from the vixia results in a black screen.
I'll try another camera later.
Your video camera probably outputs a mode we don't yet support. Currently we support for HDMI 1080p@60hz, 1080i@60hz, 720p@60hz, 576p@50hz, 480p@60hz. For Component we support 1080p@30hz, 1080i@60hz, 720p@60hz, 576p@50hz, 576i@50hz, 480p@60hz, 480i@60hz. For Composite we support 576i@50hz and 480i@60hz.. This covers the vast majority of sources, except , in particular, cameras. They often have a lot of output modes that are a different refresh/frame rates. If you give us a capture, and tell us what the mode is, we may be able to add support.
Hi, in my case gchd starts recording, but stops recording after some minutes. gchd itself stil runs at this moment, but stops writing data into fifo/file. Mostly between four and ten minutes are possible to record. Has anyone similar problems?
I'm using Elgato GCHD (0051) under Arch Linux (4.8.4-1 x86_64) with Elgato firmware 2.0.3.
@ralfdonald this is a sync issue, where FIFO reader and / or writer are taking to long. This often happens on weak computers, like dual core systems and ultra low power devices. One way to fix it, is setting thread priority higher (for both, gchd and your reading app, e.g. OBS).
Nevertheless, we're trying to find a way to fix these kind of issues in code (like resyncing in such situations).
@tolga9009 Problem fixed by using two systems, one 2008 core2duo notebook for recording and my gaming system for playing. What can make more trouble, a slow cpu or a slow harddisk? Cause i'm using 840 pro ssds on every system and it seems that the multiple handling of permanent fifo>file and playing a game is to much for dualcores. Maybe you write a minimum of required hardware into the wiki.
@ralfdonald usually a slow harddisk shouldn't make any problems. We have a couple of exports, I want to talk about:
FIFO
is done entirely on RAM. So, it doesn't wear off any SSD and doesn't fill any HDD, while you're streaming. This is the recommended output format, when you're streaming. FIFO
on it's own, doesn't need a power CPU, nor does it need a fast SSD. However, FIFO
won't cut anything on its own and you probably need applications like VLC or OBS, to actually make use of the FIFO. And this is the point, where you will need a performant system. E.g. slow systems, like DualCore 1.7GHz systems tend to have integrated graphics and therefore are not able to live-preview and encode 1080p30 streams.Disk
is writing directly to your disk, without live-preview or encoding. It's just reading packets from USB and writing them to disk, without the need to transcode / encode / re-encode anything. Everything is already done on the Elgato and therefore this is a very lightweight task and can be done on very weak systems. This is the recommended method, if you're looking for a way to record your gameplay to your HDD. However, you will have no live-preview using this method. I've seen an i3-4010U (2x 1.7GHz, no Turbo) doing this fine with 720p60. Record-to-HDD without live-preview can probably be done even on lower-end systems, as it's just reading USB and writing to HDD at around 10MB/s - 20MB/s.To sum this up: minimum required hardware for FIFO
is pretty much on par with the system requirements for official Elgato software on Windows. This means: 2nd Gen i5 or i7 or better for desktops.
For Disk
without live-preview, the lowest minimum specs we've successfully tested so far, is an Intel i3-4010U. But you can probably go lower.
@tolga9009 thank you for your detailed explanation of the two possibilities an your experiences with them. For Disk
i am using an intel core2duo T5750 (2x 2,0GHz), which is recording 1080p30 without problems. So my gaming cpu (intel pentium G3420 2x3,2GHz) is not usable for playing and recording at the same time.
Hi there!
I need everyone to test out latest
dev
branch on your GCHD1 (0x0044, 0x004e and 0x0051), aswell as on your GCHD2 (0x005d) devices. We've made major progress, thanks to the patch series by Scott Dossey aka @seveirein! Thanks Scott!There is now support for 0x005d devices, aswell as for auto-detecting input source, auto-detecting colorspace and much more!
Please always use the latest
dev
branch available when testing. You can report your issues here or in the freshly created Wiki page: https://github.com/tolga9009/elgato-gchd/wiki/dev-branch---known-issuesMake sure to check the Wiki page for duplicate bug reports, before posting them.
We're thankful for everyone, who's able to help us with this! Thanks!
Cheers, Tolga