2016-02-01 47 views
2

我想選擇我的VideoCamera設備的輸入通道。我可以通過「Settings-Dialog」在VLC中選擇它。在高級設置中,我可以將「輸入」切換到3,並且我的相機可以工作。 現在我想在我的C++應用程序中執行此操作。我無法找到寫入方法來執行此操作。此刻我的照片只是黑色。我需要選擇我的設備的S-Video通道。使用V4L2 API選擇輸入通道

回答

1

你應該看看v4l2-ctl的源代碼,它是v4l-utils的一部分。這個工具是用C++/Qt編寫的,應該爲你提供你自己需要的所有信息。改變一個設備的輸入v4l2-ctl-io.cpp

void io_set(int fd) 
{ 
    if (options[OptSetInput]) { 
     if (doioctl(fd, VIDIOC_S_INPUT, &input) == 0) { 
      struct v4l2_input vin; 

      printf("Video input set to %d", input); 
      vin.index = input; 
      if (test_ioctl(fd, VIDIOC_ENUMINPUT, &vin) >= 0) 
       printf(" (%s: %s)", vin.name, status2s(vin.status).c_str()); 
      printf("\n"); 
     } 
    } 
    // snip... 
} 

希望這有助於進行處理。

編輯: 剛剛在官方API文檔here中找到相關部分。 他們在該頁面上有一些例子如何改變視頻輸入。

+0

完美地工作。非常感謝你! :) – fuuman