- Về đơn giản, giá trị pts và dts là gì?
- Tại sao chúng quan trọng trong khi chuyển mã video [giải mã mã hóa]?
bit mã này làm gì trong ffmpeg.c, mục đích của nó là gì?ffmpeg.c pts và dts là gì? khối mã này làm gì trong ffmpeg.c?
01562 ist->next_pts = ist->pts = picture.best_effort_timestamp;
01563 if (ist->st->codec->time_base.num != 0) {
01564 int ticks= ist->st->parser ? ist->st->parser->repeat_pict+1 : ist->st->codec->ticks_per_frame;
01565 ist->next_pts += ((int64_t)AV_TIME_BASE *
01566 ist->st->codec->time_base.num * ticks)/
01567 ist->st->codec->time_base.den;
01568 }
Bạn có thể vui lòng sử dụng khung B và khung P là gì? – nirvanaswap
@nirvanaswap thực sự được giải thích khá tốt ở đây https://en.wikipedia.org/wiki/Video_compression_picture_types – Bart
Tôi vẫn không hiểu. Luồng phải được hiển thị như I B B P, Nhưng vì P nên đến trước B, chúng ta lưu trữ nó như I P B B. Do đó chúng ta giải mã nó theo thứ tự 1 2 3 4, điều đó có ý nghĩa. Nhưng chúng ta không nên trình bày nó theo thứ tự 1 3 4 2? Tại sao nó lại là 1 4 2 3? Khi chúng tôi có khung B liên tiếp, các khung B này có tận dụng lợi thế của khung I và P hay không hoặc chúng có sử dụng các khung B bên cạnh nhau không? – nirvanaswap