0

I have a video which pts starts 40ms after the stream is started.

avidemux shows this information's with this commandline

./avidemuxLinux_2.7.8_GLIBC_2.28_amd64.appImage \
  --audio-codec copy \
  --video-codec x265 \
  --output-format MKV \
  --load /media/alex/input_video.avi \
  --save /media/alex/output_video_h265.mkv --quit
...
.
.
 [muxerMkv] 00:39:36-485  Creating Matroska muxer.
[VideoFilterBridge] Creating bridge from 0 s to 5587 s
 [convertLinearTimeToSeg] 00:39:36-485  End of last segment
 [getTimeBase] 00:39:36-485  Ref video 0 is frame-encoded, copy mode: 0
 [getTimeBase] 00:39:36-485  Timebase set to 1000 / 25000

--> [goToTimeVideo] 00:39:36-485  Fixating start time to 40 ms
--> [seektoTime] 00:39:36-485  Seeking to a keyframe at 40 ms

 [seektoTime] 00:39:36-485  Seeking to frame 0 at 40 ms
 [DecodePictureUpToIntra] 00:39:36-485  Decoding up to intra frame 0, ref: 0

 [postAmble] 00:39:36-638  First IDR out of encoder with DTS = -40000 us, setting encoder delay to 40000 us.
...

I have searched in the ffmpeg docs and found the "-use_mfra_for pts" but when I execute this commands below get I "moov atom not found"

~/Downloads/ffmpeg/ffmpeg-git-20211217-amd64-static/ffmpeg \
  -hide_banner -y -f mp4 -use_mfra_for pts \
  -i /media/alex/input_video.avi \
  -c:v libx265 -x265-params interlace=1 -flags +ildct+ilme \
  /media/alex/output_video_ffmpeg_x265.mkv

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7878d40] moov atom not found
ffprobe /media/alex/input_video.avi
Duration: 00:42:24.68, start: 0.000000, bitrate: 1154 kb/s
    Stream #0:0: Video: mpeg4 (DX50 / 0x30355844), yuv420p, 640x352 [SAR 1:1 DAR 20:11], 920 kb/s, 25 fps, 25 tbr, 25 tbn, 30k tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 224 kb/s

Any hints how to tell ffmpeg to do the same thing as avidemux?

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.