ireader / media-server

RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4/MKV/WebM
MIT License
3.05k stars 1.07k forks source link

mov_apply_elst API 单位转换问题 #352

Closed yigu-cao closed 1 week ago

yigu-cao commented 3 weeks ago

【问题描述】 demux mp4时,发现存在片源和ffmpeg 的 pts, dts 不一致,导致同步问题,排查发现:

mov_apply_elst API,media_time 时间单位为mdhd.timescale,转换为dts单位,因进行如下运算,不应直接赋值 track->samples[0].dts = track->elst[i].segment_duration * track->mdhd.timescale / 1000;

mov_apply_elst_tfdt API,亦是如此; image

【片源】

https://github.com/user-attachments/assets/f9de5568-5db9-4e93-8a52-0c2a5a4b9d8b

yigu-cao commented 3 weeks ago

【ffprobe pts】 ffprobe -select_streams v:0 -show_entries frame=pts_time,pkt_size -of csv=p=0 C:\Users***\Desktop\h265test.mp4 > h265test.csv

image

ireader commented 1 week ago

感谢指正!