1

I have a webm video that was made (from an h264) using AWS Elastic Transcoder, using the "System preset: Webm VP9 720p" preset.

For this file, ffprobe gives:

$ ffprobe converted-mp4.webm

<snip>

Input #0, matroska,webm, from 'converted-mp4.webm':
  Metadata:
    title           : 1024 x 768 30 fps Photo JPEG 75% - https://archive.org/details/VideoTestFiles
    encoder         : Lavf57.71.100
  Duration: 00:00:16.00, start: 0.000000, bitrate: 743 kb/s
    Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, progressive), 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)

Note the yuv420p(tv, progressive) in the last line.

I am trying to replicate as best I can the same encoding using ffmpeg, but I cannot workout how to get the progressive bit.

e.g.:

$ ffmpeg -i 1024X76830FpsPhotoJpeg75.mp4 -pix_fmt yuva420p -c:v libvpx-vp9 video.webm

...

$ ffprobe video.webm 

<snip>

Input #0, matroska,webm, from 'video.webm':
  Metadata:
    title           : 1024 x 768 30 fps Photo JPEG 75% - https://archive.org/details/VideoTestFiles
    COMMENT         : license:http://creativecommons.org/licenses/by/4.0/
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    ENCODER         : Lavf58.20.100
  Duration: 00:00:16.00, start: 0.000000, bitrate: 158 kb/s
    Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv), 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      alpha_mode      : 1
      HANDLER_NAME    : VideoHandler
      ENCODER         : Lavc58.35.100 libvpx-vp9
      DURATION        : 00:00:16.000000000


For context, I am trying to work out why the AWS Elastic Transcoder produced file is behaving properly in some downstream processing (either rendering frame-by-frame in a browser, or another encoding/conversion step). In the ffmpeg version, frames are being duplicated/repeated.

For what it's worth, I have tried messing with the key-frame interval (AWS version has key-frame every 90 frames) but that didn't make a difference.

The progressive or not property is one difference I can find between the two files. There's also the encoder version but not sure how that would cause the different behaviour`.

Edit: this property is not what's causing my downstream issues, nevertheless, I'd be interested to know more about it.

  • So my actual problem is to do with how I made the (problematic) video. I did it from a PNG frame sequence. When I run ffprobe -i video.webm -show_frames -select_streams v:0 -print_format flat | grep pkt_pts= on it, I get: frames.frame.0.pkt_pts=0 frames.frame.1.pkt_pts=33 frames.frame.2.pkt_pts=67 frames.frame.3.pkt_pts=133 <- this is wrong and should be 100 – Jon Burgess Aug 14 at 6:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.