Avidemux crasht beim Laden der videos von meiner cam

Started by Manuel, June 22, 2021, 08:48:04 AM

Previous topic - Next topic

Manuel

Hallo zusammen, vielleicht kann mir ja jemand helfen.

Ich habe hier so eine Spy-Cam, die speichert mir zwar die Videos ab, lassen sich aber nicht mit Avidemux  laden. Bei allen anderen Videos funktioniert das Problemlos, aber halt nicht von dieser Cam.



Das Absturzprotokoll sieht so aus:


 at line 314, file src/libavutil/imgutils.c
ADM_backTrack
av_fatalHandler
av_image_copy_plane
BitBlit(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned int, unsigned int)
ADMImage::duplicateMacro(ADMImage*, bool)
ADM_Composer::decompressImage(ADMImage*, ADMCompressedImage*, unsigned int)
ADM_Composer::DecodePictureUpToIntra(unsigned int, unsigned int)
ADM_Composer::seektoTime(unsigned int, unsigned long, bool)
ADM_Composer::goToTimeVideo(unsigned long)
ADM_Composer::checkForValidPts(_SEGMENT*)
ADM_Composer::addFile(char const*)
A_openVideo(char const*)


Es wäre großartig, wenn sich das mal jemand anschauen könnte.

Ich habe ein kleines Beispiel-Video auf Google drive hochgeladen

https://drive.google.com/file/d/1qpZVBjm2NANjOgEFpm6Bfc2PIOahttKR/view?usp=sharing



















eumagga0x2a

mediainfo berichtet zum Video-Track:

Video
ID                                      : 0
Format                                  : AVC
Format/Info                              : Advanced Video Codec
Format profile                          : High@L3.1
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                  : Yes
Format settings, Reference frames        : 1 frame
Format settings, GOP                    : M=1, N=15
Codec ID                                : X264
Codec ID/Info                            : XiWave GNU GPL x264 MPEG-4
Duration                                : 5 min 0 s
Bit rate                                : 474 kb/s
Width                                    : 1 920 pixels
Original width                          : 1 280 pixels
Height                                  : 1 080 pixels
Original height                          : 720 pixels

Avidemux glaubt den falschen Angaben des AVI-Containers (1920x1080) statt dem Codec (1280x720) und beendet sich auf sichere Weise (assert failure) wegen der Unstimmigkeit zwischen den Abmessungen des dekodierten Videos und dem reservierten Puffer.

Manuel

Danke für die Antwort.  Kann man da irgend etwas machen damit Avidemux die Videos trotzdem bearbeiten kann?

eumagga0x2a

Das Laden des Videos soll jetzt ohne Absturz möglich sein:

[demuxers/OpenDml] Try to get width and height from video codec, some crappy devices write wrong values to the container, triggering a crash.

Leider enden damit die Probleme mit dem Sample nicht: der Audio-Codec "A-law", den die Cam für die Tonspur verwendet, ist Avidemux unbekannt, es fehlt unter anderem ein Dekoder dafür. Außerdem schreibt die Cam auch noch einen falschen Wert für dwMicroSecPerFrame (dieses Feld beschreibt wie lange jedes Bild gezeigt werden soll, in Mikrosekunden) in den Header, weswegen Avidemux 20 fps statt 15 in den Eigenschaften des Videos anzeigt. Letzteres ist jedoch harmlos, beim Speichern wird der korrekte Wert vom Codec genommen.

Der H.264 Videostream liegt in einem Format vor, das eigtentlich in MPEG-TS (transport stream) gehört. Ich frage mich, wie man auf die Idee kommen kann, den in AVI zu packen...

Manuel

Wow, hört sich ja Klasse an.  Das dumme ist nur, dass ich das nicht kompilieren kann, da stößt der Compiler auf einen Fehler.

Wie wendet man denn den Patch korrekt an?  Oder gibt es da noch ein app-image?




Die Cam heißt übrigens MCSTREE Mini Camera - habe ich bei Amazon gekauft.
Die zugehörige App heißt HDWIFICam Pro. In dieser App kann man aber bzgl. des Aufnahmeformates usw. nichts ändern

Manuel

habe es gesehen, ist ja auch auf Github.  Danke für den super Service

eumagga0x2a

Quote from: Manuel on June 23, 2021, 09:54:55 AMDas dumme ist nur, dass ich das nicht kompilieren kann, da stößt der Compiler auf einen Fehler.

Hat der Compiler auf Geheimhaltung bestanden? ;-)

Der typische Fehler beim Kompilieren von Avidemux besteht darin, die Übersetzungen, die als ein Submodul eingebunden sind, nicht ausgecheckt zu haben. Richtig macht man es so:

git clone https://github.com/mean00/avidemux2.git && cd avidemux2 && git submodule update --init --recursive
Für spätere Aktualisierungen des Quellcodes reicht es, in Ordner "avidemux2" an git pull die Option --recurse anzuhängen:

git pull --recurse
Weiteres Vorgehen ist distributionsspezifisch.