https://ostechnix.com/how-to-rotate-videos-using-ffmpeg-from-commandline/
some videos are shot in portrait mode and some are shot in landscape mode
Genau das meine ich aber nicht, die sind alle im "landscape mode" aufgenommen.
Ich habe die Beispiele bis zu dem gleich angeführten Beispiel alle durchgemacht, das Bild ist danach beim Abspielen mit vlc immer schwarz. Das Vorschaubild ist beim Original korrekt, beim erstellten Video dann auch.
$ ffmpeg -i original.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-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-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'original.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2022-06-22T12:28:26.000000Z
com.android.version: 11
com.android.manufacturer: Xiaomi
com.android.model: Redmi Note 9S
Duration: 00:00:25.98, start: 0.000000, bitrate: 2247 kb/s
Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt470bg/bt470bg/smpte170m), 1920x1080, 2029 kb/s, SAR 1:1 DAR 16:9, 30.18 fps, 30 tbr, 90k tbn, 90k tbc (default)
Metadata:
rotate : 90
creation_time : 2022-06-22T12:28:26.000000Z
handler_name : VideoHandle
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
Metadata:
creation_time : 2022-06-22T12:28:26.000000Z
handler_name : SoundHandle
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
com.android.model: Redmi Note 9S
com.android.version: 11
com.android.manufacturer: Xiaomi
encoder : Lavf58.29.100
Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt470bg/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 2029 kb/s, 30.18 fps, 30 tbr, 90k tbn, 90k tbc (default)
Metadata:
rotate : 90
creation_time : 2022-06-22T12:28:26.000000Z
handler_name : VideoHandle
Side data:
displaymatrix: rotation of 90.00 degrees
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
Metadata:
creation_time : 2022-06-22T12:28:26.000000Z
handler_name : SoundHandle
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 783 fps=0.0 q=-1.0 Lsize= 6756kB time=00:00:25.94 bitrate=2133.4kbits/s speed=4.35e+03x
video:6427kB audio:304kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.361089%
Videos drehen im Player
Weil das nicht jeder Player kann, kann das nicht die Lösung sein.
BTW, beim Handy hängt die Drehung mit dervorgegebenen Framerate zusammen, bei fps 24 passt es bis jetzt immer, wenn ich auf 30 stelle, dann kann ich das Problem provozieren. Ich teste jetzt allerdings mit einer anderen App.