Log in

View Full Version : Avidemux Crashes When Trying To Play Mkv With FFMpeg Audio


LouieChuckyMerry
19th October 2017, 22:34
Hello, and thanks in advance for any help. For years I've happily used updated MeGUI on my Windows 7 64 bit laptop to shrivel my DVDs and Blu-rays to .mkv files with 10-bit x264 video and Nero .m4a audio; thanks again to all here who've provided so much guidance :) . Also, over these years I've frequently used updated Avidemux to cut clips from these encodes without issue. Very recently I started using Pazera Free Audio Extractor to downmix the audios, as I find it much simpler for batch processing. Unfortunately, this new form of audio causes Avidemux to crash, but only if I try to play the .mkv; that is, I can load the .mkv in Avidemux, I can navigate forward-backward in the video, and I can save a section of the .mkv without issue, but if I try to actually play the file Avidemux crashes with the error message "ExceptionFilter. The application has encountered a fatal problem. The current editing has been saved and will be reloaded at next start." Needless to type this makes cutting clips rather inconvenient. Clicking on "Show Details..." results in:

EXCEPTION_ACCESS_VIOLATION
RtlIsDosDeviceName_U [ntdll.dll]
ADM_setCrashHook [libADM_core6.dll]
ADM_setCrashHook [libADM_core6.dll]
ADM_setCrashHook [libADM_core6.dll]
UnhandledExceptionFilter [kernel32.dll]
EtwEventSetInformation [ntdll.dll]
_C_specific_handler [ntdll.dll]
RtlDecodePointer [ntdll.dll]
RtlUnwindEx [ntdll.dll]
KiUserExceptionDispatcher [ntdll.dll]
RtlIsDosDeviceName_U [ntdll.dll]
free [msvcrt.dll]
win32AudioDevice::localStop() [libADM_av_win32.dll]
audioDeviceThreaded::stop() [libADM_coreAudioDevice6.dll]
GUIPlayback::initializeAudio() [avidemux.exe]
GUIPlayback::initialize() [avidemux.exe]
GUI_PlayAvi() [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::buttonPressed() [avidemux.exe]
MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) [avidemux.exe]
QMetaObject::activate(QObject*, int, int, void**) [Qt5Core.dll]
QAbstractButton::toggled(bool) [Qt5Widgets.dll]
QAbstractButton::keyPressEvent(QKeyEvent*) [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::notifyInternal2(QObject*, QEvent*) [Qt5Core.dll]
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) [Qt5Widgets.dll]
QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) [Qt5Widgets.dll]
QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) [Qt5Widgets.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) [Qt5Widgets.dll]
QApplication::notify(QObject*, QEvent*) [Qt5Widgets.dll]
QCoreApplication::notifyInternal2(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]
TranslateMessageEx [USER32.dll]
TranslateMessage [USER32.dll]
QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) [Qt5Core.dll]
qt_plugin_instance [qwindows.dll]
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [Qt5Core.dll]
QCoreApplication::exec() [Qt5Core.dll]
UI_RunApp() [avidemux.exe]
startAvidemux(int, char**) [avidemux.exe]
SDL_main [avidemux.exe]
ms2timedisplay(unsigned int) [avidemux.exe]
unknown function [avidemux.exe]
unknown function [avidemux.exe]
BaseThreadInitThunk [kernel32.dll]
RtlUserThreadStart [ntdll.dll]


As far as I can figure, which isn't very, the issue is that Avidemux doesn't play nice with ffmpeg audio, but I'm quite certain I could be wrong ;) . Please, does anybody know what's actually wrong and if there's a way to rectify it? I tried to register on the Avidemux forum but wasn't allowed. Thanks again for any help.

LouieChuckyMerry
1st November 2017, 23:42
Do any of the really smart people who frequent this forum have any ideas or suggestions? Thank you :) .

Emulgator
7th November 2017, 19:21
What has mediainfo to say about the .mkv sources regarding audio ? before Pazeera, after Pazeera ?

LouieChuckyMerry
8th November 2017, 21:24
Emulgator: Thanks for your reply :) . As I attempted to answer your question I discovered that the issue seemingly isn't with Pazera but is with the number of channels the audio has. When I changed how I downmixed my source audios (from Nero-MeGUI to Pazera) I also changed from downmixing multichannel sources to Dolby Pro Logic II to keeping the original number of channels. I'd forgotten this fact :o . So, after running a number of tests I've learned that, regardless of using Nero-MeGUI or Pazera for the downmixing, Avidemux will play an .mkv or .mp4 with stereo audio just fine but spit out the error message "Trouble initializing audio device" if the audio is multichannel, then play the video without sound upon clicking "OK". At least Avidemux doesn't crash anymore ;) . Do you think it could be as simple as Avidemux only handling stereo audio or me lacking a codec?

Edit: From the Avidemux Wikipedia page: "Avidemux was written from scratch, but additional code from FFmpeg, MPlayer, Transcode and Avisynth has been used on occasion as well. Nonetheless it is a completely standalone program that does not require any other programs to read, decode, or encode other than itself."

EditEdit: With a new error message I did some more searching. I tried reverting to the 32-bit version but it didn't work and I tried multiple portable versions that didn't work. Finally, however, the portable version of Avidemux 2.7.0 (https://portableapps.com/apps/music_video/avidemux-portable) at PortableApps works just fine. I've no idea why, but it works. Anyway, Emulgator, thank you very much for pointing me in the right directon, I really appreciate it :) .

P.S.--If anyone can offer possibilities as to why this portable version works I'd be very curious to read them.

Emulgator
9th November 2017, 10:10
I tried to find Pazera's website: Seems down. Maybe that Dolby hit Pazeera ;-)
I would guess that the libavcodec that comes with the Avidemux installer can not decode what Pazera wrote as.. Pro Logic II ?
Dolby ProLogic II takes preprocessing and postprocessing.

Why the standalone can decode what the installer can't, I do not know.
Try to find out if a different build of ffmpeg sits under the hood regarding encoder (Pazera) / decoder (Avidemux).

BTW, I tried Avidemux once, it belched somehow and I went happily back to Avisynth->VirtualDub for the Impossible
followed by Vegas Pro for ease of work with the cleaned sources.

Just found a Pazera download. You can have up to 6-ch AC-3 encoding from FFmpeg N-83273-gbbd4d92

LouieChuckyMerry
10th November 2017, 20:38
Happy Friday! :)


I tried to find Pazera's website: Seems down. Maybe that Dolby hit Pazeera ;-)

It seems to be OK now: Pazera Software (http://www.pazera-software.com/)


I would guess that the libavcodec that comes with the Avidemux installer can not decode what Pazera wrote as.. Pro Logic II ?
Dolby ProLogic II takes preprocessing and postprocessing.

My installed Avidemux had no problem with Dolby Pro Logic II encoded with Nero-MeGUI or stereo encoded with Pazera; the problem started when I stopped downmixing multichannel audio to two-channel audio. Hard to believe that Avidemux can't decode multichannel audio, so it's probably something with my system.


BTW, I tried Avidemux once, it belched somehow and I went happily back to Avisynth->VirtualDub for the Impossible
followed by Vegas Pro for ease of work with the cleaned sources.

For encoding video I use AviSynth-MeGUI; I only use Avidemux to cut clips from the resultant .mkvs, perhaps an especially funny bit or an action scene.


Why the standalone can decode what the installer can't, I do not know.
Try to find out if a different build of ffmpeg sits under the hood regarding encoder (Pazera) / decoder (Avidemux).

Just found a Pazera download. You can have up to 6-ch AC-3 encoding from FFmpeg N-83273-gbbd4d92

An Everything (http://www.voidtools.com/) search of the portable Avidemux folder for "ffmpeg" shows:

1) libADM_ve_ffMpeg2.dll in "App\Avidemux32\plugins\videoEncoders"

2) libADM_ve_ffMpeg2.dll in "App\Avidemux64\plugins\videoEncoders"

3) libADM_ve_ffMpeg4.dll in "App\Avidemux32\plugins\videoEncoders"

4) libADM_ve_ffMpeg4.dll in "App\Avidemux64\plugins\videoEncoders"

and I uninstalled the installed Avidemux. Given how I use Avidemux I can certainly live with this workaround. Thanks again for the help, Emulgator.