Linux USB 視訊擷取問題

Linux USB 視訊擷取問題

我購買了 Hauppauge USB-Live 2 捕獲設備,因為亞馬遜最近的幾篇評論表明它應該與現代 Linux 核心相容。

當我將其插入運行最新版本 Raspbian Buster 的 Raspberry Pi 4 時,它似乎被成功識別:

不幸的是,當我嘗試運行 ffmpeg / ffplay 從正在運行的 VHS 來源捕獲視訊時,它顯示輸入資料完全為 0 位元(在此處報告:https://pastebin.com/TAurevCA)。我還嘗試使用“v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=frame.raw --stream-count=1”以及“vlc v4l2://”來捕獲幀/dev/ video0”且都不包含數據

我透過電子郵件向 Hauppauge 技術支援確認該設備已經過 Rpi 4 測試並且應該可以工作。我嘗試過的一些修復沒有成功:

  • 多次重啟
  • 將裝置移至各個 USB 2 和 USB 3 連接埠
  • 我確保將 vl42 設為 NTSC 以匹配我的來源
  • 使用 sudo 執行 ffmpeg,以防 /dev/video0 的權限問題(也嘗試過 chmod -R 777 /dev/video0)
  • 將韌體替換為我在此製造商連結中找到的版本 -https://www.hauppauge.de/pctv-faq/doku.php?id=en:linux:usb-live2-how-to(我相信 RPi 已經安裝了這個,因為舊檔案大小與新檔案完全相同)
  • 透過電子郵件發送技術支援 - 他們表示該設備已經過測試,可在 Rpi 4 上運行,否則沒有幫助
  • 從亞馬遜訂購了另一台相同的設備來嘗試以防萬一它是有故障的設備 - 相同的結果
  • 我知道我的 VCR/連接工作正常,因為類似的捕獲設備在完全相同的設定下工作正常

您有什麼想法可以在這裡嘗試嗎?我還在我的 Mac 上嘗試了該設備,Ubuntu 18.04.3 通過實時 USB 運行,結果相同,所以我想也許我錯過了一些基本的東西?

另外,為了以防萬一它對其他人有用,這裡有一些關於我在 Raspberry Pi 4 上嘗試過的其他 USB 捕獲設備的信息:

(1) 我可以確認這款更便宜的設備在 Pi 4 DIGITNOW USB 2.0 音頻/視頻轉換器上運行得很好 - 數位化和編輯來自任何模擬源(包括 VCR、VHS、DVD)的視頻 https://smile.amazon.com/gp/product/B06XJKSJZ8/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

驅動程式顯示為“uvcvideo”而不是 cx231xx (品質還過得去,所以我想看看是否可以做得更好 - 這個只輸出已壓縮的 MJPEG 的全分辨率)

(2) 不要浪費錢買這個,影像跳來跳去,完全無法使用:UVC Usb2.0 視訊擷取卡,相容於 Window/Linux https://www.amazon.com/dp/B00RMYWGWC/ref=cm_sw_r_cp_api_i_P-RpEb9BRFMNR

答案1

我不知道你是否嘗試過這個,但為了讓我的 Live 2 使用 ffmpeg 進行捕獲,我必須:

v4l2-ctl -d /dev/video0 -s ntsc at every boot

所以我將其添加crontab

@reboot v4l2-ctl -d /dev/video0 -s ntsc

答案2

編輯 1:我發現了為什麼這些設備不能正常工作。問題是,如果您不初始化配套音訊設備,它們將不會返回視訊幀。不需要讀取所有音訊幀,但需要初始化並讀取第一幀,其他可以忽略。這就是建議的 mencoder 命令起作用的原因,因為它也會初始化音訊。

我能夠使用 mencoder 進行捕獲,所以這是一個解決方案:

嘗試這個指令:

mencoder \
-v -noskip \
tv:///0 \
-tv norm=NTSC\
:device=/dev/video0\
:driver=v4l2\
:outfmt=i420\
:width=720:height=480\
:fps=29.97\
:alsa\
:adevice=hw.0,0\
:amode=1\
:buffersize=200 \
-ffourcc divx \
-oac mp3lame \
-lameopts cbr:preset=128 \
-ovc lavc \
-lavcopts vcodec=mpeg4\
:vbitrate=1400\
:threads=2\
:autoaspect \
-vf dsize=4/3 \
-vf-add scale \
-vf-add kerndeint=10:0:0:1:1 \
-vf-add softskip,harddup \
-endpos 02:10:00 \
-o ~/usblive2.avi

這將在您的主資料夾中建立一個名為 usblive2.avi 的檔案。

相關內容