[FFmpeg-trac] #11038(undetermined:new): bsf 'rotate' seemingly not doing anything
FFmpeg
trac at avcodec.org
Thu May 30 15:12:22 EEST 2024
#11038: bsf 'rotate' seemingly not doing anything
-------------------------------------+-------------------------------------
Reporter: geegee | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
FFMPEG is not changing the rotation matrix when asked to like when for
example using either of the two sample commands provided below. The two
output files will be identical to each other and even to a third simple
output made with `ffmpeg -i input.mp4 -c copy outputx.mp4`, meaning
`-bsf:v h264_metadata=rotate=90.0` and `-metadata:s:v:0 rotate=90` aren't
doing anything at all. This can be further verified by opening the output
file(s) in a hex editor and checking the values of the rotation matrix as
specified in this external post: https://superuser.com/a/1307206/580856
Outputs will lack the line `displaymatrix: rotation of 90.00 degrees` when
analized with ffprobe, but this line will be displayed when the mp4 is
edited manually with a hex editor as specified in the superuser link.
How to reproduce:
{{{
% ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output2.mp4
}}}
or
{{{
% ffmpeg -i input.mp4 -c copy -bsf:v h264_metadata=rotate=90.0 output1.mp4
ffmpeg version 2024-04-04-git-478d97f303-full_build-www.gyan.dev Copyright
(c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-
w32threads --disable-autodetect --enable-fontconfig --enable-iconv
--enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
--enable-libsnappy --enable-zlib --enable-librist --enable-libsrt
--enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray
--enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption
--enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd
--enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve
--enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg
--enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r
--enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-
liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-
amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va
--enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec
--enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan
--enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme
--enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb
--enable-libmp3lame --enable-libshine --enable-libtheora --enable-
libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc
--enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-
libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-
libflite --enable-libmysofa --enable-librubberband --enable-libsoxr
--enable-chromaprint
libavutil 59. 13.100 / 59. 13.100
libavcodec 61. 5.101 / 61. 5.101
libavformat 61. 3.100 / 61. 3.100
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.101 / 10. 2.101
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.27.100
Duration: 00:10:50.38, start: 0.000000, bitrate: 1830 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661),
yuv420p(tv, bt709, progressive), 888x1920 [SAR 1:1 DAR 37:80], 1691 kb/s,
43.14 fps, 43 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
[h264_metadata @ 0000012096b317c0] 4 bytes left at end of AVCC header.
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Output #0, mp4, to 'output1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf61.3.100
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv,
bt709, progressive), 888x1920 [SAR 1:1 DAR 37:80], q=2-31, 1691 kb/s,
43.14 fps, 43 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo,
fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Press [q] to stop, [?] for help
[out#0/mp4 @ 0000012096b53900] video:134242KiB audio:10163KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
0.634229%
size= 145321KiB time=00:10:50.27 bitrate=1830.7kbits/s speed= 881x
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11038>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list