[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ffmpeg rotieren eines webcam live stream



Hallo,

Ich habe hier einen R-PI mit Camera. Leider kann ich die Kamera nicht physisch drehen und möchte den Stream per Software drehen.

Die Webcam wird mit ffmpeg ausgelesen und speichert die Daten in ein Verzeichnis, das mit einer Website (Apache) ausgelesen und angezeigt werden soll. An sich funktioniert das mit dem Befehl:

--------------------------------

ffmpeg -input_format h264 -f video4linux2 -video_size 1024x768 -framerate 30 -i /dev/video1 -c:v copy -f dash -window_size 10 -remove_at_exit 1 -hls_playlist 1 /srv/www/vhosts/haupthost/httpdocs/video/manifest.mpd

--------------------------------

Nun habe ich herausgefunden, dass man den Livestream nicht ohne weiteres drehen kann. Das soll wohl mit einer Hilfskonstruktion eines "v4l2loopback"- Device machen und dann sollte man das loopback- Device wie ein normales Device auslesen können:

--------------------------------

ffmpeg -f v4l2 -i /dev/video1 -vf "vflip" -f v4l2 /dev/video0

ffmpeg -f video4linux2 -video_size 1024x768 -framerate 30 -i /dev/video0 -c:v copy -f dash -window_size 10 -remove_at_exit 1 -hls_playlist 1 /srv/www/vhosts/haupthost/httpdocs/video/manifest.mpd

--------------------------------

Leider bekomme ich dann folgende Ausgabe:

--------------------------------

ffmpeg -f video4linux2 -video_size 1024x768 -framerate 30 -i /dev/video0 -map_metadata 0 -metadata:s:v rotate=90 -c:v copy -f dash -window_size 10 -remove_at_exit 1 -hls_playlist 1 /srv/
www/vhosts/haupthost/httpdocs/video/manifest.mpd
ffmpeg version 4.1.10-0+deb10u1+rpt1 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 8 (Raspbian 8.3.0-6+rpi1)
 configuration: --prefix=/usr --extra-version=0+deb10u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enab le-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chro maprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
 libavutil      56. 22.100 / 56. 22.100
 libavcodec     58. 35.100 / 58. 35.100
 libavformat    58. 20.100 / 58. 20.100
 libavdevice    58.  5.100 / 58.  5.100
 libavfilter     7. 40.101 /  7. 40.101
 libavresample   4.  0.  0 /  4.  0.  0
 libswscale      5.  3.100 /  5.  3.100
 libswresample   3.  3.100 /  3.  3.100
 libpostproc    55.  3.100 / 55.  3.100
[video4linux2,v4l2 @ 0x1eb0f20] The driver does not permit changing the time per frame
Input #0, video4linux2,v4l2, from '/dev/video0':
 Duration: N/A, start: 3942.261901, bitrate: 283115 kb/s
   Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1024x768, 283115 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc [dash @ 0x1eb3a70] Opening '/srv/www/vhosts/haupthost/httpdocs/video/init-stream0.m4s' for writing [mp4 @ 0x1eb6bc0] Could not find tag for codec rawvideo in stream #0, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
   Last message repeated 1 times

--------------------------------

Hat jemand einen Tipp, woran sich ffmpeg stört und wie ich das Problem lösen kann?

--
Mit freundlichen Grüßen

Sebastian Reinhardt






Reply to: