OpenShot / openshot-qt

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.
http://www.openshot.org
Other
4.27k stars 533 forks source link

Application hangs when exporting with custom profile #3848

Closed allelopath closed 3 years ago

allelopath commented 3 years ago

Describe the bug: When exporting the application hangs at 0% progress.

Expected behavior: Progress bar increments until complete. An exported mp4 file

System Details:

Screenshot_Square

Square1080.txt

description=Square_1080x1080_30_fps frame_rate_num=30 frame_rate_den=1001 width=1080 height=1080 progressive=1 sample_aspect_num=1 sample_aspect_den=1 display_aspect_num=16 display_aspect_den=9 colorspace=709

openshot-qt.log

  launch:INFO ------------------------------------------------
  launch:INFO    OpenShot (version 2.4.3)
  launch:INFO ------------------------------------------------
     app:INFO openshot-qt version: 2.4.3
     app:INFO libopenshot version: 0.2.2
     app:INFO platform: Linux-5.4.0-53-lowlatency-x86_64-with-glibc2.29
     app:INFO processor: x86_64
     app:INFO machine: x86_64
     app:INFO python version: 3.8.5
     app:INFO qt5 version: 5.12.8
     app:INFO pyqt5 version: 5.14.1
 metrics:ERROR Error determining OS version in metrics.py
language:INFO Qt Detected Languages: ['en-US']
language:INFO LANG Environment Variable: en_US.UTF-8
language:INFO LOCALE Environment Variable: 
language:INFO OpenShot Preference Language: Default

project_data:INFO Setting default profile to HD 720p 30 fps app:INFO Setting font to Cantarell logger_libopenshot:INFO Connecting to libopenshot with debug port: 5556 app:INFO Setting custom dark theme ui_util:INFO Initializing UI for MainWindow ui_util:INFO Binding event MainWindow:actionNew_trigger ui_util:INFO Binding event MainWindow:actionOpen_trigger ui_util:INFO Binding event MainWindow:actionSave_trigger ui_util:INFO Binding event MainWindow:actionUndo_trigger ui_util:INFO Binding event MainWindow:actionSaveAs_trigger ui_util:INFO Binding event MainWindow:actionImportFiles_trigger ui_util:INFO Binding event MainWindow:actionImportImageSequence_trigger ui_util:INFO Binding event MainWindow:actionRedo_trigger ui_util:INFO Binding event MainWindow:actionRemoveClip_trigger ui_util:INFO Binding event MainWindow:actionRemoveTransition_trigger ui_util:INFO Binding event MainWindow:actionExportVideo_trigger ui_util:INFO Binding event MainWindow:actionUploadVideo_trigger ui_util:INFO Binding event MainWindow:actionAddTrack_trigger ui_util:INFO Binding event MainWindow:actionPreferences_trigger ui_util:INFO Binding event MainWindow:actionPlay_trigger ui_util:INFO Binding event MainWindow:actionJumpStart_trigger ui_util:INFO Binding event MainWindow:actionRewind_trigger ui_util:INFO Binding event MainWindow:actionFastForward_trigger ui_util:INFO Binding event MainWindow:actionJumpEnd_trigger ui_util:INFO Binding event MainWindow:actionSaveFrame_trigger ui_util:INFO Binding event MainWindow:actionArrowTool_trigger ui_util:INFO Binding event MainWindow:actionRazorTool_trigger ui_util:INFO Binding event MainWindow:actionSnappingTool_trigger ui_util:INFO Binding event MainWindow:actionAddMarker_trigger ui_util:INFO Binding event MainWindow:actionPreviousMarker_trigger ui_util:INFO Binding event MainWindow:actionNextMarker_trigger ui_util:INFO Binding event MainWindow:actionFilesShowAll_trigger ui_util:INFO Binding event MainWindow:actionFilesShowVideo_trigger ui_util:INFO Binding event MainWindow:actionFilesShowAudio_trigger ui_util:INFO Binding event MainWindow:actionFilesShowImage_trigger ui_util:INFO Binding event MainWindow:actionTransitionsShowAll_trigger ui_util:INFO Binding event MainWindow:actionTransitionsShowCommon_trigger ui_util:INFO Binding event MainWindow:actionTimelineZoomIn_trigger ui_util:INFO Binding event MainWindow:actionTimelineZoomOut_trigger ui_util:INFO Binding event MainWindow:actionTitle_trigger ui_util:INFO Binding event MainWindow:actionAnimatedTitle_trigger ui_util:INFO Binding event MainWindow:actionFullscreen_trigger ui_util:INFO Binding event MainWindow:actionAbout_trigger ui_util:INFO Binding event MainWindow:actionThumbnailView_trigger ui_util:INFO Binding event MainWindow:actionDetailsView_trigger ui_util:INFO Binding event MainWindow:actionReportBug_trigger ui_util:INFO Binding event MainWindow:actionAskQuestion_trigger ui_util:INFO Binding event MainWindow:actionTranslate_trigger ui_util:WARNING Icon theme stock_person not found. Will use backup icon. ui_util:INFO Binding event MainWindow:actionDonate_trigger ui_util:INFO Binding event MainWindow:actionHelpContents_trigger ui_util:INFO Binding event MainWindow:actionSimple_View_trigger ui_util:INFO Binding event MainWindow:actionAdvanced_View_trigger ui_util:INFO Binding event MainWindow:actionFreeze_View_trigger ui_util:WARNING Icon theme locked not found. Will use backup icon. ui_util:INFO Binding event MainWindow:actionUn_Freeze_View_trigger ui_util:WARNING Icon theme locked not found. Will use backup icon. ui_util:INFO Binding event MainWindow:actionShow_All_trigger ui_util:INFO Binding event MainWindow:actionProfile_trigger ui_util:INFO Binding event MainWindow:actionAdd_to_Timeline_trigger ui_util:INFO Binding event MainWindow:actionPreview_File_trigger ui_util:INFO Binding event MainWindow:actionRemove_from_Project_trigger ui_util:INFO Binding event MainWindow:actionFile_Properties_trigger ui_util:INFO Binding event MainWindow:actionRemoveTrack_trigger ui_util:INFO Binding event MainWindow:actionRemoveMarker_trigger ui_util:INFO Binding event MainWindow:actionAddTrackAbove_trigger ui_util:INFO Binding event MainWindow:actionAddTrackBelow_trigger ui_util:INFO Binding event MainWindow:actionRemoveEffect_trigger ui_util:INFO Binding event MainWindow:actionSplitClip_trigger ui_util:INFO Binding event MainWindow:actionProperties_trigger ui_util:INFO Binding event MainWindow:actionRenameTrack_trigger ui_util:INFO Binding event MainWindow:actionUpdate_trigger ui_util:INFO Binding event MainWindow:actionTutorial_trigger ui_util:INFO Binding event MainWindow:actionAnimation_trigger ui_util:INFO Binding event MainWindow:actionLockTrack_trigger ui_util:INFO Binding event MainWindow:actionUnlockTrack_trigger ui_util:INFO Binding event MainWindow:actionEditTitle_trigger ui_util:INFO Binding event MainWindow:actionDuplicateTitle_trigger ui_util:INFO Binding event MainWindow:actionClearHistory_trigger files_listview:INFO currentChanged files_listview:INFO updateSelection files_model:INFO updating files model. transition_model:INFO updating transitions model. effects_model:INFO updating effects model. effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video effects_model:INFO category: Video properties_model:INFO updating clip properties model. transition_model:INFO updating transitions model. version:INFO Found current version: {"openshot_version": "2.5.1"} files_model:INFO updating files model. main_window:INFO InitCacheSettings main_window:INFO cache-mode: CacheMemory main_window:INFO cache-limit-mb: 250 main_window:INFO Creating CacheMemory object with 262144000 byte limit preview_thread:INFO QThread Start Method Invoked preview_thread:INFO initPlayer main_window:ERROR Unhandled crash detected... will attempt to recover backup project: /home/mickeydog/.openshot_qt/backup main_window:INFO updateStatusChanged app:INFO Process command-line arguments: ['/usr/bin/openshot-qt'] main_window:INFO recover_backup project_data:INFO Setting default profile to HD 720p 30 fps preview_thread:INFO refreshFrame preview_thread:INFO self.player.Position(): 1 timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetTrackLabel('Track %s'); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().LoadJson({"type": "load", "key": "", "value": {"id": "T0", "fps": {"num": 30, "den": 1}, "width": 1280, "height": 720, "sample_rate": 44100, "channels": 2, "channel_layout": 3, "settings": {}, "clips": [], "effects": [], "export_path": "", "import_path": "", "files": [], "duration": 300, "scale": 15, "tick_pixels": 100, "playhead_position": 0, "profile": "HD 720p 30 fps", "layers": [{"id": "L0", "label": "", "number": 0, "y": 0, "lock": false}, {"id": "L1", "label": "", "number": 1, "y": 0, "lock": false}, {"id": "L2", "label": "", "number": 2, "y": 0, "lock": false}, {"id": "L3", "label": "", "number": 3, "y": 0, "lock": false}, {"id": "L4", "label": "", "number": 4, "y": 0, "lock": false}], "markers": [], "progress": [], "history": {"undo": [], "redo": []}, "version": {"openshot-qt": "0.0.0", "libopenshot": "0.0.0"}}, "partial": false, "old_values": null}); main_window:INFO updateStatusChanged timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetSnappingMode(1); main_window:INFO foundCurrentVersion: Found the latest version: 2.5.1 timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().MovePlayheadToFrame(1); preview_thread:INFO onModeChanged timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetTrackLabel('Track %s'); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().LoadJson({"type": "load", "key": "", "value": {"id": "T0", "fps": {"num": 30, "den": 1}, "width": 1280, "height": 720, "sample_rate": 44100, "channels": 2, "channel_layout": 3, "settings": {}, "clips": [], "effects": [], "export_path": "", "import_path": "", "files": [], "duration": 300, "scale": 15, "tick_pixels": 100, "playhead_position": 0, "profile": "HD 720p 30 fps", "layers": [{"id": "L0", "label": "", "number": 0, "y": 0, "lock": false}, {"id": "L1", "label": "", "number": 1, "y": 0, "lock": false}, {"id": "L2", "label": "", "number": 2, "y": 0, "lock": false}, {"id": "L3", "label": "", "number": 3, "y": 0, "lock": false}, {"id": "L4", "label": "", "number": 4, "y": 0, "lock": false}], "markers": [], "progress": [], "history": {"undo": [], "redo": []}, "version": {"openshot-qt": "0.0.0", "libopenshot": "0.0.0"}}, "partial": false, "old_values": null}); properties_model:INFO Update item: properties_model:INFO updating clip properties model. preview_thread:INFO refreshFrame preview_thread:INFO self.player.Position(): 1 timeline:INFO Adjusting max size of preview image: PyQt5.QtCore.QRect(217, 0, 380, 214) timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetSnappingMode(1); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().MovePlayheadToFrame(1); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetTrackLabel('Track %s'); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().LoadJson({"type": "load", "key": "", "value": {"id": "T0", "fps": {"num": 30, "den": 1}, "width": 1280, "height": 720, "sample_rate": 44100, "channels": 2, "channel_layout": 3, "settings": {}, "clips": [], "effects": [], "export_path": "", "import_path": "", "files": [], "duration": 300, "scale": 15, "tick_pixels": 100, "playhead_position": 0, "profile": "HD 720p 30 fps", "layers": [{"id": "L0", "label": "", "number": 0, "y": 0, "lock": false}, {"id": "L1", "label": "", "number": 1, "y": 0, "lock": false}, {"id": "L2", "label": "", "number": 2, "y": 0, "lock": false}, {"id": "L3", "label": "", "number": 3, "y": 0, "lock": false}, {"id": "L4", "label": "", "number": 4, "y": 0, "lock": false}], "markers": [], "progress": [], "history": {"undo": [], "redo": []}, "version": {"openshot-qt": "0.0.0", "libopenshot": "0.0.0"}}, "partial": false, "old_values": null}); timeline_webview:ERROR TimelineWebView::eval_js() called before document ready event. Script queued: $('body').scope().SetSnappingMode(1); timeline_webview:INFO Qt Found! timeline_webview:INFO $scope.Qt = true; timeline_webview:INFO UpdateLayerIndex timeline_webview:INFO UpdateLayerIndex main_window:INFO Clear all thumbnails: /home/mickeydog/.openshot_qt/thumbnail main_window:INFO Clear all animations: /home/mickeydog/.openshot_qt/blender main_window:INFO Clear all assets: /home/mickeydog/.openshot_qt/assets main_window:INFO Clear all backups: /home/mickeydog/.openshot_qt/backup project_data:INFO Setting default profile to HD 720p 30 fps project_data:INFO 2.4.3 project_data:INFO 0.2.2 preview_thread:INFO refreshFrame preview_thread:INFO self.player.Position(): 1 timeline_webview:INFO UpdateLayerIndex project_data:INFO _set key: ['scale'] values: 10 add: False partial: False remove: False timeline_webview:INFO SortItems timeline_webview:INFO UpdateLayerIndex main_window:INFO updateStatusChanged main_window:INFO updateStatusChanged main_window:INFO updateStatusChanged files_model:INFO updating files model. main_window:INFO Loaded project /home/mickeydog/Documents/Instagram/1-KaypoKeepr/ProductTesting-Melt/product-testing-melt.osp properties_model:INFO Update item: properties_model:INFO updating clip properties model. timeline_webview:INFO redraw_audio_onTimeout ui_util:INFO Initializing UI for Dialog export:INFO (4, 'Mono (1 Channel)') export:INFO (3, 'Stereo (2 Channel)') export:INFO (7, 'Surround (3 Channel)') export:INFO (1551, 'Surround (5.1 Channel)') export:INFO (1599, 'Surround (7.1 Channel)') export:INFO /usr/lib/python3/dist-packages/openshot_qt/profiles/square_pal_wide export:INFO AVI (h.264) export:INFO updateChannels export:INFO /usr/lib/python3/dist-packages/openshot_qt/profiles/square_pal_wide export:INFO /home/mickeydog/.openshot_qt/profiles/Square1080.txt export:INFO /home/mickeydog/.openshot_qt/profiles/Square1080.txt export:INFO Low export:INFO None export:INFO MP4 (h.264) export:INFO None export:INFO /usr/lib/python3/dist-packages/openshot_qt/profiles/square_pal_wide export:INFO /usr/lib/python3/dist-packages/openshot_qt/profiles/square_pal_wide export:INFO /home/mickeydog/.openshot_qt/profiles/Square1080.txt export:INFO /home/mickeydog/.openshot_qt/profiles/Square1080.txt export:INFO Low export:INFO High export:INFO Valid framerate detected, sending to libopenshot: 0.029970029970029972 export:INFO /home/mickeydog/Documents/Instagram/1-KaypoKeepr/ProductTesting-Melt/Product testing melt.mp4 logger:ERROR /usr/lib/python3/dist-packages/openshot_qt/windows/main_window.py:2226: PyGIWarning: Unity was imported without specifying a version first. Use gi.require_version('Unity', '7.0') before import to ensure that the right version gets loaded. logger:ERROR from gi.repository import Unity

sc0nway commented 3 years ago

If you want a frame rate of 29.97 then you need to change the frame_rate_num to 30000. Otherwise, OpenShot is trying to figure out how to calculate a frame rate of 0.02997 using your profile.

allelopath commented 3 years ago

Ok, my mistake, but there is no data validation of profiles? A min and max frame rate should be decided (where 0.02997 would not be valid) and then checked. If the value is outside of this range, then an error should be flagged.

sc0nway commented 3 years ago

I don't believe that there is any data validation, but perhaps complete a feature request to let the developers know about the issue?

ferdnyc commented 3 years ago

Even if there were validation, that profile is valid data. It's terrible data, but it's valid. Though I suppose we could add a sanity-check and an "are you sure?" type prompt, if the values are really far outside what would seem to make sense.

ferdnyc commented 3 years ago

(When I think of "invalid data", I think of something like:

description=Square_1080x1080_30_fps
frame_rate_num=marshmallow
frame_rate_den=1001
width=1080
height=1080
progressive=1
sample_aspect_num=1
sample_aspect_den=1
display_aspect_num=16
display_aspect_den=9
colorspace=709

That's invalid data. :laughing:

ferdnyc commented 3 years ago

Anyway, @allelopath , since the feature request is tracked separately, presumably your original issue here been solved, yes? Can this be closed?

ferdnyc commented 3 years ago

The funny thing is, we do have sanity-checking in the export code — you can see the "Valid framerate detected, sending to libopenshot:" message in the log — but it only sanity-checks that the frame rate is less than 300fps. I suppose it couldn't hurt to have a lower bound on that, as well.

stale[bot] commented 3 years ago

Thank you so much for submitting an issue to help improve OpenShot Video Editor. We are sorry about this, but this particular issue has gone unnoticed for quite some time. To help keep the OpenShot GitHub Issue Tracker organized and focused, we must ensure that every issue is correctly labelled and triaged, to get the proper attention.

This issue will be closed, as it meets the following criteria:

We'd like to ask you to help us out and determine whether this issue should be reopened.

Thanks again for your help!