jliljebl / flowblade

Video Editor for Linux
GNU General Public License v3.0
2.64k stars 180 forks source link

Segmentation fault remains on Ubuntu Artful running against 6.6.0 #495

Closed cefn closed 6 years ago

cefn commented 6 years ago

Please include the following information. 1) Flowblade version (Help->About):

1.16.0

2) MLT version (Help->Runtime Environment):

Built from source.

3) Your distribution (Ubuntu, Debian, Mint etc.):

Lubuntu Artful Aardvark

I noted https://github.com/jliljebl/flowblade/issues/485 was closed saying that upgrading to 6.6.0 would fix the issues with a segmentation fault when trying to load SDL.

Unfortunately, upgrading to 6.6.0 doesn't solve the problem, (at least if using the Kdenlive-built packages on Artful).

My theory was that's because they don't include the proper flags when building.

I installed 6.6.0 from https://launchpad.net/~kdenlive/+archive/ubuntu/mlt/+packages and encountered the same error as before when launching the standard .deb for 1.16 (as expected)...

$ apt list --installed | grep flowblade
flowblade/now 1.16.0-1 all [installed,local]
$ which flowblade
/usr/bin/flowblade
$ /usr/bin/flowblade
[...]
Create SDL1 consumer...
Segmentation fault (core dumped)

I then tried to build the 6.6.0 .debs from source with modified flags. I uncommented the line...

deb-src http://ppa.launchpad.net/kdenlive/mlt/ubuntu artful main

in /etc/apt/sources.list.d/kdenlive-ubuntu-mlt-artful.list to make source packages available, then followed https://wiki.debian.org/BuildingTutorial#Get_the_source_package to try and successfully build my own copy of the Kdenlive mlt .debs using

debuild -b -uc -us

before incorporating the changed build flags documented at https://github.com/flathub/io.github.jliljebl.Flowblade/blob/master/io.github.jliljebl.Flowblade.json#L431 and repeating the process.

You can see my attempt to include the suggested flags into the debian/rules file at this Mergely.

This process then created .deb files OUTSIDE the source package folder (took me a while to realise it creates .debs as a sibling of the parent folder!), so I set about installing these to replace my own .deb files. I removed everything to be sure, then installed the newly built .deb packages (packages which were meant to have the proper flags hopefully)...

sudo apt remove libmlt++3 libmlt6 libmlt-data libmlt-dev libmlt++-dev
sudo dpkg -i `ls *all*.deb`
sudo dpkg -i `ls *amd64*.deb`

Unfortunately after reinstalling flowblade, apparently now running against the modified packages, I still get the SDL segmentation fault like this...

FLOWBLADE MOVIE EDITOR 1.16
---------------------------
Launch script dir: /usr/bin
Running from installation...
modules path: /usr/share/flowblade/Flowblade
MLT found, version: 6.7.0
numpy version: 1.13.3
OS: Ubuntu 17.10
Python 2.7.14 (default, Sep 23 2017, 22:06:14) 
[GCC 7.2.0]
GTK+ version: 3.22.25
User dir: /home/cefn/.flowblade/
Locale: en_GB
Translations at /usr/share/locale were not found, using program root directory translations.
Use OS locale language.
Valid shortcut files found: ['flowblade.xml', 'premiere.xml']
Keyboard shortcuts file: flowblade.xml
Loading shortcuts: Flowblade
1366 768
Small height: True
Small width: True
Detecting environment...
---
video_codecs:
  - a64multi
  - a64multi5
  - alias_pix
  - amv
  - apng
  - asv1
  - asv2
  - avrp
  - avui
  - ayuv
  - bmp
  - cinepak
  - cljr
  - dnxhd
  - dpx
  - dvvideo
  - ffv1
  - ffvhuff
  - flashsv
  - flashsv2
  - flv
  - gif
  - h261
  - h263
  - h263p
  - hap
  - huffyuv
  - jpeg2000
  - jpegls
  - ljpeg
  - mjpeg
  - mpeg1video
  - mpeg2video
  - mpeg4
  - msmpeg4v2
  - msmpeg4
  - msvideo1
  - pam
  - pbm
  - pcx
  - pgm
  - pgmyuv
  - png
  - ppm
  - prores
  - prores_aw
  - prores_ks
  - qtrle
  - r10k
  - r210
  - rawvideo
  - roqvideo
  - rv10
  - rv20
  - sgi
  - snow
  - sunrast
  - svq1
  - targa
  - tiff
  - utvideo
  - v210
  - v308
  - v408
  - v410
  - vc2
  - wrapped_avframe
  - wmv1
  - wmv2
  - xbm
  - xface
  - xwd
  - y41p
  - yuv4
  - zlib
  - zmbv
  - libopenjpeg
  - libtheora
  - libvpx
  - libvpx-vp9
  - libwebp_anim
  - libwebp
  - libx264
  - libx264rgb
  - libx265
  - libxvid
  - h264_nvenc
  - h264_omx
  - h264_vaapi
  - nvenc
  - nvenc_h264
  - nvenc_hevc
  - hevc_nvenc
  - hevc_vaapi
  - mjpeg_vaapi
  - mpeg2_vaapi
  - vp8_vaapi
...
---
audio_codecs:
  - comfortnoise
  - s302m
  - aac
  - ac3
  - ac3_fixed
  - alac
  - dca
  - eac3
  - flac
  - g723_1
  - mlp
  - mp2
  - mp2fixed
  - nellymoser
  - opus
  - real_144
  - sonic
  - sonicls
  - truehd
  - tta
  - vorbis
  - wavpack
  - wmav1
  - wmav2
  - pcm_alaw
  - pcm_f32be
  - pcm_f32le
  - pcm_f64be
  - pcm_f64le
  - pcm_mulaw
  - pcm_s8
  - pcm_s8_planar
  - pcm_s16be
  - pcm_s16be_planar
  - pcm_s16le
  - pcm_s16le_planar
  - pcm_s24be
  - pcm_s24daud
  - pcm_s24le
  - pcm_s24le_planar
  - pcm_s32be
  - pcm_s32le
  - pcm_s32le_planar
  - pcm_s64be
  - pcm_s64le
  - pcm_u8
  - pcm_u16be
  - pcm_u16le
  - pcm_u24be
  - pcm_u24le
  - pcm_u32be
  - pcm_u32le
  - roq_dpcm
  - adpcm_adx
  - g722
  - g726
  - adpcm_ima_qt
  - adpcm_ima_wav
  - adpcm_ms
  - adpcm_swf
  - adpcm_yamaha
  - libgsm
  - libgsm_ms
  - libmp3lame
  - libopus
  - libshine
  - libspeex
  - libtwolame
  - libvorbis
  - libwavpack
...
---
formats:
  - a64
  - ac3
  - adts
  - adx
  - aiff
  - amr
  - apng
  - asf
  - ass
  - ast
  - asf_stream
  - au
  - avi
  - avm2
  - bit
  - caf
  - cavsvideo
  - crc
  - dash
  - data
  - daud
  - dirac
  - dnxhd
  - dts
  - dv
  - eac3
  - f4v
  - ffm
  - ffmetadata
  - fifo
  - filmstrip
  - flac
  - flv
  - framecrc
  - framehash
  - framemd5
  - g722
  - g723_1
  - gif
  - gsm
  - gxf
  - h261
  - h263
  - h264
  - hash
  - hds
  - hevc
  - hls
  - ico
  - ilbc
  - image2
  - image2pipe
  - ipod
  - ircam
  - ismv
  - ivf
  - jacosub
  - latm
  - lrc
  - m4v
  - md5
  - matroska
  - matroska
  - microdvd
  - mjpeg
  - mlp
  - mmf
  - mov
  - mp2
  - mp3
  - mp4
  - mpeg
  - vcd
  - mpeg1video
  - dvd
  - svcd
  - mpeg2video
  - vob
  - mpegts
  - mpjpeg
  - mxf
  - mxf_d10
  - mxf_opatom
  - null
  - nut
  - oga
  - ogg
  - ogv
  - oma
  - opus
  - alaw
  - mulaw
  - f64be
  - f64le
  - f32be
  - f32le
  - s32be
  - s32le
  - s24be
  - s24le
  - s16be
  - s16le
  - s8
  - u32be
  - u32le
  - u24be
  - u24le
  - u16be
  - u16le
  - u8
  - psp
  - rawvideo
  - rm
  - roq
  - rso
  - rtp
  - rtp_mpegts
  - rtsp
  - sap
  - scc
  - segment
  - stream_segment,ssegment
  - singlejpeg
  - smjpeg
  - smoothstreaming
  - sox
  - spx
  - spdif
  - srt
  - swf
  - tee
  - 3g2
  - 3gp
  - mkvtimestamp_v2
  - truehd
  - tta
  - uncodedframecrc
  - vc1
  - vc1test
  - voc
  - w64
  - wav
  - webm
  - webm_dash_manifest
  - webm_chunk
  - webp
  - webvtt
  - wtv
  - wv
  - yuv4mpegpipe
  - chromaprint
  - alsa
  - caca
  - fbdev
  - opengl
  - oss
  - pulse
  - sdl,sdl2
  - sndio
  - v4l2
  - xv
...
MLT detection succeeded, 161 formats, 97 video codecs and 70 audio codecs found.
521 MLT services found.
Loading render profiles...
Loading filters...
Brightness dropped, MLT version too low for this filter.
Loading transitions...
RGB Adjustment dropped for Color Adjustment
Hue dropped for Color Adjustment
Gamma dropped for Lift Gain Gamma
G'MIC found
Natron not found
Player initialized with profile:  HD 1080p 29.97 fps
Selected color detected
BG color detected
Create SDL1 consumer...
Segmentation fault (core dumped)

Any suggestions for how the flags should properly be specified in the debian/rules file so that the SDL support gets built into the mlt .debs built from source in this way?

Although I have the flatpak version running on my machine, I would ideally like to be able to track the Github version and contribute to testing which requires the packages being installed locally and running it as 'script-only' version.

I almost forgot to say that the Flowblade project is unbelievably good from a design and usability standpoint, as long as I can get the stability I need.

eszlari commented 6 years ago

Although I have the flatpak version running on my machine, I would ideally like to be able to track the Github version and contribute to testing which requires the packages being installed locally and running it as 'script-only' version.

It is not hard to use flatpak for development. To build it yourself:

$ flatpak-builder --install --ccache build_dir io.github.jliljebl.Flowblade.json
$ flatpak run io.github.jliljebl.Flowblade

You can use a local git repo as a source in the json build file.

cefn commented 6 years ago

That's really useful, thanks, and definitely how I would continue with testing if I had the opportunity.

However, I have found that every third type of operation I attempt in Flowblade leads to a crash or hang, even using the flatpak version with blessed MLT libs, so I sadly won't be able to continue. This is partly because I've no idea why these crashes are happening or how I can avoid them or properly report them expecting an improvement in the situation.

Running KDenlive on the same system (backed by a lot of the same libraries) has not crashed once during hours of editing the same footage.

I've spent two or three days trying every combination I could hoping I could get it stable enough to crash only once in a while, so I could help improve the software, but the frequency of crashes has had such an impact on productivity in every configuration that I'll have to leave it for a few months. Perhaps I move and click my mouse more quickly than average (and hence create unusual conditions), or have unusual media or something (though it's mostly just footage from Android phones and FFMpege x11grab), but I'm really struggling to limit the damage from Flowblade's instability.

What's the best way I can usefully document the crash situations if I return to the effort again in the future? I'd really like Flowblade to be my editor in the long run and I'm willing to spend a bit of effort on documenting occasional crashes that I can recover from, assuming I can still actually edit video :) For my current project work I'll have to drop back to KDenlive, though.

jliljebl commented 6 years ago

This does not reproduce on my current system, issue likely dependent on affected system.