Отброс P-кадра при декодировании / кодировании MP4 видео - PullRequest
0 голосов
/ 26 июня 2019

Я декодирую / кодирую тот же файл mp4 (видео / mp4), используя ffmpeg (библиотека libAV) + кодировщик libx264.Например, оригинальный видеофайл содержит 182 кадра:

[libx264 @ 0x7fb4a843ce00] frame I:2     Avg QP:17.95  size: 13834
[libx264 @ 0x7fb4a843ce00] frame P:180   Avg QP:19.90  size:  6297

, но после следующего декодирования / кодирования я получаю файл, содержащий 181 кадр:

[libx264 @ 0x7fb4ac421dc0] frame I:2     Avg QP:17.93  size: 13627
[libx264 @ 0x7fb4ac421dc0] frame P:179   Avg QP:19.77  size:  5946

Я уже пробовализменить AVCodecContext gop_size / max_b_frames / priv_data (профиль, пресет, мелодия, x264opts), и я также прочитал эти сообщения и попытался решить мою проблему:

ffpmeg сбрасывает последний кадр при сжатии из MP4 вMP4 (libx264)

ffmpeg / libx264 C API: кадры отброшены с конца короткого MP4

UPD : если я установил частоту кадрови timebase = 26/1 и 1/26 и более - кадр не пропадает.

UPD2 : решено!

//in function avformat_open_input() add AVDictionary *options:
av_dict_set(&options, "r", "25", 0);
av_dict_set(&options, "ignore_editlist", "1", 0);

Я ожидал декодирования / кодирования видеосо всеми кадрами (без изменения параметров).

...