-1

私の知る限り、フレームレートオプションは、入力ファイル (一連の画像や、PTS が定義されていないビデオ ファイルなど) でのみ使用する必要があります。

ただし、Web カメラで以下のコマンドを実行すると、ビデオは正常にストリーミングされます (少なくとも、今まで確認した数時間は)。なぜそれはまだ機能していますか?何かがうまくいかないことを期待する必要がありますか?(ストリーミングの数時間後または数日後)

ffmpeg -framerate 30 -f v4l2 -copyts -i /dev/video0 -c:v libx264 -r 30 -f mpegts udp://192.168.10.199:1234

編集:

さらにいくつかのテストを実行した後、次のようなコマンドを実行すると、数時間後にスチームが動かなくなったようです。

ffmpeg -framerate 30 -f v4l2 -copyts -i /dev/video0 -c:v libx264 -r 30 -f mpegts udp://192.168.10.199:1234

ただし、次のようにコマンドを実行すると、数日間実行されます。

ffmpeg -r 30 -f v4l2 -copyts -i /dev/video0 -c:v libx264 -r 30 -f mpegts udp://192.168.10.199:1234

しかし、私は理由を理解していません...

4

2 に答える 2

0

一部のカメラは複数のフレーム レートをサポートしており-framerate、必要なフレーム レートを選択できます。そのような情報をリストすることができますv4l2-ctl:

$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
            Size: Discrete 640x480
                    Interval: Discrete 0.033s (30.000 fps)
                    Interval: Discrete 0.067s (15.000 fps)
                    Interval: Discrete 0.100s (10.000 fps)
                    Interval: Discrete 0.200s (5.000 fps)
            Size: Discrete 352x288
                    Interval: Discrete 0.033s (30.000 fps)
                    Interval: Discrete 0.067s (15.000 fps)
                    Interval: Discrete 0.100s (10.000 fps)
                    Interval: Discrete 0.200s (5.000 fps)

無効なフレーム レートを選択すると、次のメッセージが表示されます。

[video4linux2,v4l2 @ 0x556d45e42180] The driver changed the time per frame from 1/12 to 1/10

したがって、起こりうる最悪の事態 (少なくとも 4vl2 を使用している場合) は、カメラが単に別のものを使用しているが、まだサポートされているフレーム レートを使用することです。

詳細と追加オプションについては、FFmpeg v4l2 入力デバイスのドキュメントを参照してください。

于 2019-12-09T20:08:52.693 に答える