ffmpeg: /dev/video* でエンコードされたビデオのモニター画面

ffmpeg: /dev/video* でエンコードされたビデオのモニター画面

ffplayたとえば、/ dev / video0を開き、着信ビデオフレームを監視することをお勧めします(たとえば、テレビカードからテレビを見ることができます)。 /dev/videoを提供すると、ffmpegビデオを簡単にエンコードできます。

同時に両方を実行できますか?ビデオフレームを画面に表示して同時にエンコードできますか?

ベストアンサー1

方法はさまざまです。私は通常、teeの助けを借りて元のビデオストリームをffplayインスタンスにコピーします。

ffmpeg -hide_banner -loglevel error -f v4l2 -pixel_format yuyv422 -video_size 1280x960 -i /dev/video0 -c:v copy -f rawvideo - |\
tee >(ffplay -f rawvideo -pixel_format yuyv422 -video_size 1280x960 -) |\
ffmpeg -f rawvideo -pixel_format yuyv422 -video_size 1280x960 -i - -c:v libx264 -crf 21 -y /tmp/encoded.mp4

生の入力と出力を表示するには、例はもう少し複雑です。

ffmpeg -hide_banner -loglevel error -f v4l2 -pixel_format yuyv422 -video_size 640x480 -r 25 -i /dev/video0 -c:v copy -f rawvideo - | \
tee >(ffplay -hide_banner -loglevel error -window_title "Input" -f rawvideo -pixel_format yuyv422 -video_size 640x480 -) | \
ffmpeg -hide_banner -loglevel error -f rawvideo -pixel_format yuyv422 -video_size 640x480 -i - -c:v libx264 -crf 21 -f h264 - | \
tee >(ffplay -hide_banner -loglevel error -window_title "Encoded" -f h264 -) | \
ffmpeg -f h264 -r 25 -i - -y /tmp/encoded.mp4

一致するピクセル形式、解像度、フレームレートを指定する必要があります。

おすすめ記事