-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Subtitles improvments #2741
base: master
Are you sure you want to change the base?
Subtitles improvments #2741
Conversation
@@ -2442,7 +2442,7 @@ ghb_update_summary_info(signal_user_data_t *ud) | |||
} | |||
if (burn) | |||
{ | |||
g_string_append_printf(str, ", Burned"); | |||
g_string_append_printf(str, ", Burned🔥"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for me, eh? 😹
Impressive. Kudos for the upstream fixes, and upstreaming HandBrake functionality to FFmpeg. Should benefit many, even those outside HandBrake's reach. |
I haven't submitted patches to ffmpeg yet. I need to run everything through FATE tests and it would be nice to get a bit more than my few test cases thrown at it first. The patches basically bring ffmpeg up the the level our own decoder/encoder were at, plus one improvement that supports transcoding font tags from ass to tx3g. It's limited to the fonts specified in the ass style header, but it's better than "all fonts are Arial" like we had or "all fonts are Serif" like ffmpeg had. |
I just assumed you will eventually. 😉
That's what the initial read looked like to me. How long before we stop telling people HandBrake isn't an FFmpeg front end? 😝 |
This worth re-visting for 1.4? |
Holy cow, I forgot I even started this. I'm going to have to take some time to go over all this again. |
We should look into the ffmpeg bump before I dig back into this. I may need to adapt patches after the bump. |
There is not frontend support yet. Testing by hard coding values.
So far there are no encoders implemented. Just a "passthru" stage that is also used by audio for audio passthru.
Subtitle decoders need the extradata, so make sure it's initialized before decoders are initialized.
Was getting all underlined text and styles were not getting parsed properly.
So far it's only used for converting ASS subs to TX3G subs.
Rebased on master. Did a couple quick tests of SSA to tx3g and back to SSA encoding. But more testing is needed before calling this good (like some valgrind runs). Might want to add export to external subtitle file capability to at least the CLI since the capability in in libhb, but that can be a follow-on PR. If anyone has good samples of tx3g that uses more style or font features, please pass them along and/or do some testing. Thanks! |
} | ||
else | ||
{ | ||
// TODO: bitmap subtitles |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
encavsub is currently only used for conversion to tx3g. My plan was to flesh out the bitmap path by writing a pgs encoder for ffmpeg and using it to convert vobsub to pgs. The pgs encoder is written for the most part, but there's work left to do (like getting it through ffmpeg review).
@@ -1091,6 +1103,7 @@ hb_job_t* hb_dict_to_job( hb_handle_t * h, hb_dict_t *dict ) | |||
"Forced", unpack_b(&job->select_subtitle_config.force), | |||
"Default", unpack_b(&job->select_subtitle_config.default_track), | |||
"Burn", unpack_b(&subtitle_search_burn), | |||
"ExternalFilename", unpack_s(&subtitle_search_external_filename), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would this work? What if there are multiple external subs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is for output of external subtitle files, so you can do things like pair an external PGS file with mp4 output (since mp4 doesn't support embedded PGS). Many players will import external subtitles.
The particular example you've highliighted is foreign audio search which will generate one output track.
Image Subtitles:
Text Subtitles
|
Awesome! thanks for the testing. I'll look into that problem with burnin probably thrusday or friday. My day job has me busy this week 😉 |
Re-targeting for 1.6.0. |
Is there any plan to ship it in the next release ? |
Description of Change:
Test on: