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!
BITC Features
BITC Features
- Attachments
-
- Screenshot 2024-07-19 122922.png (992.33 KiB) Viewed 9974 times
Re: BITC Features
Hey @graham728.
This can be done via "custom FFmpeg" node and the "drawtext" function of FFmpeg. Multiple Metadata can be added using ffastrans variables.
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
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.
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.![Smile :)](./images/smilies/icon_e_smile.gif)
In particular, you can create a Custom Avisynth Script node with the following script:
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. ![Smile :)](./images/smilies/icon_e_smile.gif)
As to how to change the position and size, you can just use the following parameters
and change them according to your needs. ![Smile :)](./images/smilies/icon_e_smile.gif)
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
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.
![Smile :)](./images/smilies/icon_e_smile.gif)
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
![Smile :)](./images/smilies/icon_e_smile.gif)
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
![Smile :)](./images/smilies/icon_e_smile.gif)
Re: BITC Features
Thanks Frances
is there a way to burn in filename to the visuals?
![Smile :)](./images/smilies/icon_e_smile.gif)
Re: BITC Features
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:
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:
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.![Wink ;)](./images/smilies/icon_e_wink.gif)
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
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)
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.
![Wink ;)](./images/smilies/icon_e_wink.gif)