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: