Giter Site home page Giter Site logo

kitone / subtitleeditor Goto Github PK

View Code? Open in Web Editor NEW
99.0 99.0 15.0 3.29 MB

Subtitle Editor is a GTK+3 tool to create or edit subtitles for GNU/Linux/*BSD.

Home Page: http://kitone.github.io/subtitleeditor/

License: GNU General Public License v3.0

Makefile 4.19% M4 3.45% Shell 1.42% C++ 89.18% Perl 1.31% C 0.34% HTML 0.12%
cplusplus gstreamer gtk3 subtitle subtitles

subtitleeditor's People

Contributors

felagund avatar hugok79 avatar innir avatar kitone avatar nataraj-hates-ms-for-stealing-github avatar yzrsng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

subtitleeditor's Issues

Context menu for subtitles

Right-clicking a subtitle in the bottom pane should open a context menu with the essential functions to be performed on a subtitle:

  • insert before
  • insert after
  • delete
  • split
  • duplicate
  • combine (if multiple consecutive subtitles are selected)
  • jump to start position in video (new)

Wayland support

Hello,

Under gnome wayland the video window does not embed like under X. I believe this is because under wayland there needs to be a different xWindowId? Some research shows this might work to get it; gdk_wayland_window_get_wl_surface (window));.

gulong GstPlayer::get_xwindow_id() {

Thanks for this neat program btw!

e: this is the 'error' I get running it btw;
(subtitleeditor:49896): Gdk-WARNING **: 21:35:16.439: ../../../../../gdk/x11/gdkwindow-x11.c:5653 drawable is not a native X11 window

undeclared dependency?

I wasn't able to successfully run autogen.sh until I had installed libtool. I'm running Fedora 32.

Before I installed it I had lots of errors like this:

plugins/subtitleformats/subtitleeditorproject/Makefile.am:4: error: Libtool library used but 'LIBTOOL' is undefined
plugins/subtitleformats/subtitleeditorproject/Makefile.am:4:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
plugins/subtitleformats/subtitleeditorproject/Makefile.am:4:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
plugins/subtitleformats/subtitleeditorproject/Makefile.am:4:   If 'LT_INIT' is in 'configure.ac', make sure
plugins/subtitleformats/subtitleeditorproject/Makefile.am:4:   its definition is in aclocal's search path.

[proposed label: question] keyboard shortcut to add/remove 100 milliseconds?

i went through all the shortcuts in options > configure keyboard shortcuts ; but no such option
the only way i found to add/remove 100 milliseconds in by clicking TImings>Add/remove 100 milliseconds>To start/end

it is very tedious to go every time and click it manually,
another way is manually typing the timings for each subtitle end/start , also very tedious.

is there a button or trick for this purpose, like in gnome-subtitles?

if no ,please create one?

Fix build with -Wformat-security and -Werror flags (copied from gna.org/bugs/?24958)

Hi kitone,

I still carry (a now slightly modified) patch to be able to compile on Debian.
To not loose track of your effort I opened this bug report now.
I post the newest comment here, the whole bug available here: https://web.archive.org/web/20170205222737/http://gna.org/bugs/?24958

You could probably create a separate branch to work on this issue this way others could help easier.

Best,
Philip

Wed 14 Sep 2016 06:53:20 PM UTC, comment #8:

Hi,
The problem is that the flag option -Wformat-security was added by the distrib.
SE build with this options (see configure.ac line 272) :

CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wconversion"

This end with something like this with the override :

CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wconversion -Wformat-security"

This break GST_ELEMENT_WARNING (and others), we can force to disable the flag with this around the code :

...
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-security"

se_debug_message(SE_DEBUG_VIDEO_PLAYER, "failed to gen_audio_element '%s'", ex.what());
GST_ELEMENT_WARNING(m_pipeline->gobj(), RESOURCE, NOT_FOUND, (ex.what()), (NULL));

#pragma GCC diagnostic pop
...

I have start to work on a patch with the flags -Wformat-security and -Werror by default, but this is a lot of work to make the compiler silent... (see the patch)

Sadly, it's hard to find time to work on it this days.

Best regards,
kitone

libxml++-3.0

Build with libxml++-3.0 fails:

isocodes.cc: In function 'bool isocodes::iso_codes_load_file(const Glib::ustring&, const Glib::ustring&, std::map<Glib::ustring, Glib::ustring>&)':
isocodes.cc:51:53: error: conversion from 'xmlpp::Node::const_NodeList {aka std::__cxx11::list<const xmlpp::Node*>}' to non-scalar type 'xmlpp::Node::NodeList {aka std::__cxx11::listxmlpp::Node*}' requested
xmlpp::Node::NodeList entries =
root->get_children(Glib::ustring::compose("%1_entry", iso_id));

After removing iso-codes from build depends, the build fails again with
similar error:

patternmanager.cc: In member function 'void PatternManager::load_pattern(const Glib::ustring&, const Glib::ustring&)':
patternmanager.cc:127:70: error: conversion from 'xmlpp::Node::const_NodeList {aka std::__cxx11::list<const xmlpp::Node*>}' to non-scalar type 'xmlpp::Node::NodeList {aka std::__cxx11::listxmlpp::Node*}' requested
xmlpp::Node::NodeList xml_pattern_list = xml_patterns->get_children("pattern");

patternmanager.cc: In member function 'Pattern* PatternManager::read_pattern(const xmlpp::Element_)':
patternmanager.cc:178:65: error: conversion from 'xmlpp::Node::const_NodeList {aka std::__cxx11::list}' to non-scalar type 'xmlpp::Node::NodeList {aka std::__cxx11::listxmlpp::Node*}' requested
xmlpp::Node::NodeList xml_rule_list = xml_pattern->get_children("rule");

patternmanager.cc:196:69: error: conversion from 'xmlpp::Node::const_NodeList {aka std::__cxx11::list<const xmlpp::Node*>}' to non-scalar type 'xmlpp::Node::NodeList {aka std::__cxx11::listxmlpp::Node*}' requested
xmlpp::Node::NodeList xml_previous_match = xml_rule->get_children("previousmatch");

SIGSEGV on spell checking problems

I'm trying to make a ~helloworld srt with non-english words.
But i'm receiving segfault every time i'm typing any russian/cyrillic letter into text column. English letters are ok.

Backtrace

...
Reading symbols from subtitleeditor...done.
(gdb) run
Starting program: /usr/bin/subtitleeditor 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe7395700 (LWP 15924)]
[New Thread 0x7fffe6b94700 (LWP 15925)]
[New Thread 0x7fffcf1d2700 (LWP 15928)]
[New Thread 0x7fffce9d1700 (LWP 15929)]
[Thread 0x7fffce9d1700 (LWP 15929) exited]

Thread 1 "subtitleeditor" received signal SIGSEGV, Segmentation fault.
0x00007fffcd512bd6 in hspell_check_word () from /usr/lib/libhspell.so.0
(gdb) bt
#0  0x00007fffcd512bd6 in hspell_check_word () at /usr/lib/libhspell.so.0
#1  0x00007fffcd71ac86 in  () at /usr/lib/enchant/enchant_hspell.so
#2  0x00007ffff6f45377 in SEEnchantDict::check(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (utf8="sadв", this=0x5555561e1600) at spellchecker.cc:101
#3  0x00007ffff6f45377 in SpellChecker::check(Glib::ustring const&) (this=<optimized out>, word=...) at spellchecker.cc:294
#4  0x00007ffff6f7b77b in AutomaticSpellChecker::check_word(Gtk::TextIter, Gtk::TextIter) (this=this@entry=0x555556194180, start=..., end=...) at gui/automaticspellchecker.cc:247
#5  0x00007ffff6f7bdfc in AutomaticSpellChecker::check_range(Gtk::TextIter, Gtk::TextIter, bool) (this=this@entry=0x555556194180, start=..., end=..., force_all=force_all@entry=false) at gui/automaticspellchecker.cc:339
#6  0x00007ffff6f7c0b1 in AutomaticSpellChecker::on_insert_text_after(Gtk::TextIter const&, Glib::ustring const&, int) (this=0x555556194180, pos=...) at gui/automaticspellchecker.cc:165
#7  0x00007ffff6ac1658 in  () at /usr/lib/libgtkmm-3.0.so.1
#8  0x00007ffff4d736f5 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#9  0x00007ffff4d86eff in  () at /usr/lib/libgobject-2.0.so.0
#10 0x00007ffff4d8b696 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff4d8c920 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff5a4cd7a in gtk_text_buffer_insert_interactive () at /usr/lib/libgtk-3.so.0
#13 0x00007ffff5a4ce45 in gtk_text_buffer_insert_interactive_at_cursor () at /usr/lib/libgtk-3.so.0
#14 0x00007ffff5a7923f in  () at /usr/lib/libgtk-3.so.0
#15 0x00007ffff4d726f5 in g_cclosure_marshal_VOID__STRINGv () at /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff4d8bc01 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#17 0x00007ffff4d8c62c in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff4d726f5 in g_cclosure_marshal_VOID__STRINGv () at /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff4d8bc01 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff4d8c62c in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
#21 0x00007ffff595cf00 in  () at /usr/lib/libgtk-3.so.0
#22 0x00007ffff595dedb in  () at /usr/lib/libgtk-3.so.0
#23 0x00007ffff595fff4 in  () at /usr/lib/libgtk-3.so.0
#24 0x00007ffff5a7a3ca in  () at /usr/lib/libgtk-3.so.0
#25 0x00007ffff6ae6068 in Gtk::Widget::on_key_press_event(_GdkEventKey*) () at /usr/lib/libgtkmm-3.0.so.1
#26 0x00007ffff6ae8357 in Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) () at /usr/lib/libgtkmm-3.0.so.1
#27 0x00007ffff5981488 in  () at /usr/lib/libgtk-3.so.0
#28 0x00007ffff4d8b2c2 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#29 0x00007ffff4d8c920 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#30 0x00007ffff5ad49e5 in  () at /usr/lib/libgtk-3.so.0
#31 0x00007ffff5af6214 in gtk_window_propagate_key_event () at /usr/lib/libgtk-3.so.0
#32 0x00007ffff5af9e5c in  () at /usr/lib/libgtk-3.so.0
#33 0x00007ffff6ae6068 in Gtk::Widget::on_key_press_event(_GdkEventKey*) () at /usr/lib/libgtkmm-3.0.so.1
#34 0x00007ffff6ae8357 in Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) () at /usr/lib/libgtkmm-3.0.so.1
#35 0x00007ffff5981488 in  () at /usr/lib/libgtk-3.so.0
#36 0x00007ffff4d8bc01 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#37 0x00007ffff4d8c920 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#38 0x00007ffff5ad49e5 in  () at /usr/lib/libgtk-3.so.0
#39 0x00007ffff597e2c2 in  () at /usr/lib/libgtk-3.so.0
#40 0x00007ffff5980443 in gtk_main_do_event () at /usr/lib/libgtk-3.so.0
#41 0x00007ffff54889f6 in  () at /usr/lib/libgdk-3.so.0
#42 0x00007ffff54bb375 in  () at /usr/lib/libgdk-3.so.0
#43 0x00007ffff4aa3270 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#44 0x00007ffff4aa4f69 in  () at /usr/lib/libglib-2.0.so.0
#45 0x00007ffff4aa5f42 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#46 0x00007ffff597f50f in gtk_main () at /usr/lib/libgtk-3.so.0
#47 0x00007ffff6a801a2 in Gtk::Main::run(Gtk::Window&) () at /usr/lib/libgtkmm-3.0.so.1
#48 0x000055555557a239 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cc:107

Look at line entry 2:

#2  0x00007ffff6f45377 in SEEnchantDict::check(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (utf8="sadв", this=0x5555561e1600) at spellchecker.cc:101

I've successfully typed "sad", and then switched language to russian, and typed russian letter "в". And it crashes. Don't know why. I don't have any issues with spellchecking in other programs.
Also, i don't have any programs, that depends on enchant or hspell.

Versions:

  • fresh archlinux
  • subtitleeditor compiled from today git with -g
  • enchant 2.1.2-2
  • hspell 1.3-1

Steps to reproduce:

  1. Run subtitleeditor
  2. File -> Create
  3. Press insert
  4. Double click in "text" column
  5. Type russian letters.

Video stops responding

To reproduce:

  • Load a video with subtitles.
  • Navigate back and forth (e.g. start playing a 90-minute video, then skip to ~13 minutes into it)

Expected result:

It just works, like with any video player.

Actual result:

Occasionally and for no apparent reason, video does not play: the play button change from Play to Pause, but the time indicator remains frozen and the video does not advance. I can move the slider so see individual frames, but the video does not play. There does not seem to be any way to recover from this, other than by restarting the app (and even that does not always work).

textcorrection plugin doesn't remove multiline sounds

The textcorrection plugin has the options

Sound in brackets
Sound in parantheses

to remove hearing impaired patterns. Both fail for multi-line sound like this:

(eerie sounds coming from afar
it is getting louder and louder)

I have tested with version 0.54.0-2 from Ubuntu.

PS According to my spell checker it should be parentheses.

Position and identify waveform zoom sliders more intuitively

The waveforms UI currently has two vertical sliders on the right. Here are some usability suggestions:

  • They would benefit from at least having a GtkTooltip to tell what each does when the mouse is over them
  • Perhaps a set of zoom icons (the usual +/- on each end) too.
  • The 1st (left) slider controls horizontal zoom... so it should be packed horizontally below the waveform, rather than on the right.

feature request: go to subtitle closest to video player cursor

The menu item Video > Seek to Selection sets the video player time from the selected subtitle.

I would much appreciate the reverse feature: go to the closest subtitle to the video player time. Maybe as a menu item in Video > Timing From Player > Select Subtitle.

Thank you for your amazing software.

Spotting subtitles on key up and key down

I've been looking for a tool that is able to set the line start when a key is pressed down and is the end of the line is set when the key is released.

I did talk with other people that work on subtitles and they found this idea very good because it would help to do a good fast "first pass".

In the "Configure Keyboard Shortcuts" screen i could set "Set Subtitle Start" and "Set Subtitle End And Go Next" to two neighboor keys and it worked very well.
But it could work better if all of it could be done with only one key.
The key down event could trigger "Set Subtitle Start" and the key up event would trigger "Set Subtitle End And Go Next". It would be perfect.

An alternate implementation could provide the same idea but clicking a button on the video panel.
But as I see the interface is pretty minimal and I would prefer use a keyboard shortcut.

Disclosure: I have filed a simmilar issue on Aegisub repo. I'm filing it here because I really don't know which project is still active and which is "abandoned".

Simplify the "duration" timecode to be human-readable

Accurate timecodes make sense for in/out points, but not really for duration, which is too hard to parse quickly.

I posit that nobody does individual subtitles that are more than 60 seconds long (or even 10 seconds, most of the time). Therefore showing this in timecode form (such as "0:00:03.953") in the "Duration" column (and on the tooltip when dragging the in/out point) makes no sense.

It would be much easier to parse (and more elegant) if it was showing "3.953 secs" (or "3.953 seconds" if you want to be exhaustive) instead. If you're worried about 9 vs 10 seconds, right-align the column's text in the gtk listview. In the case of the waveform interactive tooltip, you could prefix that with "Duration:\n"

Compiling - enchant dependency not met when enchant-2 is installed

Trying to compile last version ( 8a21c6c from 2018-06-25 ) on Manjaro distro (kernel 4.15.18-3-MANJARO), I get the following error

checking for GTKMM... yes
checking for ENCHANT... no
configure: error: Package requirements (enchant >= 1.4.0) were not met:

Package 'enchant', required by 'virtual:world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ENCHANT_CFLAGS
and ENCHANT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

I don't have *-dev packages to install as in debian based distros, here are the packages I have available:

$ pacman -Ss enchant
extra/enchant 2.2.3-1 [installed]
    A wrapper library for generic spell checking
extra/php-enchant 7.2.8-1
    enchant module for PHP
community/python-gtkspellcheck 4.0.5-4
    Spell-checking library written in Python for Gtk based on Enchant
community/python-pyenchant 2.0.0-2
    PyEnchant is a spellchecking library for Python3 based on the Enchant library
community/python2-gtkspellcheck 4.0.5-4
    Spell-checking library written in Python for Gtk based on Enchant
community/python2-pyenchant 2.0.0-2 [installed]
    PyEnchant is a spellchecking library for Python2 based on the Enchant library

So pkg-config would be looking for /usr/lib/pkgconfig/enchant.pc when what I have is /usr/lib/pkgconfig/enchant-2.pc .

I thought of making symlinks as a workaround, but it sounds a bit messy to me as there might be incompatibility between the major version numbers (I did not check).

Would it be possible to fix the dependency checking itself ? I'm more than rusty in C/CPP programming and don't know much about the autotools. Maybe something like manisandro/qtspell#3 would help ( commit 38df124 )

Fix building with --disable-nls

We are applying this patch in Gentoo for years without issues

Thanks

From 0f8700f022c9917336919b35a93883a660144516 Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <[email protected]>
Date: Mon, 17 Oct 2016 00:07:59 +0200
Subject: [PATCH] Fix compilation with --disable-nls

---
 src/i18n.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/i18n.h b/src/i18n.h
index c8134a7..efce469 100644
--- a/src/i18n.h
+++ b/src/i18n.h
@@ -31,6 +31,17 @@
 	#include <libintl.h>
 	#include <glib/gi18n.h>
 #else /* NLS is disabled */
+	// In certain environments, some standard headers like <iomanip>
+	// and <locale> include libintl.h. If libintl.h is included after
+	// gettext macros below are defined, it causes a syntax error
+	// at the declaration of the gettext function in libintl.h.
+	//
+	// Fix this by including such a header before defining the macro.
+	//
+	// Note that libintl.h cannot be included directly since in the
+	// ENABLE_NLS=0 case it cannot be assumed that gettext is installed.
+	#include <locale>
+
 	#define _(String) (String)
 	#define N_(String) (String)
 	#define textdomain(String) (String)
-- 
2.10.0

Unable to increase the "tempo" of subtitles

While adapting translations (sound dubbing and subtitles) made for an old DVD to a newer 3D TV rip I had to speed up the sound by 7 seconds throughout the movie. This made the dubbed sound fit well. However, I don't see the option to do the same with the subtitles. I need to shift all subtitles by a variable amount of time that would uniformly increase from 0 to 7,35 seconds towards the end.

Could you add such function if t is not already hiddden there?

Animate / separate the automated waveform scroll upon subtitle insertion?

Can't quite put my finger on it, but there's "something" that feels odd and disorienting when I'm inserting subtitles with the Insert key and the waveform scrolls at the exact same time, I have a hard time spotting where I was and where I am now, especially in relation to the playhead.

I'm thinking it might help if the timeline scrolls with a quick (100ms?) smooth scroll animation and THEN creates the subtitle's region "rectangle", so that you can see it appearing in a single independent "movement" rather than confounding it with the motion of the waveform?

Could not recognize the .srt with just UTF-8 Unicode text

file 2.srt
2.srt: UTF-8 Unicode text
Is not recognized. Screenshot Download

file 1.srt
1.srt: UTF-8 Unicode (with BOM) text, with CRLF, LF line terminators
Is recognized

file little.srt
little.srt: UTF-8 Unicode (with BOM) text, with CRLF line terminators
Recognized

file new.srt
new.srt: UTF-8 Unicode (with BOM) text, with CRLF line terminators
2.srt rewritten as new.srt with another subtitle editor

Nothing major, prefer this program over others available.

Video player in the same window.

Hello, when opening a video with "subtitleeditor" it does it in a new window, is it possible to attach the video player in the same window as seen in the photo?

Program in Fedora 32.
Captura de pantalla de 2020-06-24 15-17-03

Desired example.
unnamed

I hope some answer.

Configurable mouse playback control behavior, customizeable clicks bindings, and ability to shift/move subtitles using the waveforms interface

I have recently discovered the waveforms feature in the app and it is a little revolution. This makes everything so much easier, it's fantastic! It should be turned on by default in the UI and suggest generating the waveforms (#30) to highlight how essential this feature is.

However, there is no way to use it to shift or reorder subtitles, and I would like to be able to use some configurable mouse+keyboard combo to do this, because it's a bit annoying when there are long gaps in the dialog and you have to adjust both the in and out points of the new subtitle being added (short of having a "insert subtitle at playhead position" feature).

Furthermore, besides the simple "shifting" usecase, there's the "reordering" usecase. Imagine someone hands me a preliminary edit of a video to be subtitled, and then later on swaps the ordering of some scenes... I would want a way to be able to move subtitles around efficiently, ideally with a multiple selection of items and dragging them to "insert" them somewhere else (and have the other subtitles "ripple" to create space, then select the other ones and move them/realign them.

I also find myself fighting a bit with the default mouse behavior, which is:

  • Left click = subtitle inpoint
  • Middle click = move playback cursor / playhead (but it doesn't allow scrubbing, see #29)
  • Right click = subtitle outpoint

...which causes me to constantly mess up my inpoints because I intuitively left-click to move the playhead (it didn't even occur to me until recently that it could be the middle mouse button actually). I kinda understand the logic between the playhead button being centered between the left and right buttons, but it still feels unnatural coming from a video editing background.

I know this is a bit of a melting-pot of multiple issues, but I'm not sure if it makes sense to file half a dozen tickets for that when they behavior all kinda ties together...

Jump to start of subtitle in video

There should be a quick and easy way (i.e. hotkey, context menu) to jump to the start position of the currently selected subtitle in the video.

error message on make command libsubtitleeditor_la-color.lo failed

Hello team,
I am getting this error message when running make command but I do not know what it means

Makefile:971: recipe for target 'libsubtitleeditor_la-color.lo' failed
make[2]: *** [libsubtitleeditor_la-color.lo] Error 1
make[2]: Leaving directory '/home/gonzalo/Downloads/bin/subtitleeditor-master/src'
Makefile:467: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/gonzalo/Downloads/bin/subtitleeditor-master'
Makefile:398: recipe for target 'all' failed
make: *** [all] Error 2
gonzalo@linux-d3i9:~/Downloads/bin/subtitleeditor-master>

Please let me know if any solution is available,
Thank you,

Gonzalo,

Question about translation workflow

What's the intended workflow when using the Translation view to translate subtitles?
I've only recently noticed the Save Translation menu option, but that opens the translated file immediately.
If I'm just going about a translation, what is a convenient way to save my progress and continue?

Meanwhile, I've lost some work by just saving the file and not the translation. Is there anywhere I could recover it from?

Thanks again for making the software, still using it happily!

Timecodes shown on waveform while setting in/out points for a subtitle could be clearer

There are two timecodes being shown, in/out point and duration. It would be nice to make it a bit clearer which is which, both as a learning mechanism for new users and as a quick visual cue otherwise.

The solution doesn't have to be overly complicated, thanks to the power of unicode, you could just prefix/append ⇤ ⇥ arrows (or the word "In-point:" / "Start:" or "Out-point:" / "End :" to the strings... for example

  • ⇤ 0:06:30.382 (for the in-point)
  • 0:06:34.335 ⇥ (for the out-point)
  • Duration:\n 3.95 secs (as per #32)

Subtitle Editor adds bookmark with empty href to recently used files list

Subtitle Editor seems to have added the following entry to my ~/.local/share/recently-used.xbel file:

  <bookmark href="" added="2021-11-26T18:30:28.481200Z" modified="2021-11-26T18:30:28.481205Z" visited="2021-11-26T18:30:28.481201Z">
    <desc></desc>
    <info>
      <metadata owner="http://freedesktop.org">
        <mime:mime-type type=""/>
        <bookmark:groups>
          <bookmark:group>subtitleeditor-waveform</bookmark:group>
        </bookmark:groups>
        <bookmark:applications>
          <bookmark:application name="subtitleeditor" exec="&apos;subtitleeditor&apos;" modified="2021-11-26T18:30:28.481203Z" count="1"/>
        </bookmark:applications>
      </metadata>
    </info>
  </bookmark>

The empty href attribute doesn’t seem very useful, and can confuse other applications trying to parse the file. (Technically, the desktop-bookmark-spec says the href should be a URI, and I don’t think the empty string is a valid URI.)

Steps to reproduce:

  • open Subtitle Editor
  • create a new subtitle file (Ctrl+N)
  • open a video (Ctrl+Shift+M and then select a video file)
  • generate waveform from video

The bookmark is added to the file as soon as you select the “generate waveform from video” step; you don’t actually need to save the waveform to a file in the following dialog.

SIGSEGV in Waveform::get_duration() when no waveform is loaded

Steps to reproduce:

  • File -> New

  • Edit -> "Insert After" so there is at least one subtitle.

  • Video -> Open.

  • Load a video file; which one doesn't matter.

  • View -> Waveform. (But don't load an actual waveform; leave it blank.)

  • Press play on the video file.

  • Click repeatedly on the blank waveform pane.

  • Get a segfault. (Sometimes it only takes a few seconds, sometimes it takes longer. Usually 30 mouse clicks is enough.)

This appears to occur because of the waveform duration calculation whenever the waveform is clicked.

Note that the waveform must be blank for this to occur; I have not observed a segfault when a waveform is loaded.

Attached are full stacktraces and Valgrind output.

Reproducible in subtitleeditor version 0.54.0-2 (Ubuntu 18.04) and latest git revision (4c215f4).

valgrind_memcheck.txt

ThreadStacktrace.txt

Adopt standard keyboard shortcuts for video playback

Some keyboard shortcuts have become a de facto standard in video players:

  • Space – Play/Pause
  • Cursor left/right – Seek forward/backward

When not in editing mode, these keys should trigger the functions most people have come to expect, which would make editing a lot quicker.

subtitleeditor does not install correctly through apt on linux mint

Found an issue when trying to load a video through the program, I would get a "gstreamer plugin not found" error. Installed from apt and it appears that the dependencies are not set correctly. I am running Linux Mint 19.1 Cinnamon.

You need to manually install gstreamer1.0-libav, as this is not automatically installed with apt.

hope this helps someone

cheers

Gstreamer+Pulseaudio - video wont play - incompatibility?

I have loaded subtitles, video and waveform. When I start of video playing, it does nothing. Sometimes it works, but most of time not. Sometimes only first frame was played, mostly not. Icon change to "pause" andsubtitles on time is shown, but video is still stopped. When i click to "pause", icon will change to "play" and that is all.

Weird is that it sometimes work, sometimes not. It can change in minutes...

System is fully actualised Arch Linux. Version of subtitleeditor is latest.

Problem is for sure in combination of Gstreamer and PulseAudio. It generate such errors:

pulse pulsesink.c:716:gst_pulsering_stream_overflow_cb: Got overflow

When I stop PulseAudio daemon and use ALSA in subtitleeditor, it works like a charm.

Show interactive placeholder buttons in the video and waveforms area

The video player and waveforms area aren't as welcoming as they could be. They could have a bit of informative text and buttons like this, instead of just leaving the space empty:

|----------------------------------|------------------------------------------------|
| No video file specified.         | No waveforms present. 
| Drag-and-drop one here           | Generate one from the video file
| or browse with the button below. | or load a previously generated one.
|                                  |
|     ( Open video file... )       |  ( Generate waveforms... ) ( Open .wf file... )

Program window is transparent

Using the current version on Ubuntu 17.10 MATE environment. When I open the program, the window, the portion under the menu bar, is all transparent. But what will then happen, if I move the window, it retains what was under the window before I moved it. I hope that makes sense.

I have attached a screenshot to show an example as it is somewhat difficult for me to explain with confidence.
selection_003

Gtk-CRITICAL **: 06:01:23.505: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed

I get the following each time I start subtitleeditor on Debian -

(subtitleeditor:13386): Gtk-CRITICAL **: 06:01:23.505: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed

Package: subtitleeditor
Version: 0.54.0-3
Severity: normal


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.18.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_IN, LC_CTYPE=en_IN (charmap=UTF-8), LANGUAGE=en_IN:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages subtitleeditor depends on:
ii  gstreamer1.0-plugins-base       1.14.4-1
ii  gstreamer1.0-plugins-good       1.14.4-1
ii  gstreamer1.0-x                  1.14.4-1
ii  libatkmm-1.6-1v5                2.24.2-3
ii  libc6                           2.27-8
ii  libcairomm-1.0-1v5              1.12.2-3
ii  libgcc1                         1:8.2.0-9
ii  libglib2.0-0                    2.58.1-2
ii  libglibmm-2.4-1v5               2.58.0-1
ii  libgstreamer-plugins-base1.0-0  1.14.4-1
ii  libgstreamer1.0-0               1.14.4-1
ii  libgstreamermm-1.0-1            1.10.0+dfsg-2
ii  libgtk-3-0                      3.24.1-2
ii  libgtkmm-3.0-1v5                3.22.2-2
ii  libpangomm-1.4-1v5              2.40.1-4
ii  libsigc++-2.0-0v5               2.10.1-1
ii  libstdc++6                      8.2.0-9
ii  libsubtitleeditor0              0.54.0-3

subtitleeditor recommends no packages.

Versions of packages subtitleeditor suggests:
ii  gstreamer1.0-libav  1.15.0.1+git20180723+db823502-2

-- no debconf information

Add info how to install dependencies

I found info on dependencies here. I think it’d be better to have a list of distribution commands.

The following command installs all dependencies on a Debian-like distribution (tested on Ubuntu 17.10)

sudo apt-get -yq install autoconf automake intltool gtkmm-3.0 enchant enchant libenchant-dev libxml++2.6-dev gstreamer1.0

# Note that `sudo apt-get install gtkmm-3.0` installed the following packages, but I think not all are required:
autopoint debhelper dh-autoreconf dh-strip-nondeterminism gtkmm-documentation icu-devtools libarchive-cpio-perl libatk-bridge2.0-dev libatk1.0-dev libatkmm-1.6-dev libatspi2.0-dev libcairo-script-interpreter2 libcairo2-dev libcairomm-1.0-dev libdbus-1-dev libdrm-dev libegl1-mesa-dev libepoxy-dev libfile-stripnondeterminism-perl libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglibmm-2.4-dev libglibmm-2.4-doc libgraphite2-dev libgtk-3-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev libicu-dev libltdl-dev libmail-sendmail-perl libmirclient-dev libmircommon-dev libmircookie-dev libmircookie2 libmircore-dev libpango1.0-dev libpangomm-1.4-dev libpixman-1-dev libprotobuf-dev libsigc++-2.0-dev libsm-dev libsys-hostname-long-perl libtool libwayland-bin libwayland-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxshmfence-dev libxtst-dev libxxf86vm-dev po-debconf wayland-protocols x11proto-composite-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-randr-dev x11proto-record-dev x11proto-render-dev x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev

# Note that `sudo apt-get install gstreamer1.0` installed the following packages, but I think not all are required:
freepats gdal-data gstreamer1.0-alsa gstreamer1.0-clutter-3.0 gstreamer1.0-crystalhd gstreamer1.0-doc gstreamer1.0-espeak gstreamer1.0-libav-dbg gstreamer1.0-omx-bellagio-config gstreamer1.0-omx-generic gstreamer1.0-omx-generic-config gstreamer1.0-packagekit gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-doc gstreamer1.0-pocketsphinx gstreamer1.0-rtsp gstreamer1.0-rtsp-dbg gstreamer1.0-vaapi-doc libaec0 libarmadillo7 libarpack2 libdap25 libdapclient6v5 libde265-0 libepsilon1 libfabric1 libfreexl1 libfyba0 libgdal20 libgeos-3.5.1 libgeos-c1v5 libgeotiff2 libgl2ps1 libglib2.0-doc libgstreamer1.0-0-dbg libgstreamer1.0-dev libgstrtspserver-1.0-0 libhdf4-0-alt libhdf5-100 libhdf5-openmpi-100 libhwloc-plugins libhwloc5 libibverbs1 libkmlbase1 libkmldom1 libkmlengine1 liblilv-0-0 libminizip1 libmjpegutils-2.1-0 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libnetcdf-c++4 libnetcdf11 libnl-route-3-200 libofa0 libogdi3.2 libopencv-calib3d3.1 libopencv-contrib3.1 libopencv-features2d3.1 libopencv-flann3.1 libopencv-highgui3.1 libopencv-imgcodecs3.1 libopencv-ml3.1 libopencv-objdetect3.1 libopencv-photo3.1 libopencv-shape3.1 libopencv-stitching3.1 libopencv-superres3.1 libopencv-video3.1 libopencv-videoio3.1 libopencv-videostab3.1 libopencv-viz3.1 libopenmpi2 libpocketsphinx3 libproj12 libpsm-infinipath1 libqhull7 librdmacm1 libsbc1 libserd-0-0 libsord-0-0 libsoundtouch1 libspandsp2 libspatialite7 libsphinxbase3 libsratom-0-0 libsrtp0 libsuperlu5 libsz2 liburiparser1 libvo-aacenc0 libvo-amrwbenc0 libvtk6.3 libvulkan1 libwildmidi-config libwildmidi2 libxerces-c3.1 libzbar0 odbcinst odbcinst1debian2 openmpi-bin openmpi-common proj-bin proj-data

Playback scrubbing with the playhead using mouse click-drag, shift-scroll, or other devices

Currently, middle-clicking somewhere in the waveform changes the position of the playhead, but you can't click-and-hold to "scrub" the playhead around back and forth, which would be useful. I find myself constantly having to go back one second, play, pause, etc. It would be much easier with scrubbing sometimes.

As a complement to this mouse binding, it might be nice to map shift+scrollwheel to scrubbing, as this might be easier than holding a mouswheel clicked down. Currently, shift+scroll adjusts the height of the waveforms, which I find to be useless 99% of the time (unlike horizontal zoom), it's not an adjustment I need to make often during an edit, and there's a vertical slider to control that anyway (some recommendations about zoom sliders in #28...).

Support for jog/shuttle video editing hardware devices would be icing on the cake, but that's kind of niche, I'm not sure many subtitle folks have these.

Subtitle edit box misplaced when CPL display is on

When the option to display characters per line (CPL) is turned on, the edit box for a subtitle is rendered below the subtitle, which looks confusing and ugly.

Steps to reproduce:

  1. Uncheck the CPL option (in Options > Preferences > Interface > Show character per line).
  2. Try editing a subtitle. Everything looks right: cursor is placed inside subtitle and it can be edited where it is.
  3. Now, check the CPL option.
  4. Try editing a subtitle.

Observed result: The subtitle is duplicated just below, obscuring the next subtitle. Cursor is shown in the duplicated box (see attached image below)

image

Expected result: Cursor is placed inside the original subtitle for editing.

RFE: allow shifting subtitles for more than 100 ms

I had subtitles which was shifted by 1.5 minute. I found sentence in the foreign language in the movie which I was able to understand and the corresponding subtitle (which was somewhere in the middle of the movie) and observed that the shift is 1.5 minute. Then shifting all subtitles by the 1.5 minute was really pain. I had to map hotkey for the shift 100ms function. Then I had to repeatedly press the hotkey for cca. 10 minutes.

It would be great if there would be some dialog for arbitrary move, not just the 100 ms steps.

change mplayer

hello could you detaing how to sed mpv or vlc by default please ?

Questions about spellcheck and line length

Is it possible to add other languages to the spellchecker and how can I do that?

I see there's a maximum characters per line limit in the preferences. Where does this get applied?
Is there a view where I can have the number of characters highlighted if they are above the limit, just like the CPS column in the Timing view?

Thanks for the wonderful software and apologies if this is not the correct place to ask questions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.