Ryo Toyama
Ryo Toyama

Reputation: 1

How to convert from mjpeg to h264 and stream to the virtual camera

Enviroment:

The following command fails to convert to h264 and stream it to the virtual camera. Could you please tell me how to solve this?

$ gst-launch-1.0 -e v4l2src device="/dev/video0" ! \
>     'image/jpeg, width=1920, height=1080, framerate=30/1' ! \
>     nvv4l2decoder mjpeg=1 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! \
>     nvv4l2h264enc ! h264parse ! v4l2sink device=/dev/video41
パイプラインを一時停止 (PAUSED) にしています...
Failed to open /dev/video2: そのようなファイルやディレクトリはありません
Failed to open /dev/video3: そのようなファイルやディレクトリはありません
Failed to open /dev/video4: そのようなファイルやディレクトリはありません
Failed to open /dev/video5: そのようなファイルやディレクトリはありません
Failed to open /dev/video6: そのようなファイルやディレクトリはありません
Failed to open /dev/video7: そのようなファイルやディレクトリはありません
Failed to open /dev/video8: そのようなファイルやディレクトリはありません
Failed to open /dev/video9: そのようなファイルやディレクトリはありません
Failed to open /dev/video10: そのようなファイルやディレクトリはありません
Failed to open /dev/video11: そのようなファイルやディレクトリはありません
Failed to open /dev/video12: そのようなファイルやディレクトリはありません
Failed to open /dev/video13: そのようなファイルやディレクトリはありません
Failed to open /dev/video14: そのようなファイルやディレクトリはありません
Failed to open /dev/video15: そのようなファイルやディレクトリはありません
Failed to open /dev/video16: そのようなファイルやディレクトリはありません
Failed to open /dev/video17: そのようなファイルやディレクトリはありません
Failed to open /dev/video18: そのようなファイルやディレクトリはありません
Failed to open /dev/video19: そのようなファイルやディレクトリはありません
Failed to open /dev/video20: そのようなファイルやディレクトリはありません
Failed to open /dev/video21: そのようなファイルやディレクトリはありません
Failed to open /dev/video22: そのようなファイルやディレクトリはありません
Failed to open /dev/video23: そのようなファイルやディレクトリはありません
Failed to open /dev/video24: そのようなファイルやディレクトリはありません
Failed to open /dev/video25: そのようなファイルやディレクトリはありません
Failed to open /dev/video26: そのようなファイルやディレクトリはありません
Failed to open /dev/video27: そのようなファイルやディレクトリはありません
Failed to open /dev/video28: そのようなファイルやディレクトリはありません
Failed to open /dev/video29: そのようなファイルやディレクトリはありません
Failed to open /dev/video30: そのようなファイルやディレクトリはありません
Failed to open /dev/video31: そのようなファイルやディレクトリはありません
Failed to open /dev/video32: そのようなファイルやディレクトリはありません
Failed to open /dev/video33: そのようなファイルやディレクトリはありません
Failed to open /dev/video34: そのようなファイルやディレクトリはありません
Failed to open /dev/video35: そのようなファイルやディレクトリはありません
Failed to open /dev/video36: そのようなファイルやディレクトリはありません
Failed to open /dev/video37: そのようなファイルやディレクトリはありません
Failed to open /dev/video38: そのようなファイルやディレクトリはありません
Failed to open /dev/video39: そのようなファイルやディレクトリはありません
Opening in BLOCKING MODE
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 277)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 350)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 145)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 379)
(Argus) Error EndOfFile:  (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
ArgusV4L2_Open failed: そのようなファイルやディレクトリはありません
Opening in BLOCKING MODE 
libv4l2: error getting pixformat: 無効な引数です
Opening in BLOCKING MODE 
Opening in BLOCKING MODE 
Pipeline is live and does not need PREROLL ...
パイプラインを再生中 (PLAYING) にしています...
New clock: GstSystemClock
NvMMLiteOpen : Block : BlockType = 277 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 277 
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
追加のデバッグ情報:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
EOS on shutdown enabled -- waiting for EOS after Error
Waiting for EOS...

Camera details.

$ v4l2-ctl --list-devices
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
        /dev/media0

Dummy video device (0x0000) (platform:v4l2loopback-000):
        /dev/video40

Dummy video device (0x0001) (platform:v4l2loopback-001):
        /dev/video41

Dummy video device (0x0002) (platform:v4l2loopback-002):
        /dev/video50

Dummy video device (0x0003) (platform:v4l2loopback-003):
        /dev/video51

USB 2.0 Camera: USB Camera (usb-3610000.xhci-2.4):
        /dev/video0
        /dev/video1
        /dev/media1

$ v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x360
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 320x180
                        Interval: Discrete

The following command converts the file to h264 and saves the file successfully.

gst-launch-1.0 -e v4l2src device="/dev/video0" ! \
    'image/jpeg, width=1920, height=1080, framerate=30/1' ! \
    nvv4l2decoder mjpeg=1 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! \
    nvv4l2h264enc ! h264parse ! qtmux ! filesink location=test.mp4

Expect: Converting mjpeg to h264 and streaming to virtual cameras.

Upvotes: 0

Views: 134

Answers (0)

Related Questions