Avidemux 2.6.12 64bit Problem beim Speichern einer HDTV-Sendung im MP4-Format

Started by manno24, May 31, 2016, 11:29:00 AM

Previous topic - Next topic

manno24

Hallo,

ich habe eine Sendung von ServusTV im HD-Format aufgenommen, habe überflüssige Teile am Anfang und Ende der Sendung und die Werbung herausgeschnitten und wollte das Ergebnis als mp4-Datei speichern. Leider meldet Avidemux 2.6.12 (Build 160530) gleich zu Beginn:

     "The application has encountered a fatal problem"

Als Input für Avidemux liefert meine Box zur Aufnahme von Kabel-TV im Fall von HD meist mehrere .ts Dateien von 4GB Größe, wobei der Inhalt der .ts Dateien das Format mp4 h.264 hat. Die ganze Sendung setze ich dann mit der Append-Funktion von Avidemux zusammen, entferne wie gesagt überflüssige Teile und speichere mit den Parametern "Video Output: kopieren", "Audio-Output: kopieren" und "Output Format: MP4v2 Muxer".

Das hat bei früheren HD-Mitschnitten von ServusTV immer gut funktioniert (siehe 010_part.ts). Dank an Avidemux!

Der neue HD-Mitschnitt von ServusTV erzeugt nun den fatalen Fehler. ÃÅ"berraschenderweise erzeugt ein weiterer testweiser Mitschnitt aus einer anderen HD-Sendung von ServusTV das gleiche Problem. Ein testweiser Mitschnitt von ARD HD hat kein Problem.

Ich habe einige Testdateien angehängt:
- 000.ts: Das wäre die eigentliche Aufnahmedatei. Weil zu mit 4GB zu groß zum ÃÅ"bertragen ist, habe ich sie mit hjsplit.exe in kleinere Teile aufgesplittet und mit dem ersten von diesen Teilen getestet.
- 000_part.ts: Dies ist die erste Split-Datei von 000.ts. Sie besteht aus zwei vollständigen I-Frames und unvollständigen I-Frames am Anfang und Ende der Datei. Sie kann z.B. mit MPC-HC.exe abgespielt werden. Bei Avidemux stößt sie auf den scheinbar gleichen fatalen Fehler wie die Originaldatei 000.ts. Die Split-Datei ist 1,4MB groß und kann deshalb nicht angehängt werden.
- 000_part.ts.idx2: Avidemux Index-Datei
- crash_part.jpg, crash_stack_part.jpg: Snapshot der Meldungen von Avidemux zu dem fatalen Fehlerzustand bei 000_part.ts.
- 010_part.ts: Dies ist zum Vergleichen eine Split-Datei zu einer früheren HD-Aufnahme von ServusTV. Sie lässt sich ohne Problem als MP4-Datei speichern. Die Split-Datei ist 1,4MB groß und kann deshalb nicht angehängt werden.
- 010_part.ts.idx2: Avidemux Index-Datei

Ich konnte jedoch keine wesentlichen Unterschiede der Eigenschaften von 000_part.ts und 010_part.ts z.B. in der MediaInfo von MPC-HC.exe 64bit entdecken (00_part.ts.MediaInfo.txt, 010_part.ts.MediaInfo.txt).

Was mache ich falsch? Oder hat sich zum Beispiel etwas im Eingabe-Stream geändert? Ich hoffe, ihr könnt helfen.

Vielen Dank im Voraus!

Jan Gruuthuse

'Servus TV HD' (Bezahlfernsehen) oder 'Servus TV HD Deutschland' (free-to-air)?
meine Box? und Ihre Box ist? Betriebssystem: OpenPLi, ... ?
Wenn diese eine Aufnahme aus den letzten Tagen war: Gewitter, Unwetter, ... Könnte Störungen verursachen in avidemux ...

Haben Sie eine Remux versucht mit mkvtoolnix?  Dan die neu gespeicherte MKV in avidemux geladen?

manno24

Hallo Jan,

hier die fehlenden Angaben (sorry dafür):
- Die Streaming-Dateien *.ts mit Inhaltsformat mp4 (h.264) werden von einem Xoro Receiver für den Empfang von digitalem Kabelfernsehen "HRK 8750 CI+ Kabel-Receiver DVB-C" aufgezeichnet und auf einer USB-Platte gespeichert. Das ist die "Box".
- Die Streaming-Dateien werden von Avidemux (latest build) von der USB-Platte auf einem PC mit Windows 10 Pro 64bit verarbeitet.
- Der Sender ist Servus TV HD (Deutschland); der Kabel-TV-Provider ist Unitimedia (Deutschland).

Ich habe noch nicht Remux mit mkvtoolnix versucht.
Bemerkung: Ich habe noch keine Erfahrung mit dem MKV-Format. Das Speichern der betroffenen Datei mit dem MKV-Muxer stieß auch den Fehler:

     Assert failed :index<maxNaIu at line 939, file /home/fx/hudson/ workspace/mingw64QTS/avidemux_core/ADM_coreUtils/src/ ADM_infoExtractorH264.cpp

     The application has encountered a fatal problem The current editing has been saved and will be reloaded at next Start
   
Ich plane noch weitere Tests. Dies wird nun etwas Zeit erfordern.

Beste Grüße, Manfred

Jan Gruuthuse

Avidemux Menu -> Audio -> Select Track -> Deselect track with E-AC3 und versuche es erneut.

Wenn das fehlschlägt 1 min von diesen Kanal aufnehmen.
Laden Sie diese Datei auf Dropbox oder ähnliche Web-Service
Geben Sie einen Web-Link zu diesem Upload

ps: - Verwenden Sie ein kostenloses Dropbox-Konto, mega oder ähnliche Web-Service (freien Zugang der Ãâ€"ffentlichkeit, ohne Registrierung zum Download Ihre hochgeladenen Videos) danke.
ps:- Use a free dropbox account, mega or similar webservice (free public access, without registration to download your uploaded video) thank you.

manno24

Hallo,
in der Aufnahme gibt es keine E-AC3 Spur. Ich habe testweise alle 3 Audio-Tracks deaktiviert --> gleiches Problem.

Hier der Web-Link zur hochgeladenen Datei in Dropbox (zip-Datei mit dem gesamten Output des Xoro Kabel-Receivers + Avidemux Index-Datei:

https://dl.dropboxusercontent.com/u/79805703/%5BTS%5D2016-06-02.08.15.12-ServusTV%20HD-Auf%20legenddren%20Routen-57.zip

Beste Grüße
P.S. Ich hoffe, der Link funktioniert.

Jan Gruuthuse

Ich muss Ihre Ergebnisse bestätigen. Ich war auf dem falschen Fuß setzen: es hat nichts mit der Bearbeitung zu tun. Ich nehme das Problem in dem Englischen Forum. Und bekomme wahrscheinlich die Aufmerksamkeit der Entwickler.
see: crash NALU_descriptor (windows/ubuntu)

Jan Gruuthuse

Die fehler ist behoben (tested on ubuntu)
Versuchen Sie, mit avidemux_2.6.12_r160604_win64.exe http://www.avidemux.org/nightly/win64_ffmpeg3/
Können Sie bestätigen: Dies funktioniert für Sie?

manno24

Es funktioniert bei mir nur teilweise (Windows 10 64 Bit):

1. Es funktioniert, wenn die Datei 000.ts.idx2 in dem Ordner vorhanden ist, in
   dem auch die Eingabedatei 000.ts liegt (siehe das ZIP-File mit den
   Testdateien, die ich früher auf Dropbox hochgeladen habe:
   https://dl.dropboxusercontent.com/u/79805703/%5BTS%5D2016-06-02.08.15.12-ServusTV%20HD-Auf%20legenddren%20Routen-57.zip).

   Bemerkung: Scheinbar legt die ursprünglich benutzte Avidemux-Version die
              Datei 000.ts.idx2 noch korrekt ab, bevor sie auf das Problem
              stößt.

2. Jedoch, es funktioniert nicht, wenn die Datei 000.ts.idx2 in dem Ordner
   fehlt, d.h. wenn ich sie vor Aufruf von Avidemux lösche.

Ich habe jetzt mit avidemux_2.6.12_r160612_win64.exe getestet, weil ich diese
vorgefunden habe.

Bemerkung: Ich  konnte nicht früher testen, weil ich in den vorangegangenen
           Tagen nicht zuhause war. Dies wird auch in den nächsten Tagen der
           Fall sein.

avidemux_2.6.12_r160612_win64.exe liefert folgende Fehlermeldung:

    ExceptionFilter
    The application has encountered a fatal
    problem
    The current editing has been saved and will be
    reloaded at next Start

Die Details sind:
 
    EXCEPTION_ACCESS_VIOLATION
    getBits::getUEG()  [libADM_coreUtils6.dll]
    ADM_setCrashHook  [libADM_core6.dll]
    ADM_setCrashHook  [libADM_core6.dll]
    ADM_setCrashHook  [libADM_core6.dll]
    UnhandledExceptionFilter  [KERNELBASE.dll]
    memset  [ntdll.dll]
    _C_specific_handler  [ntdll.dll]
    _chkstk  [ntdll.dll]
    RtlImageNtHeaderEx  [ntdll.dll]
    KiUserExceptionDispatcher  [ntdll.dll]
    getBits::getUEG()  [libADM_coreUtils6.dll]
    TsIndexer::decodeSEI(unsigned int, unsigned char*, unsigned int*, pictureStructure*)  [libADM_dm_ts.dll]
    TsIndexer::runH264(char const*, ADM_TS_TRACK*)  [libADM_dm_ts.dll]
    tsIndexer(char const*)  [libADM_dm_ts.dll]
    probe  [libADM_dm_ts.dll]
    ADM_demuxerSpawn(unsigned int, char const*)  [libADM_coreDemuxer6.dll]
    ADM_Composer::addFile(char const*)  [avidemux.exe]
    A_openVideo(char const*)  [avidemux.exe]
    ADM_QT4_fileSel::GUI_FileSelRead(char const*, void (*)(char const*))  [avidemux.exe]
    HandleAction(Action)  [avidemux.exe]
    MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)  [avidemux.exe]
    QMetaObject::activate(QObject*, int, int, void**)  [Qt5Core.dll]
    MainWindow::actionSignal(Action)  [avidemux.exe]
    MainWindow::searchToolBar(QAction*)  [avidemux.exe]
    MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)  [avidemux.exe]
    QMetaObject::activate(QObject*, int, int, void**)  [Qt5Core.dll]
    QToolBar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)  [Qt5Widgets.dll]
    QMetaObject::activate(QObject*, int, int, void**)  [Qt5Core.dll]
    QToolButton::setArrowType(Qt::ArrowType)  [Qt5Widgets.dll]
    QToolButton::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)  [Qt5Widgets.dll]
    QMetaObject::activate(QObject*, int, int, void**)  [Qt5Core.dll]
    QAction::activate(QAction::ActionEvent)  [Qt5Widgets.dll]
    QAbstractButton::mouseMoveEvent(QMouseEvent*)  [Qt5Widgets.dll]
    QAbstractButton::mouseReleaseEvent(QMouseEvent*)  [Qt5Widgets.dll]
    QToolButton::mouseReleaseEvent(QMouseEvent*)  [Qt5Widgets.dll]
    QWidget::event(QEvent*)  [Qt5Widgets.dll]
    QToolButton::event(QEvent*)  [Qt5Widgets.dll]
    QApplicationPrivate::notify_helper(QObject*, QEvent*)  [Qt5Widgets.dll]
    QApplication::notify(QObject*, QEvent*)  [Qt5Widgets.dll]
    QCoreApplication::notifyInternal(QObject*, QEvent*)  [Qt5Core.dll]
    QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)  [Qt5Widgets.dll]
    non-virtual thunk to QWidget::metric(QPaintDevice::PaintDeviceMetric) const  [Qt5Widgets.dll]
    non-virtual thunk to QWidget::metric(QPaintDevice::PaintDeviceMetric) const  [Qt5Widgets.dll]
    QApplicationPrivate::notify_helper(QObject*, QEvent*)  [Qt5Widgets.dll]
    QApplication::notify(QObject*, QEvent*)  [Qt5Widgets.dll]
    QCoreApplication::notifyInternal(QObject*, QEvent*)  [Qt5Core.dll]
    QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)  [Qt5Gui.dll]
    QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)  [Qt5Gui.dll]
    QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)  [Qt5Gui.dll]
    QEventDispatcherWin32Private::sendTimerEvent(int)  [Qt5Core.dll]
    DispatchMessageW  [USER32.dll]
    DispatchMessageW  [USER32.dll]
    QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)  [Qt5Core.dll]
    unknown function  [qwindows.dll]
    QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)  [Qt5Core.dll]
    QCoreApplication::exec()  [Qt5Core.dll]
    myQApplication::exec()  [avidemux.exe]
    UI_RunApp()  [avidemux.exe]
    startAvidemux(int, char**)  [avidemux.exe]
    SDL_main  [avidemux.exe]
    console_main  [avidemux.exe]
    WinMain  [avidemux.exe]
    unknown function  [avidemux.exe]
    unknown function  [avidemux.exe]
    BaseThreadInitThunk  [KERNEL32.DLL]
    RtlUserThreadStart  [ntdll.dll]

mean


manno24

Did I use the right version? I tested with avidemux_2.6.12_r160613_win32.exe http://www.avidemux.org/nightly/win32_ffmpeg3/

This does not work quite well, i.e.
- Preparing my actual stream works well i.e. opening a 4GB input file,
  appending another 660MB input file and cutting off some unnecassary parts.
- Besides, there seems to be no sound when using the play-back funktion
  (start/stop).
- But the Save funktion encounters a problem and does not work -- see
  parameters below.

Note: It is the same when using the small test-stream that I have uploaded to
      Dropbox.

Should I use another 32bit version?

----

Parameters:

Open:   000.ts 4.194.656 KB
Append: 001.ts   676.261 KB
Video Output: kopieren
Audio Output: kopieren (3 track(s))
   Track O from video (AC3,6 chan,448kbps)
   Track 1 from Video (MP2,Stereo,160kbps)
   Track 2 from Video (MP2,Stereo,160kbps)
Output Format: MP4v2 Muxer

Cutting off not necessary parts.

Save the result...

... results immediately in the following error message:

Assert failed zindex<maxNalu at line 939, file /home/fx/hudson/
workspace/mingw32QT5_ffmpeg3/avidemux_core/ADM_coreUtiIs/src/
ADM_infoExtractorH264.cpp
The application has encountered a fatal problem
The current editing has been saved and will be reloaded at next Start

Show Details...

ADM_setCrashHook  [libADM_core6.dll]
ADM_backTrack  [libADM_core6.dll]
unknown function  [unknown module]

Final error message:

Microsoft Visual C++ Runtime Library

  Runtime Error!
 
  Program: C:\Program Files (x86)\Avidemux 2.6 - 32
  bits\avidemux.exe
 
  This application has requested the Runtime to terminate it in an
  unusual way.
  Please contact the application's Support team for more information.

mean

2 different problems
That one :     crash : getBits::getUEG()  [libADM_coreUtils6.dll] 
It is a compiler bug, i'm fixing it by updating the compiler. Only affects win64.

The other one : I need to fix the 1st one first

manno24

Hello,
I made an additional test with a nightly 32Bit version of avidemux
(avidemux_2.6.12_r160624_win32) and observed a defect in the quality of the
MP4v2 video output: there are sporadic video artefacts i.e. there are jitters in
the video pictures and sometimes in the audio tone too. The artefacts do not
occur in the input files. 

Input are the two different video ts-files, which I usually use:
- the previously uploaded short test video
- my original big video split up into a 4GB part and a 600MB part.

The videos under test all have format MPEG4 Video (H264) 1920x1080 25fps,
encapsulated into a transport streaming file.

There is an artefact to be seen in the saved MP4v2 output of the uploaded short
test video at the end after about 1 minute and 5 seconds.

All other operations, which I applied to the 32Bit version, were working well i.e.
loading, appending, cutting and saving.