excamera / alfalfa

Purely functional video codec, used for ExCamera and Salsify
GNU General Public License v2.0
1.2k stars 111 forks source link

Fake camera can't work #94

Open WanHaoRan opened 1 month ago

WanHaoRan commented 1 month ago

Hi, I am trying to use the fake camera function to transfer an mp4 video through salsify. I used ffmpeg -stream_loop -1 -re -i ~/Downloads/sample_video.mp4 -vcodec rawvideo -threads 0 -f v4l2 /dev/video2 (same result with your fake-camera script) to setup the virtual camera and I can see the video through ffplay /dev/video2.

However, there is no output from ./fake-webcam /dev/video2 30 and when I run ./salsify-sender --device /dev/video2 --pixfmt "YUYV" 192.168.1.4 12345 1337, I got the following errors (same for "NV12"): terminate called after throwing an instance of 'unix_error' what(): setting format: Invalid argument [1] 8206 IOT instruction (core dumped) ./salsify-sender --device /dev/video2 --pixfmt "YUYV" 192.168.1.4 12345 1337 For "YU12", I got: terminate called after throwing an instance of 'std::runtime_error' what(): couldn't get enough video4linux2 buffers [1] 8352 IOT instruction (core dumped) ./salsify-sender --device /dev/video2 --pixfmt "YU12" 192.168.1.4 12345 1337

Btw, I am using ubuntu 22.04 with libx264-dev version of 2:0.155.2917+git0a84d98-2. Thank you!

WanHaoRan commented 1 month ago

I changed the NUM_BUFFERS parameter in this file into 2 (what I got from the camera) and got the output from the receiver side. But the frame rate seems a little bit low (given the network capacity should be enough), does this parameter affect the frame rate? Or other issue that may affect the frame rate? Thank you so much!

WanHaoRan commented 1 month ago

Using a different sending machine and it looks fine, please ignore this issue : )