Recherche avancée

Médias (91)

Sur d’autres sites (126)

  • ffmpeg : PNGs to mp4 video is strange scaled quicktime

    15 mai, par v_b

    I am trying to create a video from multiple PNG files.
    
The files contain an animation of a line.
    
However, the output MP4 video looks really strange, as if the content is stretched or scaled.

    


    Below, you can see screenshots of one of the PNG files and the resulting video file.

    


    Some additional information :
    
I am on a MacPro M3 w. latest MacOs updates.
    
The images have transparent backgrounds.

    


    Command :

    


    ffmpeg -framerate 30 -pattern_type glob -i "*.png" -s:v 1600x800 -pix_fmt yuv420p -c:v libx264 result.mp4


    


    Example PNG file :
enter image description here

    


    PNG Information :
enter image description here

    


    Resulting Video :
enter image description here

    


    Video Info :

    


    ffprobe ./result.mp4                                                                
ffprobe version 7.0 Copyright (c) 2007-2024 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.3.9.4)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.0_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './result.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf61.1.100
  Duration: 00:00:03.03, start: 0.000000, bitrate: 103 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 1600x800, 98 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
      Metadata:
        handler_name    : VideoHandler
        vendor_id       : [0][0][0][0]
        encoder         : Lavc61.3.100 libx264


    


    ffmpeg version

    


    ffmpeg version 7.0 Copyright (c) 2000-2024 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.3.9.4)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.0_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...


    


  • How to set min, max and avg bitrate or vbv delay using FFMPEG for livestream in Python ? [closed]

    10 mai, par Tebyy

    I'm trying to set the minimum, maximum, and average bitrate or vbv delay for a WebM livestream in Python using FFMPEG, but it still shows "0" or "N/A". I've checked the documentation, and everything seems correct. I've also searched for solutions online, but none of them have solved my problem. Does anyone know what I might be doing wrong and how it should be done correctly ?

    


    FFMPEG Command :

    


    ffmpeg_command = [
        'ffmpeg', '-f', 'rawvideo', '-pix_fmt', 'bgr24',
        '-s:v', '1920x1080', '-r', '60',
        '-i', '-',
        # '-an',  # Turn off the audio track
        '-c:v', 'libvpx-vp9', '-g', '60', '-keyint_min', '60',
        '-b:v', '6M', '-minrate', '4M', '-maxrate', '12M', '-bufsize', '8M',
        '-crf', '0', '-deadline', 'realtime', '-tune', 'psnr', '-quality', 'good',
        '-tile-columns', '6', '-threads', '16', '-lag-in-frames', '16',
        '-f', 'webm', '-'
    ]


    


    PyCharm Console Logs :

    


    ffmpeg version N-115112-g39ce8a9695-20240507 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240507
  libavutil      59. 17.100 / 59. 17.100
  libavcodec     61.  5.103 / 61.  5.103
  libavformat    61.  3.103 / 61.  3.103
  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, rawvideo, from 'fd:':
  Duration: N/A, start: 0.000000, bitrate: 2985984 kb/s
  Stream #0:0: Video: rawvideo (BGR[24] / 0x18524742), bgr24, 1920x1080, 2985984 kb/s, 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> vp9 (libvpx-vp9))
[libvpx-vp9 @ 000002972f387100] v1.14.0
Output #0, webm, to 'pipe:':
  Metadata:
    encoder         : Lavf61.3.103
  Stream #0:0: Video: vp9, gbrp(pc, gbr/unknown/unknown, progressive), 1920x1080, q=2-31, 6000 kb/s, 60 fps, 1k tbn
      Metadata:
        encoder         : Lavc61.5.103 libvpx-vp9
      Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 8000000 vbv_delay: N/A


    


  • HEVC with alpha [closed]

    3 mai, par foxhable

    I trying create HEVC with alpha video from png images through ffmpeg.

    


    When i try, it outputs a video that works, has a transparent background and opens in QuickTime, but does not open in Safari. Then i try creating in prores 4444 codec and convert from macOS Context Menu -> Encode Selected Video Files with HEVC 1080p and Preserve Transparency. It has work - video with transparent background, open in QuickTime and in Safari.

    


    So i tried understand what a difference in meta data and only what i find its working video has HVEC encoder, but not working has Lavc61.5.103 hevc_videotoolbox. Can i somehow programmatically or from utilities like ffmpeg create video with HEVC With alpha, which working like from macOS context menu ? macOS context menu doesnt fit because i cant compress or create many videos

    


    Detail info

    


    I have example of working video. Info from ffprobe

    


    ffprobe movie-hevc.mov
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\movie-hevc.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2021-01-02T10:33:38.000000Z
  Duration: 00:00:09.02, start: 0.000000, bitrate: 4053 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], 4046 kb/s, 60 fps, 60 tbr, 600 tbn (default)
      Metadata:
        creation_time   : 2021-01-02T10:33:38.000000Z
        handler_name    : Core Media Video
        vendor_id       : [0][0][0][0]
        encoder         : HEVC


    


    Info about video which i create in prores by ffmpeg command, then convert through macOS context menu

    


    command :

    


    ffmpeg -i a%d.png -r 30 -c:v prores_ks -profile:v 4  -allow_sw 1 -alpha_quality 1 -vtag hvc1 prores.mov


    


    info after converting

    


    ffprobe .\native-hevc.mov
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\native-hevc.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2024-05-03T07:04:26.000000Z
  Duration: 00:00:12.77, start: 0.000000, bitrate: 8796 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1920, 8792 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
      Metadata:
        creation_time   : 2024-05-03T07:04:27.000000Z
        handler_name    : Core Media Video
        vendor_id       : [0][0][0][0]
        encoder         : HEVC


    


    Info about video which i`m create direct in hevc by ffmpeg command

    


    ffmpeg -i a%d.png -r 30 -c:v hevc_videotoolbox -allow_sw 1 -alpha_quality 1 -vtag hvc1 ffmpeg-hevc.mov


    


    Info :

    


    ffprobe .\ffmpeg-hevc.mov
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\ffmpeg-hevc.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf61.3.103
  Duration: 00:00:12.77, start: 0.000000, bitrate: 3437 kb/s
  Stream #0:0[0x1]: Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bottom coded first (swapped)), 1920x1920, 3435 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
      Metadata:
        handler_name    : VideoHandler
        vendor_id       : FFMP
        encoder         : Lavc61.5.103 hevc_videotoolbox


    


    also i tried :

    


      

    • props -allow_sw 0 - get error
    • 


    • -alpha-quality 0.75, -pix_fmt bgra - safari not open, QT yes, transparent bg
    • 


    • without -vtag hvc1 - QuickTime cannot open
    • 


    • Tried convert from webm to hevc_videotoolbox - safari not open, QT yes, transparent bg
    • 


    • tried convert webm into pngs and in hevc_videotoolbox - safari not open, QT yes, transparent bg
    • 


    


    Tried answers :

    


    


    mac info :

    


      

    • macOS Monterey 12.7.2
    • 


    • Mac mini (Late 2012)
    • 


    • Core i5 3210M
    • 


    • Graphics Intel HD 4000
    •