<div dir="ltr">Hi,<br><br>I've got a .dts file, which I'm decoding using FFmpeg libraries.<br>The file is detected as DTS 96/24, which would be fine, but the thing is that only some first frames have sample_rate 96000 while all the rest ones have sample_rate 48000.<br>As a result the decoded audio is assumed to be 96000, but in the reality it's 48000 and it plays back at wrong speed.<br><br>FFmpeg handles this file fine, the result output is 96Khz audio, played at a proper speed.<br><br>My question is how to handle files like this? Do I need to re-sample those frames to the 96000 or that can be handled via FFmpeg automatically?<br><br>I modified ffprobe to print the sample_rate for each frame, as it does not it by default, and the output is like this:<br><br>ffprobe.exe -v debug -show_frames -show_format file.dts<br><br>...<br>up until this all frames are 96000<br>...<br>media_type=audio<br>stream_index=0<br>sample_rate=96000 -- !<br>key_frame=1<br>pts=132480<br>pts_time=1.472000<br>pkt_dts=132480<br>pkt_dts_time=1.472000<br>best_effort_timestamp=132480<br>best_effort_timestamp_time=1.472000<br>pkt_duration=960<br>pkt_duration_time=0.010667<br>pkt_pos=277794<br>pkt_size=2013<br>sample_fmt=fltp<br>nb_samples=1024<br>channels=6<br>channel_layout=5.1(side)<br>[SIDE_DATA]<br>side_data_type=AVMatrixEncoding<br>[/SIDE_DATA]<br>[/FRAME]<br><br>And starting from here, all the following frames have sample_rate 48000<br><br>[FRAME]<br>media_type=audio<br>stream_index=0<br>sample_rate=48000 -- !<br>key_frame=1<br>pts=133440<br>pts_time=1.482667<br>pkt_dts=133440<br>pkt_dts_time=1.482667<br>best_effort_timestamp=133440<br>best_effort_timestamp_time=1.482667<br>pkt_duration=960<br>pkt_duration_time=0.010667<br>pkt_pos=279807<br>pkt_size=2013<br>sample_fmt=fltp<br>nb_samples=512<br>channels=6<br>channel_layout=5.1(side)<br>[SIDE_DATA]<br>side_data_type=AVMatrixEncoding<br>[/SIDE_DATA]<br><br></div>