Wie kann ich feststellen, welche FFmpeg-Datei verwendet wird?

408
a_sid

Ich möchte den Code für den MJPEG-Decoder studieren. Ich versuche das, indem ich laufende Befehle für den Decoder benutze und dann versuche, die Datei zu identifizieren, die die Decodierungsaufgabe ausführt.

Ich habe den folgenden Befehl ausgeführt:

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

Es ergab folgende Ausgabe:

[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% 

Der Anfangsteil der Ausgabe ist nicht sichtbar. Wie kann ich herausfinden, welche .c-Datei MJPEG-Decodierung durchführt? Wie kann ich es isolieren, Änderungen an der .c vornehmen und dann ausführen?

BEARBEITEN:

Im Idealfall möchte ich den Code für den MJPEG-Decoder in eine IDE wie Qt übertragen und dort den Code analysieren. Ich habe Schwierigkeiten zu verstehen, wie ich den MJPEG-Decoder dort betreiben kann.

1
Der direkteste Weg ist, ihn in einem Debugger auszuführen (zB `gdb`). Sie benötigen eine ausführbare Debug-Datei. abhängig von der Plattform, die das Installieren eines `-dbg`-Pakets oder das lokale Kompilieren von 'ffmpeg` umfasst. quixotic vor 7 Jahren 0
@quixotic Danke für die Antwort. Was meinen Sie mit "ffmpeg" lokal übersetzen _? Ich kann `ffmpeg` ausführen und das liegt daran, dass ich es bereits kompiliert habe. Ich bin damit nicht sehr vertraut, entschuldigen Sie mich bitte, wenn meine Frage zu einfach ist. a_sid vor 7 Jahren 0
Wenn Software aus vorgefertigten Binärdateien installiert wird, hat der Packager häufig Debugging-Symbole aus der ausführbaren Datei entfernt. Dies spart Platz, macht Debugger jedoch weniger übersichtlich. Möglicherweise müssen Sie `ffmpeg` erneut kompilieren, um sie zu erhalten. Verwenden Sie das Flag "--disable-stripping", wenn Sie das Skript "configure" erneut ausführen. quixotic vor 7 Jahren 0
@quixotic Vielen Dank für Ihre Hilfe. Ich habe den Befehl ausgeführt. Wie kann ich damit den Code für den MJPEG-Decoder nach Qt übertragen und dann MJPEG-Dateien von dort decodieren? a_sid vor 7 Jahren 0

0 Antworten auf die Frage