LINUX.ORG.RU

FFMPEG, не корректное соотношение сторон в потоках

 ,


0

1
ffmpeg -i /file.mp4 
    -c:a libopus -c:v libvpx-vp9 -pix_fmt yuv420p 
    -map 0:a:0 -b:a:0 128k 
    -map 0:v:0 -filter:v:0 scale=-1:144 -b:v:0 60k 
    -map 0:v:0 -filter:v:1 scale=-1:240 -b:v:1 150k 
    -init_seg_name "init-$RepresentationID$.$ext$"
    -media_seg_name "sg-$RepresentationID$-$Number%05d$.$ext$" 
    -dash_segment_type webm 
    -use_template 1 -use_timeline 1 -seg_duration 9 
    -adaptation_sets "id=0, streams=v id=1, streams=a" 
    -f dash /manifest.mpd
ffmpeg version 7.0.2-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2024 the FFmpeg developers
ID=    built with gcc 8 (Debian 8.3.0-6)
ID=    configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzimg
ID=    libavutil      59.  8.100 / 59.  8.100
ID=    libavcodec     61.  3.100 / 61.  3.100
ID=    libavformat    61.  1.100 / 61.  1.100
ID=    libavdevice    61.  1.100 / 61.  1.100
ID=    libavfilter    10.  1.100 / 10.  1.100
ID=    libswscale      8.  1.100 /  8.  1.100
ID=    libswresample   5.  1.100 /  5.  1.100
ID=    libpostproc    58.  1.100 / 58.  1.100
ID=  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '***/file.mp4':
ID=    Metadata:
ID=      major_brand     : isom
ID=      minor_version   : 512
ID=      compatible_brands: isomiso2mp41
ID=      encoder         : Lavf61.1.100
ID=    Duration: 00:03:08.64, start: 0.000000, bitrate: 473 kb/s
ID=    Stream #0:0[0x1](und): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv, bt709), 1920x1080, 337 kb/s, 30 fps, 30 tbr, 16k tbn (default)
ID=        Metadata:
ID=          handler_name    : ISO Media file produced by Google Inc. Created on: 04/03/2025.
ID=          vendor_id       : [0][0][0][0]
ID=    Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
ID=        Metadata:
ID=          handler_name    : SoundHandler
ID=          vendor_id       : [0][0][0][0]
ID=  Stream mapping:
ID=    Stream #0:1 -> #0:0 (aac (native) -> opus (libopus))
ID=    Stream #0:0 -> #0:1 (vp9 (native) -> vp9 (libvpx-vp9))
ID=    Stream #0:0 -> #0:2 (vp9 (native) -> vp9 (libvpx-vp9))
ID=  Press [q] to stop, [?] for help
ID=  [libvpx-vp9 @ 0xb03cbe0] v1.11.0-30-g888bafc78
ID=  [libvpx-vp9 @ 0xb0f30b0] v1.11.0-30-g888bafc78
ID=  [dash @ 0xb03b1e0] Opening '***/ttt/init-0.webm' for writing
ID=  [dash @ 0xb03b1e0] Opening '***/ttt/init-1.webm' for writing
ID=  [dash @ 0xb03b1e0] Opening '***/ttt/init-2.webm' for writing
ID=  [dash @ 0xb03b1e0] Conflicting stream aspect ratios values in Adaptation Set 1. Please ensure all adaptation sets have the same aspect ratio
ID=  [out#0/dash @ 0xb036440] Could not write header (incorrect codec parameters ?): Invalid argument
ID=  [vf#0:2 @ 0xb0f3d60] Error sending frames to consumers: Invalid argument
ID=  [vf#0:2 @ 0xb0f3d60] Task finished with error code: -22 (Invalid argument)
ID=  [vf#0:2 @ 0xb0f3d60] Terminating thread with return code -22 (Invalid argument)
ID=  [out#0/dash @ 0xb036440] Nothing was written into output file, because at least one of its streams received no packets.
ID=  frame=    0 fps=0.0 q=33.0 Lq=0.0 size=       0KiB time=N/A bitrate=N/A speed=N/A

Последняя версия, 7.0.2-static, правда не знаю почему Debian 8.3.0-6, когда OC ubuntu.

Трудность в том, что на одном из 2 видеопотоках. Происходит какое то несоответствие соотношением сторон.

Не понимаю как так получается, когда входной файл один и соотношение сторон должно быть верным.

Предположим, если взять 10 видео. То примерно 2-3-4 видео будут обработаны, остальные ошибку выдадут.



Последнее исправление: Zuldek (всего исправлений: 1)

Трудность в том, что на одном из 2 видеопотоках. Происходит какое то несоответствие соотношением сторон.

https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/dashenc.c#L1697

Не понимаю как так получается, когда входной файл один и соотношение сторон должно быть верным.

например это требование dash протокола с mbr, не хочешь задать размеры выходные полностью ручками?

anonymous
()
Ответ на: комментарий от Zuldek

Здорово, с

-vf:v:0 scale=-1:144

От слова совсем не учитывает параметры. То есть на выходе получаю 2 видеопотока. С разным битрейтом, фреймрейтом, а ширина и высота кадра, у обоих видеопотока одинаковая.

Хелпс,

-filter:v:0 scale=-1:144

Работает, но из 3, 2 видео выкидывают ошибку

Zuldek
() автор топика