Page 1 of 1

BITC Features

Posted: Fri Jul 19, 2024 11:32 am
by graham728
Hi,

I'd kindly like to request a few features to be added to the BITC Timecode feature if possible.

I'd like to make the BITC even smaller than what is currently possible.

Also, it would be great if you could burn in the clip name alongside the timecode - like in the attached screengrab.

I've used Resolve to make the attached proxy with BITC and filename burned in.

Ideally, the file name will be left aligned so that longer names don't start pushing the text off-screen to the left.

Thanks!

Re: BITC Features

Posted: Wed Aug 07, 2024 7:09 am
by jan2ooo
Hey @graham728.

This can be done via "custom FFmpeg" node and the "drawtext" function of FFmpeg. Multiple Metadata can be added using ffastrans variables.

Re: BITC Features

Posted: Wed Aug 07, 2024 9:33 am
by FranceBB
Apologies for the oversight!
Jan2ooo is absolutely right, the position and size can indeed be specified via a Custom FFMpeg node, however it's gonna be a big convoluted as you're gonna have to know a few things about the input.
In this example we're creating a proxy with the timecode at the bottom.

Code: Select all

-vf "drawtext=\timecode='%s_start_tc%':timecode_rate=%f_frame_rate%:x=(w-tw)/2:y=h-(1*lh):fontcolor=white@1:fontsize=25:box=1:boxcolor=black@0.6" -c:v libx264 -profile:v high -level:v 4.1 -refs 4 -pix_fmt yuv420p -crf 25 -x264opts "force_cfr=1:deblock=-1,-1:aud=1:overscan=show:colorprim=bt709:fullrange=off:transfer=bt709:colormatrix=bt709" -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -field_order progressive -c:a aac -b:a 550k -ar 48000
and set the extension as "mp4".
The important bits here are x=(w-tw)/2:y=h-(1*lh) which handles the position (for instance if you put (2*lh) instead of being at the bottom it will go higher and so on. The other important thing is of course fontsize=25. Reducing the fontsize will make the whole thing smaller.

The problem is that you're encoding the final output yourself instead of leveraging on a FFAStrans encoding node which isn't ideal unless you're absolutely sure that your inputs will never change. On top of that, things get even more complicated if you have like varying audio channel layouts.
My suggestion of course would be to not go with FFMpeg and to actually go with Avisynth instead. :)
In particular, you can create a Custom Avisynth Script node with the following script:

Code: Select all

m_clip=ShowSMPTE(m_clip, fps=%f_frame_rate%, offset="%s_start_tc%")

return m_clip
and then connect it to your usual encoding node so that you don't have to change anything in your workflow and you can still leverage on the filter_builder.a3x to get things sorted for you. :)
As to how to change the position and size, you can just use the following parameters

Code: Select all

size=24, x=0, y=0
and change them according to your needs. :)

Re: BITC Features

Posted: Mon Aug 19, 2024 5:38 pm
by graham728
Thanks Frances :) is there a way to burn in filename to the visuals?

Re: BITC Features

Posted: Tue Aug 20, 2024 5:23 pm
by FranceBB
Yep, if you need something "basic" you can use either the Text() function or the Subtitle() function.
For instance, you could do something like this:

Code: Select all

ShowSMPTE(m_clip, fps=%f_frame_rate%, offset="%s_start_tc%")
Subtitle("%s_original_name%")

m_clip=last

return m_clip
and as always use the size, x and y parameters to adjust accordingly.
For instance, I've used the following hardcoded values in AVSPmod mod (an IDE for Avisynth) to emulate what you showed in the screenshot:

Code: Select all

ColorBars(848, 480, pixel_type="YV12")

ShowSMPTE(fps=25, offset="10:00:00:00", size=24, x=90, y=400)
Subtitle("Test", size=24, x=40, y=410)
Screenshot from 2024-08-20 18-23-10.png
Screenshot from 2024-08-20 18-23-10.png (13.29 KiB) Viewed 4469 times

p.s FranceBB stands for Francesco Bucciantini which is my name and surname. In English the natural translation of Francesco would be Frank, so feel free to call me Frank. ;)