Encoding a readable movie by QuickTime using FFMPEG

33,896

Solution 1

Try to change the pixel format: -pix_fmt yuv420p

Solution 2

I was also making a video using a sequence of png files as input. What I found out is that Quicktime Player 7 will play my mp4 files just fine at any frame rate. Quicktime Player 10 will display a green window with some blockiness if the rate "-r" value is under 9. I can still have an input rate that is below the played rate by specifying the values like this:

ffmpeg -r inputRate -i %d.png -qscale 1 -r 9 output.mp4

Note: I used ffmpeg 0.5.

Share:
33,896

Related videos on Youtube

itamarb
Author by

itamarb

Algorithm - Word used by programmers when they do not want to explain what they did

Updated on July 29, 2020

Comments

  • itamarb
    itamarb almost 4 years

    I'm trying to encode an image sequence using the following command:

    ffmpeg.exe -i %d.png -f mp4 -vcodec h264 test.mp4
    

    However, QuickTime failed to open this file or sometimes play a black movie, while this movie plays great in VLC player. Any suggestions how to make it play well in QuickTime?

    Here is the output:

    ffmpeg.exe -i %d.png -f mp4 -vcodec libx264 13.mp4
    ffmpeg version N-49044-g89afa63 Copyright (c) 2000-2013 the FFmpeg developers
      built on Jan 19 2013 20:36:06 with gcc 4.7.2 (GCC)
      configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libg
    sm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --e
    nable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --e
    nable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --en
    able-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable
    -libxavs --enable-libxvid --enable-zlib --enable-filter=frei0r
      libavutil      52. 15.100 / 52. 15.100
      libavcodec     54. 89.100 / 54. 89.100
      libavformat    54. 61.101 / 54. 61.101
      libavdevice    54.  3.102 / 54.  3.102
      libavfilter     3. 32.101 /  3. 32.101
      libswscale      2.  2.100 /  2.  2.100
      libswresample   0. 17.102 /  0. 17.102
      libpostproc    52.  2.100 / 52.  2.100
    [image2 @ 0221b940] max_analyze_duration 5000000 reached at 5000000 microseconds
    
    Input #0, image2, from '%d.png':
      Duration: 00:01:19.36, start: 0.000000, bitrate: N/A
        Stream #0:0: Video: png, rgb24, 639x480, 25 fps, 25 tbr, 25 tbn, 25 tbc
    [libx264 @ 0221edc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE
    4.2 AVX
    [libx264 @ 0221edc0] profile High 4:4:4 Predictive, level 3.0, 4:4:4 8-bit
    [libx264 @ 0221edc0] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Cop
    yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
    lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
    e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
    ma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 in
    terlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b
    _bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecu
    t=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0
     qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '13.mp4':
      Metadata:
        encoder         : Lavf54.61.101
        Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv444p, 639x480, q=-1--1
    , 12800 tbn, 25 tbc
    Stream mapping:
      Stream #0:0 -> #0:0 (png -> libx264)
    Press [q] to stop, [?] for help
    frame=   76 fps=0.0 q=28.0 size=       3kB time=00:00:00.96 bitrate=  22.3kbits/
    frame=  156 fps=155 q=28.0 size=       7kB time=00:00:04.16 bitrate=  14.7kbits/
    frame=  219 fps=145 q=28.0 size=      12kB time=00:00:06.68 bitrate=  14.1kbits/
    frame=  283 fps=141 q=28.0 size=      16kB time=00:00:09.24 bitrate=  14.2kbits/
    frame=  352 fps=140 q=28.0 size=      25kB time=00:00:12.00 bitrate=  17.4kbits/
    
    • d33pika
      d33pika over 11 years
      What version of ffmpeg do you have? Can you post the whole response to this command?
  • itamarb
    itamarb over 11 years
    works! (I also had to change the input image sequence to have even width and height) Here is the complete line: ffmpeg.exe -i %d.png -f mp4 -vcodec libx264 -pix_fmt yuv420p test.mp4
  • Hrishikesh_Pardeshi
    Hrishikesh_Pardeshi over 11 years
    High 4:4:4 predictive profile is not supported by QuickTime (No decoder implementation exists for the same in QuickTime). I read about perian, a QuickTime plugin which uses libavcodec for decoding. I assumed it would support high 4:4:4 profile, but it does not. Any suggestion for a QuickTime plugin ? P.S: VLC or MPlayer are able to playback since they have a native implementation for the decoder. I need QuickTime to be able to playback the video.
  • Anselan
    Anselan about 9 years
    Life saver! This also helps to ensure that the mp4 plays on an iPhone!
  • Mike
    Mike over 7 years
    Also worth noting that this allows the video to play in Keynote.
  • Roy Shilkrot
    Roy Shilkrot about 6 years
    If you see a "not divisible by 2" error use this -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" (from stackoverflow.com/a/20848224/5339857)