Как я могу определить, какой файл FFmpeg используется

388
a_sid

Я хочу изучить код для декодера MJPEG. Я пытаюсь сделать это, используя команды запуска для декодера, а затем пытаюсь определить, какой файл выполняет задачу декодирования.

Я выполнил следующую команду:

ffmpeg -r 10 -i heli.mjpg -vcodec copy newheli.avi 

Это произвело следующий вывод:

[avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 372, current: 149; changing to 373. This may result in incorrect timestamps in the output file. [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 373, current: 150; changing to 374. This may result in incorrect timestamps in the output file. .... .... .... .... .... ....  [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 536, current: 215; changing to 537. This may result in incorrect timestamps in the output file. [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 537, current: 215; changing to 538. This may result in incorrect timestamps in the output file. [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 538, current: 216; changing to 539. This may result in incorrect timestamps in the output file. [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 539, current: 216; changing to 540. This may result in incorrect timestamps in the output file. [avi @ 0x1818040] Non-monotonous DTS in output stream 0:0; previous: 540, current: 216; changing to 541. This may result in incorrect timestamps in the output file. frame= 542 fps=0.0 q=-1.0 Lsize= 2720kB time=00:00:54.20 bitrate= 411.1kbits/s  video:2701kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.686601% 

Начальная часть вывода не видна. Как я могу найти, какой файл .c выполняет декодирование MJPEG? Как я могу изолировать его, внести изменения в .c, а затем запустить его?

РЕДАКТИРОВАТЬ:

В идеале я хотел бы перенести код для декодера MJPEG в IDE, такую ​​как Qt, и проанализировать там код. Я изо всех сил пытаюсь понять, как я могу запустить декодер MJPEG там.

1
самый прямой путь - запустить его в отладчике (например, `gdb`). вам понадобится отладочный исполняемый файл; в зависимости от платформы, которая может включать в себя установку пакета `-dbg` или локальную компиляцию` ffmpeg`. quixotic 7 лет назад 0
@quixotic Спасибо за ответ. Что вы подразумеваете под _компиляцией `ffmpeg` localally_? Я могу запустить `ffmpeg`, и это потому, что я его уже скомпилировал. Я не очень знаком с этим, поэтому, пожалуйста, извините, если мой вопрос слишком прост. a_sid 7 лет назад 0
часто, когда программное обеспечение устанавливается из предварительно собранных двоичных файлов, упаковщик удаляет символы отладки из исполняемого файла. это экономит место, но делает отладчики менее понятными. вам может понадобиться перекомпилировать `ffmpeg`, чтобы получить их; используйте флаг `--disable-stripping` при повторном запуске скрипта` configure`. quixotic 7 лет назад 0
@quixotic Спасибо за вашу помощь. Я выполнил команду. Как я могу использовать это, чтобы передать код для декодера MJPEG в Qt, а затем декодировать файлы mjpeg оттуда? a_sid 7 лет назад 0

0 ответов на вопрос