Hi, I've got a .dts file, which I'm decoding using FFmpeg libraries. 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. 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.
FFmpeg handles this file fine, the result output is 96Khz audio, played at a proper speed. 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? I modified ffprobe to print the sample_rate for each frame, as it does not it by default, and the output is like this: ffprobe.exe -v debug -show_frames -show_format file.dts ... up until this all frames are 96000 ... media_type=audio stream_index=0 sample_rate=96000 -- ! key_frame=1 pts=132480 pts_time=1.472000 pkt_dts=132480 pkt_dts_time=1.472000 best_effort_timestamp=132480 best_effort_timestamp_time=1.472000 pkt_duration=960 pkt_duration_time=0.010667 pkt_pos=277794 pkt_size=2013 sample_fmt=fltp nb_samples=1024 channels=6 channel_layout=5.1(side) [SIDE_DATA] side_data_type=AVMatrixEncoding [/SIDE_DATA] [/FRAME] And starting from here, all the following frames have sample_rate 48000 [FRAME] media_type=audio stream_index=0 sample_rate=48000 -- ! key_frame=1 pts=133440 pts_time=1.482667 pkt_dts=133440 pkt_dts_time=1.482667 best_effort_timestamp=133440 best_effort_timestamp_time=1.482667 pkt_duration=960 pkt_duration_time=0.010667 pkt_pos=279807 pkt_size=2013 sample_fmt=fltp nb_samples=512 channels=6 channel_layout=5.1(side) [SIDE_DATA] side_data_type=AVMatrixEncoding [/SIDE_DATA]
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
