Post subject: Subtitle placement and timing
Former player
Joined: 11/13/2005
Posts: 1587
Hello! My name is Brushy and I complain about things. This time I'd like to complain about subtitle placement and timing. I was watching the DailyMotion stream of the new Tiny Toons publishment and I noticed that the subtitles telling you the rerecord count and all that were right in front of the character for a whole lot of time. This could've been easily avoided, if the encoder had put them in the bottom of the screen at that time. This is not the only encode where I've noticed this, but I can't think of any games right now. Hopefully, from now on, encoders will actually check the subtitle placement and timing and change them accordingly, instead of just using the same script for all games, so this won't happen again. I'd also like to thank all of our encoders for the great job you're doing. Keep up the great and important work!
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
In my defense, I do check vigorously for if the subtitles obscure character placement or not.
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
Hi Brushy! I, myself, have have not complained for over two posts *waits for applause to die down* and I do agree with Brushy. Sometimes there is a 'wtf is happening -- I can't see a thing!" going on with the subtitles.
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
sgrunt
He/Him
Emulator Coder, Former player
Joined: 10/28/2007
Posts: 1360
Location: The dark horror in the back of your mind
I don't have the opportunity to review every published encode, but I do lecture encoders and publishers on this whenever I spot an encode that demonstrates problems of this nature (it's in the Encoder Guidelines, after all). Fortunately, most of our people know better than that.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I had an idea which seemed interesting to Flygon & sgrunt. It's about simplier timing for subtitles in AviSynth script.
a = AVISource("movie.avi") 
b = ImageSource(file="logo.png", start=0, end=119, fps=a.FrameRate).ConvertToRGB24() 
c = BlankClip(b, audio_rate=a.AudioRate, channels=a.AudioChannels) 
d = AudioDub(b, c).Lanczos4Resize(c.width, c.height).AssumeFPS(a.FrameRateNumerator, a.FrameRateDenominator)

#Specify 'subff' as the first frame for your subtitles. It is better to set the first frame of the first level here. 
subff = 100 
last = d + a 

Subtitle("Super Example Bros. by Heavy Weapons Guy\nPlaying time: 4:48.07\nRerecord count: 9001", y=165, align=8, first_frame=subff, last_frame=subff+300, size=13.0, text_color=$30FFFFFF, halo_color=$00000000, lsp=1) 

Subtitle("This is a tool-assisted recording.\nFor details, visit http://TASVideos.org/", y=180, align=8, first_frame=subff+301, last_frame=subff+601, size=15.0, text_color=$30FFFFFF, halo_color=$00000000, lsp=1) 

ConvertToYV24(chromaresample="point", matrix="PC.601") 
ConvertToYV12(chromaresample="lanczos4", matrix="PC.601")
If we Change FPS, timing must be fixed acourding to that: a.FrameRate * 5 must be plused instead of defined 300 frames for 60 fps. Arguable example:
a = AVISource("movie.avi").ChangeFPS(25) 
b = ImageSource(file="logo.png", start=0, end=119, fps=a.FrameRate).ConvertToRGB24() 
c = BlankClip(b, audio_rate=a.AudioRate, channels=a.AudioChannels) 
d = AudioDub(b, c).Lanczos4Resize(c.width, c.height).AssumeFPS(a.FrameRateNumerator, a.FrameRateDenominator)

#Specify 'subf1' as the first frame for your subtitles. If is better to set the first frame of the first level here. 
subf1 = 100 
subf2 = a.FrameRate * 5 
last = d + a 

Subtitle("Super Example Bros. by Heavy Weapons Guy\nPlaying time: 4:48.07\nRerecord count: 9001", y=165, align=8, first_frame=subf1, last_frame=subf1+subf2, size=13.0, text_color=$30FFFFFF, halo_color=$00000000, lsp=1) 

Subtitle("This is a tool-assisted recording.\nFor details, visit http://TASVideos.org/", y=180, align=8, first_frame=subf1+subf2+1, last_frame=subf1+subf2+subf2+1, size=15.0, text_color=$30FFFFFF, halo_color=$00000000, lsp=1) 

ConvertToYV24(chromaresample="point", matrix="PC.601") 
ConvertToYV12(chromaresample="lanczos4", matrix="PC.601")
Example: http://www.youtube.com/watch?v=BYCl09zEljw
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Put ChangeFPS at the end of the script, so that no timing adjustments are required. Like my below example:
a = AVISource("movie.avi")
b = a.PointResize(a.width * 1, a.height * 1)
d = ImageSource(file="logo1080psmd.png", start=0, end=119, fps=a.FrameRate).ConvertToRGB24()
e = BlankClip(d, audio_rate=44100, channels=1)
f = AudioDub(d, e).Lanczos4Resize(b.width, b.height).AssumeFPS(a.FrameRateNumerator, a.FrameRateDenominator)
last = f + b
subff = 1164
Subtitle("This is the game name\nThis is the runs subcategory\nPlayed by someone\nPlaying time: 13:37.00\nRerecord count: 32545", y=72, align=7, first_frame=subff, last_frame=(subff + 300), size=13.0, text_color=$15FFFFFF, halo_color=$00000000, lsp=1)
Subtitle("This is a tool\nassisted recording.\nFor details, visit\nhttp://TASVideos.org/", y=72, align=7, first_frame=(subff + 301), last_frame=(subff + 601), size=15.0, text_color=$15FFFFFF, halo_color=$00000000, lsp=1)
ChangeFPS(30)
ConvertToYV24(chromaresample="point")
ConvertToYV12(chromaresample="lanczos4")
return last
Yes, this is just an SD script with a ChangeFPS(30) chucked into the end. But the same principle applies to HD scripts.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Flygon wrote:
Put ChangeFPS at the end of the script, so that no timing adjustments are required.
Then we will get unnecessary frames processed by x264. I prefer to cut them out before compressing/resizing. Though, my last encode was done with that: http://pastebin.com/raw.php?i=KBv5de3j
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Skilled player (1307)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
I really cant get used to this new subtitle placement at all. When I look at a movie, It usually has the subtitles in one place which makes it easy to remember. However, lately movies have has subtitles scattered around all over the place which is very distracting because I would end up missing several seconds of the run. Sure I can just rewind it, but it kinda gets annoying when you do that for every movie.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Scattered? Do you mean as when they start being displayed? Or where they are on the screen?
Editor, Experienced player (852)
Joined: 8/12/2008
Posts: 845
Location: Québec, Canada
Flygon wrote:
In my defense, I do check vigorously for if the subtitles obscure character placement or not.
Please compare these two videos and tell me what you think: http://www.youtube.com/watch?v=wng7MyJIuRs vs. http://www.youtube.com/watch?v=hEkdr0Rb9uE
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Nahoc You can enlarge the size if you use 4 command lines for subtitles, like in my encode: http://www.youtube.com/watch?v=aoZZN8agTjY#t=142s
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Hahaha, wow, that encode is so old! It was when I was still using MEncoder! Nahoc, your video is, by far, so much better!