[FFmpeg-user] How can I burn-in the TRUE TIME timestamp OR SUBTITLES? from AVCHD/MTS video?

Jesse Gordon tojesseg at gmail.com
Fri Apr 4 21:11:47 EEST 2025


Good Morning BloodMan and Everybody! (Not yet solved, getting closer!)

> https://video.stackexchange.com/questions/35917/ffmpeg-how-to-burn-in-the-timecode-from-a-streams-metadata 


Thank you for the tips! This is getting close, but in my case it always 
just displays "00:00:00:00" because, according to ffprobe:

TAG:timecode=00:00:00:00  For EVERY frame

and

[TIMECODE]
value=00:00:00:00
[/TIMECODE]

Also, for EVERY frame... (Shame  shame Sony...)

However, I do notice that there is a [SUBTITLE] section for every 30 
video frames:

Below are the first three  SUBTITLE sections. Is it possible that this 
is what ffplay is using to display the real date/time?

Or is it calculating it from the pkt_pts or best_effort_timestamp stuff 
in the actual video frames? (Also see one video frame below, the fourth 
video frame.)


Also of interest,

Input #0, mpegts, from '00000.MTS':
   Duration: 00:00:37.06, start: 1.016689, bitrate: 26570 kb/s
   Program 1
   Stream #0:0[0x1011]: Video: h264 (High) (HDPR / 0x52504448), 
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 
tbr, 90k tbn, 119.88 tbc
   Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 
stereo, fltp, 256 kb/s
   Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 
0x0090), 1920x1080


I did try a few sample commands to extract subtitles but those just gave 
an empty .srt file.  It looks to me like the subtitle entries are time 
stamped but empty.


But somehow ffplay is correctly decoding the real time date and time and 
displaying it.

maybe it's a question for the devs?


I would just say that Sony hadn't implemented it in any understandable 
way and throw in the towel if FFPLAY didn't decode it correctly!


Thank you all very much, I will continue rooting around, definitely let 
me know if any ideas come to mind!

~Jesse


[SUBTITLE]
media_type=subtitle
pts=1016689
pts_time=1.016689
format=0
start_display_time=0
end_display_time=4294967295
num_rects=1
[/SUBTITLE]

[SUBTITLE]
media_type=subtitle
pts=1517189
pts_time=1.517189
format=0
start_display_time=0
end_display_time=4294967295
num_rects=1
[/SUBTITLE]

[SUBTITLE]
media_type=subtitle
pts=2017689
pts_time=2.017689
format=0
start_display_time=0
end_display_time=4294967295
num_rects=1
[/SUBTITLE]

[FRAME]
media_type=video
stream_index=0
key_frame=0
pkt_pts=94505
pkt_pts_time=1.050056
pkt_dts=94504
pkt_dts_time=1.050044
best_effort_timestamp=94505
best_effort_timestamp_time=1.050056
pkt_duration=1501
pkt_duration_time=0.016678
pkt_pos=264768
pkt_size=69453
width=1920
height=1080
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
coded_picture_number=2
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
color_range=unknown
color_space=unknown
color_primaries=unknown
color_transfer=unknown
chroma_location=left
TAG:timecode=00:00:00:00
[SIDE_DATA]
side_data_type=SMPTE 12-1 timecode
[TIMECODE]
value=00:00:00:00
[/TIMECODE]
[/SIDE_DATA]
[/FRAME]

>


More information about the ffmpeg-user mailing list