text:
How do I make video tutorials of someone(s) working through a website on their computer?
The trivial way to solve this problem is just to screen record my computer, but I want it to look professional.
I don't want unprescribed mouse movements. I want them to be direct and towards the object they are clicking on. I want to have transitions and maybe an auto-generated voice over?
I'm really really new to this so please forgive me if this answer has been asked or is obvious...
Is there any software that people generally use for this that is relatively affordable and appropriate for a novice. Any kind of software is fine for me. I'm just new to video editing and creation. Software that has built in functionality targeted at this problem would be very helpful, almost like a wizard of sorts.
I want to create a video tutorial of a user using my website.
Ty!

Camtasia is probably the leading software for creating video tutorials, it has the ability to smooth mouse movements, the editor gives you the ability to add text, transitions and other effects as well.
The software is quite expensive. It has a free trial for 30 days, however videos exported will have watermarks.
If you already have access to video editing software, you may be able to reproduce the same effect setting keyframes for start and end positions of a mouse cursor graphic and animating between those two points. You would need use screen recording software that hides the cursor as you will be using your own graphic of a cursor.

That's relatively affordable for a single license, and exactly the kind of thing I'm looking for. Ty!


text:
Changing the structure of files will delete the edited sequences?
I just finished my first project, but I realized that my project structure (audio, video footage, adobe files) is a mess.
If I change now the structure will the project still work for any possible change in the future? I fear that the edited sequences are linked to the path of the video footage (or the filename) and if I change them I will lost all the work.
If not, what steps I need to do?

Not sure what you mean by "change the structure".
If you mean you changed the file names and locations of the imported source files, then you will have to relink to them.  Go to the Assembly view / Project panel, right-click files whose icons have question marks on them, chose "link media" from the context-sensitive pop-up menu, then at bottom right, click on the "locate" button, then navigate in the new panel to the file (new name and path), select it, then click OK.
If you mean you changed the way the imported files show in the project bin, that's not a problem.  You can move things into bins, and sub-bins, all you want, and not affect any timelines that use those files.  You can even change the name that shows up in the project bin, and this only shows up in Premiere Pro: the PC's files names do not get changed.
If you mean something else, please clarify, and we might be able to be of more help.

Yeah, I was talking about changing the file names and locations of the imported source files. Thanks, I was not sure if you could easily "reimport" them, specially to not lose the edited sequences.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Is it possible to create keyboard shortcuts for applying MULTIPLE/DIFFERENT effects?
I already know you can press Option-E to apply the default Effect.  However... is there any way to have different keyboard shortcuts for applying various different effects?
I want to be able to:

press CMD+OPT+CNTRL+B for black & white video effect
press CMD+OPT+CNTRL+M for Monster audio effect
press CMD+OPT+CNTRL+E for Earthquake audio effect
etc..

I hate having to press CMD + 5 to open effects window, search for the effect, and then actually mouse click on an effect.  I would love to keep my fingers on the keyboard...

So it appears there is no (built-in) option in FCPX to make separate keyboard short-cuts for separate Effects.  Even inside the "Command Editor" mentioned by German Dude, you only have ONE shortcut for applying effects, which is for applying the current Default Effect.  But you cannot bind multiple, different effects to different keyboard shortcuts.
However... I did find another solution to help keep my fingers on the keyboard.  It's not the exact solution I was looking for, but it's the closest thing!
Effect Presets --->  https://support.apple.com/guide/final-cut-pro/save-video-effects-presets-ver462c2078f/10.4.7/mac/10.14
If you make one preset for each built-in Effect that you use often, you can save them all under one new Category (call it something like "My Favorite Effects") and then in the Effects browser, they will all appear together in one spot.  You won't have to keep clicking around, typing search text, and scrolling in the Effects browser anymore... because they will all be in one spot!
Additional Note: This solution is superior to the concept of making duplicates of your favorite effects (the actual Motion projects) and putting them into a "Favorites" folder... because if you use Effect Presets then you are simply referencing the original Effect object.  Imagine in the future that the owner of the Effect decides to update it with improvements/bug fixes.... if you have saved a copy of the ENTIRE Effect object, then you won't benefit from the updates.  However, by using Effect Presets, everything is fine since you are only making a reference to the effect.

Click in the Menu Bar on “Final Cut Pro”. A pull down menu opens, then click on “Commands” then “Customise”
A window will open with all available commands possible. Many won’t have a shortcut and you can set keyboard shortcuts for them. Mind the search bar in the top right corner.
I suggest to duplicate the Default command set before start changing.
If this is not enough then you could look into make a command recording with Automator.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I make pseudo 3D movements to static PNG in AE?
I know about CC Mesh Warp and I use it to move static pictures in simple cartoon scenes, but is there anything more convenient?
Like for example I need this pony to slowly sway left and right while staying on the same spot. What is the best way to do it?
Thank you!

Use Puppet Tools.
⌘/ctrlp will switch to the puppet-pin tool. Click on the layer where you want to be able to drag it, say on the head, then click any other areas that you want to have control over - so, if you want the feet to stay still, put a pin on the three visible feet, and maybe the tail.
Now move the playhead down the timeline, and select one of the little yellow dots and drag it. This will deform the layer like it was stretchy. By default when you put a pin on a layer it is already animated, so if you wind the playhead back to the original point you'll see the pony moving. The other puppet tools let you adjust the stiffness of parts of the mesh, and control which parts overlap.
To get really hardcore you can rig the layer, as you would a 3D character. One of the best tools for rigging IMHO is DUIK, and not only because it's free.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Find frames in video that contain an image
I would like to find all frames in a clip that are likely to contain an image at a known position.
My idea is to grab a still from the video, cut the image and create a mask, feed the video and mask into ffmpeg, use a filter to apply the mask over the video, calculate the difference between the current frame and mask and try to detect if the entire image is black which would indicate that the image is present in the frame.
For example, suppose I have a video where the logo on the right appears at exactly the same spot with the same dimensions several times throughout the video:

My idea is to create a mask that looks like this:

And apply it to the video such that when the image is not present the resulting frame "looks" like this:

But when it does match the blended difference should result in a black screen which I can detect using blackframe.
I've gotten as far as blacking out the actual image, but I'm not sure how to black out the surrounding part of the frame.
Is this possible using ffmpeg, or is there perhaps a different way of doing the same thing?

You don't need to black out the entire frame. Once you've blacked out the logo portion, apply crop filter to select a rectangular portion entirely within the logo area. Then run blackframe/blackdetect on that canvas. The cropped result will srill retain the original timestamps.

The problem is the example I gave is not 100% representative of my use case.  The image I'm looking for is complex and has transparency within (imagine a logo made up of thin strands or tubes), so It's hard to specify a rectangular region "within" the logo.

That's not insurmountable. Let's say 45% of the image is fully opaque. Select a rect region within and set blackframe to flag frames with black area equal or greater than 45%. Actual figure will depend on fully opaque area within the rect, of course.

Hmmm... Would it be feasible to scale both the input video and image to give me a "larger" space for selecting a rectangle?

Scaling will introduce artifacts and thus noise.  There's also the find_rect filter although I haven't used it.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
How to change framerate with ffmpeg without re-encoding?
I have lots of large mjpeg timelapse videos, and I would like to speed them up with ffmpeg without loosing quality, dropping or creating frames.
Video: mjpeg (MJPG / 0x47504A4D), yuvj420p(pc, bt470bg/unknown/unknown), 1280x720, 605 kb/s, 1 fps, 1 tbr, 1 tbn, 1 tbc

The only way I got it working is ffmpeg -r 10 -i video.avi -vsync 0 output.mp4, but this encodes the output with mpeg4. If I use -vcodec copy, the -r 10 looses its power. The PTS rescaling method creates and drops frames. I do not care about timestamps, I want a file with all of the input frames at a fixed (higher) frame rate.
Is there a simpler solution than this? Maybe with image2pipe?

This can't normally be done, but luckily for you, MJPEG is a codec for which streamcopy + piping can work
ffmpeg -i in.avi -c copy -f image2pipe - | ffmpeg -f image2pipe -framerate 50 -i - -c copy out.mp4

The JPEG frames in your input are malformed. For such streams, it's a two step process
ffmpeg -i in.avi -c copy frames%d.jpg

ffmpeg -framerate 50 -i frames%d.jpg -c copy out.mp4

Thanks, I've tried this approach, but although the input and output file are almost the same size, there are (pretty big) jumps in the output video. (Even when stepping frame by frame in VLC).

Share the full log. Is the input variable framerate? By jumps in output - do you mean missing frames?

Here is the log. I think the input is constant 1 FPS. By jumps I mean missing frames, as you can see at the bottom of the log: only 286 remained from the 1000 input frames.

Can you share this sample? I suspect packet parsing issues. You can also dump frames to an image sequence instead of pipe and then use them in step 2.

Sure, here it is.

See edited command. Consider filing a bug report


text:
Shooting at 60fps, export in 24fps
I would like to be able to add slow motion where ever I need in post so I would like to shoot only in 60fps.
The export target is youtube and since I would like to keep a sort of cinematic look, the export frame rate I would like to keep in 24fps.
I previously did some tests in Premiere Pro, and it alloved me to add and edit clips with various frame rates and export them in the lowest of them - 24fps.
The video looks good, hovewer from informations I'm reading, it's not good to do that for my future workflows...
Can you please explain me why ?
If it's bad, will it helps if I will for future shoot in 60fps and export in 30fps ?
Thank you

What was the reason given for not doing it? If your camera can give you good results shooting at 60fps can't see any problems apart from the increased storage space the footage would require.

I always shoot videos with slowest 50fps in my camera, Full HD. like you said, it provided slow motion & this setting has clearer movement. Sometimes I change back to 25fps when I meet some conditions.
Export in 24fps can be used for website, for example published for vevo, youtube channels etc. Because fast buffering and light file size. It also for animation & Music Video (MV). Full HD.
Export in 30fps is for NTSC Television Boardcasting & it smooth for NTSC live, like TV shows in America & Japan. If you published a video in 30fps alike TV shows.
Other countries used slow motion, able to published in 25fps for PAL TV. FHD, QHD. Mosty they're 4k now, their videos are very sharp.
Cinematic will be more optional and more setting & editing, mostly people used as many as fps their camera have, until 4k/8k 120fps+lighting achieved proffessional result. Export in 25fps, 60fps, etc. It is optional.
You want to be videographer,editor for Music Video, web, etc? Export in 24fps. (Actually your camera fps setting & export is good enough, just remember the quality of camera shoot, quality of resolution FHD or above)
Or Videographer,editor for live or non-live boardcasting TV shows? Export in 30fps. (The researched answer is for Television Boardcasting, 30fps)


text:
Hardware acceleration in Adobe Media Encoder vs ffmpeg
On macOS, Adobe Media Encoder has options for hardware-accelerated rendering utilizing OpenCL, which seems to speed up encoding time.
On the other hand, according to the ffmpeg wiki, ffmpeg's hardware acceleration "typically generate output of significantly lower quality than good software encoders". Is this true of both Media Encoder and ffmpeg, or does Media Encoder somehow better utilize hardware for encoding?

Media Encoder and ffmpeg should generate the same quality if given the same encoding parameters.
GPU encoders are provided by GPU vendors. I haven't heard of any third-party implementations. The possible differences lie in the wrappers i.e. the code which initializes the encoder parameters, and written by the interfacing app. There, I would expect ffmpeg to offer more fine-grained choices although I haven't look at AME's offerings as of late.

Speaking from a computer programming background, MPEG and H.264 encoding do not lend themselves to GPU hardware.  The encoding requires a lot of conditional logic and "if statements" where a CPU is superior.  The dedicated encoder chip in your camera does not work the same as the GPU in your computer; both are intended for video work, but specialize on different types of tasks.  Note a GPU works fine for decoding, which is an easier task.
My personal experience is that few decent GPU encoders exist, and the best ones have slightly higher performance but noticeably poorer quality than CPU encoders.  Overall, I cannot recommend OpenCL or CUDA based encoders.  But - my experience is from a few years ago.  Software may have improved.  Side-by-side quality comparison with your particular footage is always best.
EDIT:
Looks like GPUs do have dedicated encoder circuits these days.  Support is available in select software on Linux and Windows.  See here and here.  Adobe Media Encoder is not listed.  If it uses OpenCL, then it's using the main part of the GPU and not the encoder circuit, so above comments on quality still stand.


text:
How do I apply a timecode and then I speed up x4 a video with ffmpeg without losing quality?
I'm trying to create a .bat file for ffmpeg that:

Applies a timecode overlay (e.g. 00:17:23:02)
Speeds up the video x4 (but AFTER the timecode is applied)
Doesn't "touch" the quality of the original video

This is what I got:
for %%a in ("*.avi") do (
    ffmpeg.exe -i "%%a" -vf "drawtext=fontfile=C\\:/Windows/Fonts/arial.ttf:timecode='00\:00\:00\:00':rate=5:text='Real \time\:':fontsize=46:fontcolor=white:x=30:y=30: box=1: boxcolor=0x00000000@1" -f avi "%%~na_with-time.avi"
)

It works but I can't speed up x4 the video and it also losses a lot of the quality (very pixelated when moving around in the video)
This is what code I could use to speed up x4 the video but I can't get it in the code above (to work):
"setpts=0.25*PTS"
Also this is the quality:
How the video looks before:

After conversion with the ffmpeg .bat code above:

Is there a way to speed-up the video x4 (but with the normal time timecode) and also don't change the quality of the exported video)?
Also is there a way to make the black box behind the timecode a bit bigger (5 pixels in all directions: left, up, right, down)? Or maybe a stroke effect to the text instead of the black box?

Use
for %%a in ("*.avi") do (
    ffmpeg.exe -i "%%a" -vf "drawtext=fontfile=C\\:/Windows/Fonts/arial.ttf:timecode='00\:00\:00\:00':rate=5:text='Real \time\:':fontsize=46:fontcolor=white:x=30:y=30:box=1:boxcolor=0x00000000@1:boxborderw=5,setpts=0.25*PTS" -c:v libx264 -f avi "%%~na_with-time.avi"
)

Added boxborderw=5 for border width.
Added setpts after the drawtext.
Added encoder explicitly -c:v libx264 - its default settings should produce good images. You can also stick with the default encoder (mpeg4) and just add -q:v 5 for decent quality - the default of 200 kbps is too low.

For a custom timecode string, remove timecode='00\:00\:00\:00':rate=5
and change text to
text='Real \time\: %{eif\:trunc(t/3600)\:d\:2}h %{eif\:trunc(mod(t/60\,60))\:d\:2}m %{eif\:trunc(mod(t\,60))\:d\:2}s'

Thank you!
Is there a way to replace the
Real time:00:06:31:04
with
Real time: 00h 06m 31s
(so there is a space after time:, no more : and frames (latests digits) are removed)?

Also, is possible to center the timecode (horizontally) without checking how wide is the video (so I don't use 1920/2 = 960). Maybe something like 50% (similar to HTML/CSS 50%)?

For horizontally centering, add x='(W-tw)/2'. A custom string can be done but it's a bit involved so I'll add it tomorrow.

Thanks! I've tested the code and there's an issue with the text size of the timecode, if the video is very big (2K/4K), the timecode is very small.
Is there a way to make the timecode 20% of the width of the video?

Not directly. Add fontsize=H/10 where H is video height. Test and see what expression results in the required footprint.

Thank you! Is there a way to fix this problem: Sometimes the rendered/converted video is longer than the actual time (so in this screenshot it says that it's 51 minutes long but actually it's 7:59 minutes, it can't got past 7:59 mins in this player): https://i.imgur.com/MozuyV4.png

That sounds like a corrupt AVI. Can C4D save to a different format?

I'm not recording with/saving from Cinema 4D. I'm recording using Bandicam.


text:
Wobbly lines on static camera videos
Hoping this is the right place to ask this and that what Im asking isn't nonsense.
I record some top down videos of board games, the camera is on a boom arm fastened in place overhead pointing down (I can't work out a better way to do that at the moment but it works for now and isn't the main issue of this question anywho...), the boards in question have a white grid on them and when I edit and produce the footage I find afterwards that the lines seem to wobble, see here for an example of what I mean if you scroll to 6.47 (as a random point without things obscuring the view).
I'm wondering what the cause might be and if I can stop it happening.
I do have to use the distort tool in fcpx to drag out the edges and rotate things a bit as usually my camera is never centred on the board and so one end has a noticeable slant/narrowing to it as the camera is pointing at a slight angle, could that cause it and if so anyone have any tips or suggestions as to how I can ensure my camera is pointing square to the table? :/
Cheers!

That is an odd, trippy artifact! Is it only noticable on the YouTube upload? Or do you see it when previewing the export file? In the editor? On the source material? My initial thought is it is a compression artifact and if it wasn't perfectly square to the frame or you change coded settings, it wouldn't happen. But where in the chain it becomes noticable might hint at something else

No I see it even worse when viewing it in fcpx when editing (but I don't have optimized/proxy files when editing for space reasons) it does appear much less pronounced in the initial mov file I export from fcpx but then moreso once I've converted it in handbrake to a more manageable mp4 (but then it is dropping from 90gb to 250mb so maybe thats my problem )

Any time you increase compression or go through codec cycles, compression artifacts will get worse. You can try exporting directly to an mp4 to make it less noticable. But to prevent it entirely... What camera/recorder are you using?

Im using a pretty naff little camera, its high def but its just a panasonic hs60, which is small and compact enough for what we need/can afford.  I had tried exporting directly to mp4 before but it takes soooo long from fcpx (6+ hours ) whereas exporting in mov first from fcpx then converting via handbrake was much quicker

It's not interlaced is it? Some early HD cameras shot 1080i, and this looks a lot like the ancient nemesis of thin horizontal lines, the interlacing artefact. You could try running it through a de-interlacer.

I checked online, it says full hd so I assume not interlaced

Full HD just meant 1080i vs. 720p in some of that really marketing material. I hadn't thought about deinterlacing. That's a good suggestion to try.

How do I de-interlace?  Is there a way to tell if the source is interlaced before I do anything with it?

I found this link to the user guide, searching it shows up 1080 but mentions 1920 x 1080/50i, what would the i mean?  the link is http://panasonic.ae/en/manuals/HDC-HS60.pdf

Aha I think I might know what this all means now, 50i means its shot in interlaced so when creating the project in FCPX I should set the project to be 25p, I had it set to 60p  which could be the problem there, am going to attempt to edit the project settings and reproduce the video to see if it makes a difference, cheers all!

After much help above it looks like its because the camera I was recording on was recording in 50i but the project I had created in fcpx was set to 60p, this was causing issues with the final result as it tried to convert 50i to 60p...
I restarted one of the projects as 25p instead and copied in some of the source video again and a quick repeat of my normal output process (export as mov, use handbrake to convert to a reduced size mp4 for youtube upload) seems to give a much better result (I'm comparing the mp4 on my machine to youtube but there is 0 wobble and I don't think its youtube adding it in) so I think this is the solution, make sure your projects are set to the same fps as the source!
Thanks all


text:
Increase framerate in post-production?
I know this is doable because many higher-dollar televisions on the market today are able to take a 24fps input and smooth out the frames for an effective framerate up to 960fps (for Sony).
Would it be possible to take footage that was shot at 24fps and increase it, say, to 60fps? Surely there exists software which can do this.
I'm interested in increasing the framerate of the footage itself rather than relying on a display to smooth out the frames just for compatibility's sake.

So I stumbled across this great little utility called butterflow. It works on all of the Big Three OS's, and seems to produce quality results. I'm running it right now on a 1080p24 copy of Star Wars VIII, and the only downside is that it seems to take a great deal of time.
I'll update with the quality of the results once it's done rendering (probably in the next few days) but here's the link:
https://github.com/dthpham/butterflow

There are several methods for interpolating additional frames if you want to slow down footage beyond its original frame rate.
First: duplicating frames. Pros: very fast, easy. Cons: low quality, causes stuttering, even with fairly small decreases in playback speed.
Second: cross fading between neighbouring frames. Basically each frame is dissolved into the next one. This will work well for a lot of footage down to say 1/3 of the original speed, after that it gets a bit obvious. Pros: fast, relatively easy, lots of software does it. Cons: limited capability.
Third: using motion estimation algorithms to create frames from neighbouring frames. Basically you apply a morph between neighbouring frames, with some intelligent tracking of pixel motion to create realistic motion. Pros: very good results with some footage, even with large slow-down. Cons: compute intensive, so slow to render. Not many apps do it, especially free/cheap ones. Can cause weird and very obvious artefacts when the tracking goes wrong–in fact, I've rarely been able to get this to give satisfactory results with real-world footage. If you have simple movement against a plain background, e.g. green-screen footage, it can work really well, but for any complex scene you generally get all sorts of really obvious weirdness.
The final techniques is still under development, and will probably keep getting better. AI is looking very promising as a tool for this kind of thing, so we may see some quality gains soon.
P.S. I'd say that Sony claim about interpolating 24fps to 960fps is 99.999% marketing bullshit.

I don't think the OP wants to slow down their footage. It sounds like they don't like the film look and think a higher frame rate will give them the look they want. (But +99.999 about Sony's claim.)

Oh, I see. I'm pretty sure that TVs are just doing what the Maltese Cross shutter does in film projectors: they're just showing the same fram multiple times, to remove the flicker.

@stib I'm not saying Sony claims to convert 24fps into 960... It's partly a marketing thing but they do look a lot smoother than 24fps. And I'm trying to make 24fps look like 60fps, not slow it down. I have plenty of hardware to render on, and all the time in the world.

In that case the second method would probably work the best.

TV is rated in Hz...and most, even the ones listed above, only have an effective rate of 120Hz which is 120fps.
What most of these tvs do and what you might be able to get away with is the use of Time Interpolation...but I highly doubt you will get any software that will generate 2.5x additional frames per frame, for a full video, without some serious artifacts ruining the video.


text:
Video hosting platform with tags
I need a video hosting online service like Youtube or Vimeo who lets me organize in a useful way videos I upload (which need to stay private) with tags/labels and filter them with a search function. Is there something like this on the net? Thank you in advance.

I need a video hosting online service like Youtube or Vimeo who lets me organize in a useful way videos I upload (which need to stay private) with tags/labels and filter them with a search function. Is there something like this on the net?

YouTube lets you do it for free.

Create a new Channel.
Upload videos as "Private".
Create a new Playlist as "Private".
Tag your videos.
Use the  "Auto-add" with Tags to place the videos automatically into one or more Playlists.


text:
Opacity depending on the layer
Is there any shortcut where I can apply a 0% opacity at the beginning of the layer and 100% opacity after 10 frames after the beginning of the layer and can do the reverse as well?

You can do this with an expression on the Opacity property:
fade = framesToTime(10);
fadeIn = (time - inPoint) / fade;
fadeOut = (outPoint - time) / fade;
if (time < inPoint + fade) { ease(fadeIn, 0, 1) * value }
else if (time > outPoint - fade) { ease(fadeOut, 0, 1) * value }
else { value }

This expression will fade the layer from 0% to 100% Opacity across the first 10 frames, then fade from 100% to 0% on the last 10 frames of the layer. This is based on the layer's in and out points on the timeline.
Full tutorial (starts at 3:08):

Hope this helps!

objective and effective response


text:
How do I make this object orbit around the center without making it turn

I have this atom that I want to animate in after effects (yes I know you have more than one electron in carbon, but that's not the point). I want this electron to orbit around the middle of the atom. But I want to do it without actually making the minus spin as well, when I set the anchor point in the middle and I do keyframe animation on the electron, the electron spins, but the minus rotates with it.
How can I anchor the minus to the electron? Or, for future knowledge, is there any way to make it so that the electron orbits around the middle, with the minus always lying horizontal, instead of rotating?

Try this:

Parent the atom to the ring or a null in the center
Rotate the ring/null which will rotate the electron around the middle
Apply an expression to the rotation property of the electron layer

Rotation Expression:
parent.transform.rotation * -1

This simple expression will rotate the electron in the opposite direction from its parent (ring/null) layer, which keeps the minus from rotating.
Hope this helps!

I completely forgot about this question... anyway, yes, this is what I ended up doing in the end, although I didn't do anything fancy like you said, I just rotated the minus sign the other way... can get annoying when I need to start and stop the rotation, but it worked... Anyway, thanks for your help!

It was a bit late, but glad you got it working! :)


text:
using images as text characters in after effects
I've made a series of comps each representing a letter from the alphabet.
Is there an expression or plugin where I can convert the relevant text character on screen to be replaced by the appropriate comp.
e.g. I've made a.jpg b.jpg c.jpg.
I type "abc" into a text field, apply a magic expression/plugin, and the letters abc are overlaid/replaced by my comps?
I'm not expecting perfect kerning, spacing etc.. Just a quick way to get a start on this.

The Characteristic plugin for After Effects is built specifically for this:
https://aescripts.com/characteristic/
You can set  kerning and spacing parameters for each character. Check out this tutorial to see how the font is set up:
https://vimeo.com/72438545
I hope this helps your situation!


text:
With an SVideo Y splitter 1M 2F, does the video input need to go in to the male end?
With a Y splitter Svideo cable
Example
   ---F
M--
   ---F

Would plugging the input in to the F side allow the output to come out of both the M and other F side?
End setup would be
Camera       M - F---
                    --- M - F Monitor
Capture F - MM - F---

I basically want to make sure the M side doesn't need to be the Input, couldn't seem to find an answer, sorry if it's a simple question.

There is nothing electrically that would prevent you from putting the input on a female connector and an output on the M and F. But what you describe doing won't work. You need to use an analog distribution amplifier.

The monitor has a CVBS out, would it be better to just go from camera to monitor to capture to pc?

What exactly are you trying to do? What make and model devices do you have?

If the monitor has an input and output it has an amplifier built-in, so you should be able to put it between your source and the capture, but best practice is to monitor out of the capture device if you can.

@MichaelLiebman The company I work for just bought a big van with a 2500 ft sewer camera. They didn't want to pay 10 grand or something for special software, they just want to be able to record. The camera is attached to a monitor via svideo, the monitor has BNC output. I was basically deciding whether a splitter on the svideo connection, or using the BNC output would be better to connect to a capture card, so a computer can record. Not really my specialty

A Y-cable definitely won't work for that. You either need to use a distribution amplifier or sometimes monitors have a loop output that will give you a copy of the input video.

@MichaelLiebman So my plan right now, is use the BNC output on the monitor to (Portta SDI HD-SDI to HDMI Mini) SDI to HDMI converter, then I have a capture card (TNP UH60 HDMI to USB 3.0 Capture Card Device Dongle - HDMI Full HD 1080P Video Audio to USB Adapter) that takes HDMI input and output USB 3.0. This should hopefully let take a recording on the PC.

If the monitor is the one from your other question, it is an analog composite output. The SDI (digital) to HDMI converter won't work.

@MichaelLiebman Thanks for being very helpful to a scrub like myself. I know this is off topic for stackexchange but do you have a suggestion as to a capture card I can look in to, or a different solution for recording from the output on the monitor?

VHS video tape? ;) Unfortunately, I don't have any other suggestions, that's not really my area of expertise any more.

There are dozens of cheap usb capture dongles available. They usually have an RCA plug (like an audio plug on a hi-fi) for the video input, but a BNC-RCA adapter will work since the signal is the same. Here's the first one that I found, just as an example: https://elbo.in/4NZ

Analog cables are thin bits of metal with connectors at each end. The signal that comes out of the source is present instantly* at all of the other connectors whether they are male or female.
However, connecting two outputs does change the impedance that the signal is seeing. Since you're dealing with an analogue signal, where the amplitude of the signal directly relates to the brightness of the image this could cause problems. To oversimplify it, it's like you had a battery and two light bulbs connected in parallel: they're each going to be less bright than a battery connected to only one light bulb.
So where possible you're better off connecting one source to one input. To split the signal use the output from the equipment, as it will be buffered by an internal amplifier.
*ignoring the time it takes for the signal to propogate which will be based on the electomechanical properties of the wire, but will probably be better than 0.5c (where c is the speed of light), or in other words for a 1 metre cable the signal reaches the end ~ 6.7 nanoseconds after it appears at the other.


text:
FFmpeg list parsers
Using FFmpeg configure, I can list available parsers:
$ ./configure --list-parsers
aac                        dvdsub                     png
aac_latm                   flac                       pnm
ac3                        g729                       rv30
adx                        gsm                        rv40
bmp                        h261                       sbc
cavsvideo                  h263                       sipr
cook                       h264                       tak
dca                        hevc                       vc1
dirac                      mjpeg                      vorbis
dnxhd                      mlp                        vp3
dpx                        mpeg4video                 vp8
dvaudio                    mpegaudio                  vp9
dvbsub                     mpegvideo                  xma
dvd_nav                    opus

but how do I list the parsers actually included with my build? ffmpeg -h
reveals:
-formats            show available formats
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-codecs             show available codecs
-decoders           show available decoders
-encoders           show available encoders
-bsfs               show available bit stream filters
-protocols          show available protocols
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formats
-colors             show available color names
-sources device     list sources of the input device
-sinks device       list sinks of the output device
-hwaccels           show available HW acceleration methods

and ffmpeg -parsers creates error:
Unrecognized option 'parsers'.
Error splitting the argument list: Option not found

Not implemented, but iterator was recently added, so you can request on trac for feature.

As a workaround, you can use this:
$ grep --null-data 'ff_.*_parser' ffmpeg | tr '\0' '\n' | head
ff_aac_latm_parser
ff_aac_parser
ff_ac3_parser
ff_adx_parser
ff_bmp_parser
ff_cavsvideo_parser
ff_cook_parser
ff_dca_parser
ff_dirac_parser
ff_dnxhd_parser


text:
Reapply video color autocorrection
Video camera has a brightness correction algorithm and it was used incorrectly.
So I want to apply similar algorithm to the video. The video is static (camera stays in place and doesn't move) but brightness and contrast varies because of autocorrection. I want to freeze them at some appropriate level. I can select a large area (more than 15%), where the picture never changes. I want that area to become reference area, i. e. basis for color correction of the whole frame. It should correct colors in that way, that average brightness and contrast of the reference area is the same for all frames (and I want to specify corresponding values).
What tools and options I can use to achieve that?

If you want the “best possible results” I would recommend the following workflow, or similar variation thereof:

Export your captured video source to a JPG Image Sequence. This will create a JPG for each discrete frame of the video. If you want ultimate color control, with no loss of quality due to JPG compression, you can export instead a TIF sequence, but the size of your output will be 30-50 times larger for HD content.
Second, using Photoshop, open a single frame.
Being your camera is a lockdown shot, choose your reference pixel to be used to determine brightness. I would recommend picking a pixel that has a luminance value of medium grey.
Save your Frame as “Reference.jpg”
Close the File.
Now open a new different frame from the JPG sequence.
Record an Action Sequence that:

1) Opens Reference.jpg. Then uses the Adobe Keyboard command for select previous document.
2) Uses the Match Color Edit Command -> Under Edit Tab
3) Grabs the color value on the open new frame (the one you just opened).
4) Matches the color value to the Reference.jpg file for the exact same reference area.
5) Youll have to play with the parameters adjusting Fuzziness, Threshold, Etc, to get the settings right.
6) Apply Match Color Command.
7.) Close Reference.jpg
8.) End Recording of Action Sequence.
Then... Use Image Processor within Bridge to Batch your JPG Sequence Files. Select your input directory, output directory, and check th box “Run Action on Processed Files” - Select the Recorded Action.
Run the Image Processor.
This will give you the best possible results, specifically if you use TIF and work in a 16 Bit Workspace.
Hope this helps.

Just checked it. Yes, that works, but it is near 60 times slower then the video. So I need a minute to process a second of the video having 50 fps.

Yea its very slow. But its really the way to acheive the best results. Honestly, this workflow can be applied to a number of image adjustment / filters. There are simply things that only photoshop can do, or simply does better, or you have far more accurate control of what is being done. So your system is running at 1 hour per Minute.  You could use multiple systems to split the work, or just render over a few nights.


text:
Why sometimes I can set framerate sometimes I can't?
Why I get the following when I try to get camera feed from Logitech webcam?
The driver changed the time per frame from X to Y

Sometimes it happens sometimes it doesn't.
How should I resolve this problem?

Share full command and console output

Note that camera has many different pixel_formats supported and they have different framerates specification. Check the pixel_format you used, it is likely that the default pixel_format does not support the framerate you want.


text:
How can I used dashed or dotted line for drawbox in ffmpeg?
How can I used dashed or dotted line (instead of the default solid line) for drawbox in ffmpeg? In general, is there anyway I can customize the look of objects drawn?
I don't find anything that allows me to do that in the documentation.

Not implemented.

This function is not implemented by ffmpeg


text:
Automating QC to find corrupt video files
I have a hundred of visually (!) corrupt video clips in H.264 'hiding' within a larger set of files.
As they have been re-transcoded, all of them are now technically OK and will play fine, but will have green flash on every other frame.
I have noticed that if I run a file through QCTools then I can identify them by the 'temporal outliers' value, as every other frame is drastically different from the previous one (because of those green flashes).
I would like to point QCTools to each file in this large set, but only:

process a small portion of it - there is no time to go through every file in its entire duration
fetch only one value - temporal outliers

I have looked through the help of the QCTools CLI version and could not find a way to do this. Does anyone have any other ideas on identifying these files? Is there still a way to do this with QCTools?

If a file is corrupt, is it corrupt throughout the video stream, or are there good portions within?

If memory serves, QCTools mostly just wraps ffmpeg commands, so you might be able to figure out which ffmpeg command calculates the temporal outliers value and automate that.

@MichaelLiebman Excellent idea, I will have a look for ffmpeg filter that does the job and will post it here if I find something. Thank you!

Green flash sounds like it could be gpu decode bug. Check the files on another machine to make sure they’re actually corrupt.

Since QCTools wraps the ffmpeg/ffprobe and uses the signalstats filter, here is how to achieve what I wanted:
ffprobe -f lavfi movie="Bad.mp4","signalstats=tout" -read_intervals %00:01 -show_frames

-show_frames outputs the frame summary into STDOUT. It contains the value that I need:

TAG:lavfi.signalstats.TOUT=0

-read_intervals allows me to process only a small part of the file to get signal stats from only a small portion of the file
We can also check how QCTools does it by looking at the source code here:
https://github.com/bavc/qctools/blob/master/Source/GUI/BigDisplay.cpp#L844-L845


text:
Why setting -r 30 still gives fps=15 in ffmpeg?
Why setting -r 30 still gives fps=15 in ffmpeg?
command:
fmpeg -loglevel verbose -pixel_format mjpeg -s hd720 -r 30 -i /dev/video1 -f libx264 -preset ultrafast -tune zerolatency -crf 23 -f matroska tcp://192.168.1.43:5000

output:
frame=10497 fps= 15 q=22.0 Lsize=  253990kB time=00:11:39.76 bitrate=2973.4kbit

fps= 15 represents the encoding speed, not the output file framerate.

What is encoding speed? Sometimes it is fps=30 though. How do I check the frame rate then?

Shouldn't encoding speed be as fast as output framerate? If it is faster than 30 then maybe it is fine. Now, since it is slower than 30, does it mean I have frame drop?

encoding speed --> number of frames encoded per second, If there are frame drops, you will see drop=X in your progress readout, Check the speed, if it's close to 1 then your device is only sending 15 fps.

I dont see any drop=X. How to check speed?

To the right of bitrate in the progress readout. Increase terminal width if not visible.

What I get as output is as above. There is no drop=X. Is there special parameter I need to input to get that? Or does it only show when there is drop?

Only when there is drop.


text:
Does bitrate also mean the internet speed I need to have?
I am streaming raw video at -r 30 and the bitrate is as follows
frame=  228 fps=6.3 q=-1.0 Lsize=  410406kB time=00:00:31.03 bitrate=108341.2kbits/s

Does that mean that I need 100Mb/s internet to support sending raw frame, that bitrate is also the internet speed I need to have? And since my internet cannot support the fps drops to 6.3 instead of 30?

Yes. But you should have a little overhead as well, so you probably need about 150Mbps for this. Something like huffyuv could give about a 50% reduction, or a lossy codec would give 95% or more reduction.


text:
Not able to edit subtitles in Premiere Pro
I would like to edit my subtitles in Premiere Pro (CC 2018) but can't change the fonts or size or anything like that. I did try to use open and closed captions but both didn't work. I think I miss a part in my workspace but don't know how to get it back.
Resetting the workspace or selecting multiple options through 'Window' did not help.

The answer depends on whether you want actual captions or just some text in the video. The difference is that subtitles/captions are actual streams in the video container or separate files altogether that can be turned on and off, whereas normal text in the video is part of the video stream, so it's burned in and can't be turned off (which also means the playback device/software doesn't have to support the subtitle standard that is used, so there are benefits to both methods).
Captions
If you want actual captions, you have very limited formatting options. The way it works is the subtitle file/stream contains only the timecodes and corresponding text for all the subtitles you create and very limited formatting information as well as some metadata. The appearance of the captions (i.e. font family, font size and position) is controlled by the playback device/software. This way, the captions can be optimized for different displays and controlled by user settings (for example, people with bad eyesight can set a larger font size).
If you want to control the display aspects of your subtitles, you can create Open Captions that are burned into the video stream. Make sure to select 'Open Captions' as the standard when you create the captions in Premiere Pro:

If you create Open Captions this way, you have more control over the caption display:

As you can see in the screenshot above (taken in Premiere Pro 2018), you can control the font size, family and style, as you asked. If you create captions this way, you can still export the captions as an individual file (File → Export → Captions…), for example to the SubRip format (.srt). However, this will again only export the timecodes and text, not the display options set by you. If you want to have different font families, sizes etc. in your video, you will have to burn the subtitles in, which you can do if you create them as Open Captions.
Text in Video
If you want the most control over appearance, animation etc. of your text-in-video, use Text / Graphics layers. Working with text used to be really tedious in earlier versions of Premiere, but with the new Graphics Workflow it's rather straightforward and elegant. Take a look at this page for an introduction. Keep in mind though that Graphics can't be exported as subtitle streams/files, so they will always be burned in the video stream.


text:
How to import AVCHD to macOS while also deinterlacing during import?
When I import AVCHD from my Sony camera into macOS via different apps (such as AVCHD to Mov from the App Store), I always end up with interlaced video and then have to pass it through additional filters to deinterlace it.
How can I import the video while simultaneously deinterlacing it?  I have heard that it can be done, but I've not found the method to accomplish this.

I haven’t done research on this, but I’m guessing it’s possible with a tool such as ffmpeg, but I doubt it’s possible with the built-in MacOS import tools (based on experience, I have found there are very few available options during import on MacOS).

Handbrake is really good for deinterlacing video. Under Filters choose Yadif for best result or Decomb for automatic recognition of interlaced frames.


text:
AE - Creating speed/motion lines?
https://gyazo.com/6cb8bcf6193716407790a11205bd060c
Any idea how I can create this effect in illustrator on a (rectangle) shape? Are there any effect presets for it?
The gif is from here.

What have you tried so far? Are you asking about a motion graphic (AE) or static, vector graphic (Iillustrator)? Please be more specific or you will get the snarky, but true answer that you just use animation.

You mean "Animation™"

I've added a solution below.

related: https://video.stackexchange.com/a/16513/6685

I have found a good tutorial explaining this.


text:
How to merge videos side by side if one of them is cropped
I have 2 videos of the same resolution, but I need to crop one of them and then merging them side by side, so that general height would be equal of height of non cropped video. I.e. they should look the same size after merge. Just cropped video should look like it zoomed in.
I tried to do that, but uncropped video being cropped during merge.
I cropped like that:
ffmpeg -i L.MOV -filter:v "crop=in_w-28:in_h-28" -c:a copy LC.MOV

Then merge which crops right video:
ffmpeg -i LC.MOV -i R.MOV -filter_complex '[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' -map [vid] -c:v libx264 -crf 23 -preset veryfast LCR.MOV

Here I drew what I need:

And here what I'm getting:

Use
ffmpeg -i L.MOV -i R.MOV -filter_complex '[0:v]crop=in_w-28:in_h-28,scale=640:480,setsar=1,pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' -map [vid] -c:v libx264 -crf 23 -preset veryfast LR.MOV

Since you want a zoomed-in effect, after cropping, you should rescale it back to 640x480. Your crop dimensions are disproportionate to the input dimensions so I have reset SAR to 1. You can skip this if you apply crop=in_w-28:in_h-21.

To apply the crop to the right video, use
ffmpeg -i L.MOV -i R.MOV -filter_complex '[1:v]crop=in_w-28:in_h-21,scale=640:480[int];[0:v]pad=iw*2:ih[left];[left][int]overlay=W/2:0[vid]' -map [vid] -c:v libx264 -crf 23 -preset veryfast LR.MOV

I forgot that height not equals width. Thanks a lot.

How to rewrite command if I would need to crop right one instead of left (I can't figure that out) ?

Replace first [0:v] with [1:v] and [int][1:v] with [0:v][int]

it crops both videos by half.

Run command with -report and share report.

Here is log file: https://drive.google.com/open?id=1LlTMzD5I2YGVLG3QixTvvIb9rkww5j57

Malware detected in earlier link.

Use my new command in answer.

Malware - I've seen that. It works now - thank you very much.


text:
How to combine ffmpeg vf commands for resizing and color correction?
I'm currently using the following batch script to run an ffmpeg command:
@echo off
title Convert videos to Mp4 h.264 with FFMPEG.
echo This script will find all video files of a given extension then make an mp4 h.264 file out of them.
set /p folder="Enter the folder path (cannot contain spaces; must have trailing slash \): "
set /p ft="Enter file type extension: "
set /p abitrate="Enter the audio bitrate in kbps (usually 48): "
set /p size="Enter video width and height (w:h) (usually 852:480): "
set /p vcrf="Enter the video crf value (usually 24): "
for %%f in (%folder%*.%ft%) do ffmpeg -i "%%f" -vf "scale=%size%,setsar=1" -crf %vcrf% -c:a aac -b:a %abitrate%k -ac 1 -movflags +faststart "%folder%%%~nf.mp4"
pause

The script says what it does in the description at the top. I built it to convert HDV .m2t files to web-ready mp4 files. If I extract the ffmpeg command from the script loop, it looks like this:
 ffmpeg -i input.m2t -vf "scale=852:480,setsar=1" -crf 24 -c:a aac -b:a 48k -ac 1 -movflags +faststart output.mp4

I have some videos that need color correction, so I just want to toss a filter on them before I encode. I've fiddled with ffplay and determined that the look I want will require the following command, which has been modified from this answer:
 -vf eq=brightness=0.1:saturation=1.5

The issue I'm having is integrating this new -vf line into the main command. If I put it separately, ffmpeg ignores the first one for the second one. If it put them together in the quotes, it throws errors. I assume this is a syntax issue, but maybe not. The main command seems to be using commas for separators, but this new command uses colons.

Filter complex isn't needed. When a series of filters are to be applied to a single input in sequence, they are to be separated with a comma and passed along as a single filterchain (-vf, -af). You already did that with the setsar. So,
 ffmpeg -i input.m2t -vf "scale=852:480,setsar=1,eq=brightness=0.1:saturation=1.5" -crf 24 -c:a aac -b:a 48k -ac 1 -movflags +faststart output.mp4

Hmmm. I thought I tried that one, but I'll double check. What would be the difference in using -vf instead of -filter_complex?

filter_complex is meant for filtering multiple streams in a combination of serial and/or parallel sequences. You can also combine those multiple streams, like when using overlay filter. For this specific case, ther's no difference, but the correct answer for your issue isn't that filter_complex is needed.

Through trial and error, imitating different people's syntax used in similar commands, plus at the suggestion of an ffmpeg error message, I've come up with the following, and it worked as expected:
 ffmpeg -i input.m2t -filter_complex "scale=852:480,setsar=1","eq=brightness=0.1:saturation=1.5" -crf 24 -c:a aac -b:a 48k -ac 1 -movflags +faststart output.mp4

The first change is -vf needed to be changed to -filter_complex. ffmpeg suggested this in an error message. After that, just separating the two commands with a comma, then also quoting the new command did the trick. So the syntax is very much like a csv.
If you have more insight, please post an answer.


text:
How to upscale a 480p video to a 1080p with minimal quality loss?
I have a ripped DVD that I want to have digitally upscaled to 1080p. I have access to the editing software Adobe Premiere Pro and After Effects. I know Premiere is able to upscale when exporting, but I'm not happy with the results and I'm looking for a better solution.
So in short, what is the best way to upscale a 480p video to 1080p?

Until now just simply 'set to frame size' in Adobe Premiere. The result was pretty noisy with visible artifacts

Can you share a preview of your worst effect frames?

Ripping we assume provides the best quality (unless it's compressing) so if you're getting noise and blockiness or blur it's probably multiple compression. Uploading a screenshot of a bad frame would be helpful. -- Also what do you mean "minimal quality loss"?, 2x and no compression will cause the least alteration but will be blocky, Lanczos3 + sharpen 64 will produce good results (for free) but alters the image (which is desirable), paying for http://www.infognition.com/articles/video_resize_shootout.html gives excellent results. Simple upscaling and double compressing is the worst.

In the meanwhile I searched around as well and tried different methods. I got good results using a bit of a complex method. I exported all my 480p frames as png's, then used waifu2x-caffe (https://github.com/lltcggie/waifu2x-caffe) to upscale all png's times 2. Then I loaded the results back in Premiere. It's not perfect but the quality especially on frames with sparse movement is excellent. I'll try to answer my own question with image examples later.

You can upscale Premiere Pro footage using the Detail-preserving Upscale effect in After Effects via Dynamic Link. The results will never be as good as actual HD footage, but the Detail-preserving Upscale effect does a great job at scaling footage without losing too much quality.
There's a short tutorial on how to do this at the following link:

I’ve also heard that AviSynth’s Nnedi3 rpow2 function is good for upscaling. Any thoughts on how this compares to After Effects? Plus there’s Topaz Gigapixel AI which uses AI data for upscaling while keeping sharpness – I was quite impressed! That would be another tool worth comparing.

I use Topaz Video AI. Works great. (But to get the best results it can take some time fiddling with different AI settings and previewing and comparing resultant 2second previews.) The improvement is “miraculous.” Cons: Topaz AI costs $250-300, is resource-intensive, enhanced file sizes can get very large, and it really needs a fast processor if you are doing lengthy videos (eg Mac Studio or computer with fast CUDA Nvideo). If the DVD footage is interlaced, I use Handbrake to first deinterlace the VOB files (under the “filters” tab) being sure to set to 60fps output (that way each interlaced field becomes a separate frame, rather than blending the interlaced frames and outputting 30fps), then use Video AI to either upscale the 640x480 to 1080p FHD (1920x1080 with black sidebars), or 2x to get 1280x960 (no bars), or 4x to get 2560x1920 (no bars). The improvement to DVD quality is amazing! Especially if the DVD was originally a VHS tape that was transferred to DVD using a VHS-DVD machine. For my purposes Topaz Video AI is well worth the cost.


text:
What do I need for facebook Audio Live streaming?
I would like to do audio live streaming on facebook.
I intend to get audio feed from myself, from a guest sitting next to me, from a guest over the phone and a guest on Skype. And then stream it on facebook.
In terms of equipments: I got a laptop which has 8th Gen Intel® Core™ i7-8550U mobile processor, 12GB Memory and Intel® HD Graphics 620
An internet connection which has upload speed 300 kbs to 1.2 mbs. (Not steady :( but enough for audio, I think.)
I got OBS software, but it is designed for video transmission not audio.
What else do I need?
Any equipment, software, etc?

Surprisingly, facebook or facebook live is not available in the tag list. Did I post in the wrong community?

I would consider just using your phone (use Wi-Fi depending on situation) :)
I found this great video of how to do Facebook Live Audio cast (click here).
For your situation I find it quite suitable to use your phone instead of your laptop. It will make it easier since both you and the guest are using a phone. Then it makes the whole process seamless.
You can buy external stereo mics for phones to improve audio drastically.
You can gradually build up a better setup over time once you get more comfortable with Facebook live. To be very good... it takes time :)
Try to have at least a 5-10mbps for a video live stream.


text:
How to shoot in-situ product videos in restricted locations?
This question is location based, and hoping to get some ideas at the very least.  I work for a company that manufactures products for the construction industry, such as secure storage units, tool chests, manual handling products such as sack trucks, etc - you get the idea.
I want to start shooting product video, but for maximum effect I think they really need to be in situ - ie, shot on a construction site, however such sites, especially in the UK are restricted, and only authorised personnel are allowed on site.
With this in mind, what is the best way to shoot the video I want?  Do I try and contact construction sites near me and get them to allow me on site (bearing in mind that construction sites are only suitable for filming for a few months - our products wouldn't get used very early in the construction stage, and they also wouldn't be used nearer the end fitout stage).  Would it be simpler and cheaper long term to build a film set?  I'm thinking that CGI is likely to be too costly to be viable?  Are there any other options?
Really appreciate any experience or ideas that can be shared.

Many people apart from construction workers need to visit building sites, so there are processes for that to safely happen. I used to have a job where we often shot in restricted locations like building sites and factories. It usually involved the producer contacting whoever controlled the site and asking permission, and then we usually had to go through the site induction process (so many induction videos, so, so many).
A few things to note: when you're on site be aware that you will probably wear out your welcome–most people don't realise how long it takes to shoot a video, they expect you to turn up, wave the camera around and go. So it's worth being clear to whoever is going to accompany you on site about how long you think the shoot will take.
Also be aware that the camera operator needs to have support people. If they're in a location like a building site there are lots of dangers around, and if they're focussed on the camera, they may not be fully aware of their surroundings. At the same time, you want to keep the crew to a minimum, so you don't have unnecessary stragglers wandering around.


text:
ffmpeg - concatenate multiple almost identical files ends up in longer video than expected
I have 239 small MKV video files with identical characteristics (they were cut from the original video with the same command but different -ss -t parameters).
I concatenate them all back into one long video and this video gets longer duration than the sum of durations of the small files.
All small files have 29.95 fps but the concatenated video has 29.75 fps and I do the -c copy, why does it change?
How can I concatenate the files and get the expected duration without frame rate change?
I counted frames of all input files and frames of the resulting video and the number of frames is the same, so the problem is in fps.
Also I tried to re-encode instead of copy and get proper 29.95 fps but the duration is still longer than the original, number of frames also increased...
I'm lost here, please advise.
Here is my original concat command:
ffmpeg -f concat -safe 0 -i lst -c copy -y concat.mp4

List file 'lst' contains:
file test_000.mkv
file test_001.mkv
file test_002.mkv
....

ffprobe for the first two files, they all differ by duration only:
ffprobe version 4.0-static https://johnvansickle.com/ffmpeg/
Copyright (c) 2007-2018 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-libxml2 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
libavutil      56. 14.100 / 56. 14.100
libavcodec     58. 18.100 / 58. 18.100
libavformat    58. 12.100 / 58. 12.100
libavdevice    58.  3.100 / 58.  3.100
libavfilter     7. 16.100 /  7. 16.100
libswscale      5.  1.100 /  5.  1.100
libswresample   3.  1.100 /  3.  1.100
libpostproc    55.  1.100 / 55.  1.100
Input #0, matroska,webm, from 'test_000.mkv':
Metadata:
ENCODER         : Lavf58.10.100
Duration: 00:00:19.07, start: 0.064000, bitrate: 12639 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080, 29.95 fps, 29.95 tbr, 1k tbn, 59.90 tbc (default)
Metadata:
  ENCODER         : Lavc58.14.100 libx264
  DURATION        : 00:00:19.065000000
Stream #0:1: Audio: vorbis, 48000 Hz, mono, fltp
Metadata:
  ENCODER         : Lavc58.14.100 libvorbis
  DURATION        : 00:00:19.068000000

Second file:
    ffprobe version 4.0-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2007-2018 the FFmpeg developers
        built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
    configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-libxml2 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
    libavutil      56. 14.100 / 56. 14.100
    libavcodec     58. 18.100 / 58. 18.100
    libavformat    58. 12.100 / 58. 12.100
    libavdevice    58.  3.100 / 58.  3.100
    libavfilter     7. 16.100 /  7. 16.100
    libswscale      5.  1.100 /  5.  1.100
    libswresample   3.  1.100 /  3.  1.100
    libpostproc    55.  1.100 / 55.  1.100
    Input #0, matroska,webm, from 'test_001.mkv':
    Metadata:
        ENCODER         : Lavf58.10.100
    Duration: 00:00:12.07, start: 0.064000, bitrate: 10773 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080, 29.95 fps, 29.95 tbr, 1k tbn, 59.90 tbc (default)
    Metadata:
        ENCODER         : Lavc58.14.100 libx264
    DURATION        : 00:00:12.053000000
    Stream #0:1: Audio: vorbis, 48000 Hz, mono, fltp
    Metadata:
        ENCODER         : Lavc58.14.100 libvorbis
    DURATION        : 00:00:12.067000000

Resulting video:
ffprobe version 4.0-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2007-2018 the FFmpeg developers
    built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-libxml2 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
libavutil      56. 14.100 / 56. 14.100
libavcodec     58. 18.100 / 58. 18.100
libavformat    58. 12.100 / 58. 12.100
libavdevice    58.  3.100 / 58.  3.100
libavfilter     7. 16.100 /  7. 16.100
libswscale      5.  1.100 /  5.  1.100
libswresample   3.  1.100 /  3.  1.100
libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'concat.mp4':
Metadata:
    major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf58.10.100
Duration: 00:41:23.73, start: 0.000000, bitrate: 9392 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 9313 kb/s, 29.75 fps, 29.97 tbr, 16k tbn, 59.90 tbc (default)
Metadata:
    handler_name    : VideoHandler
Stream #0:1(und): Audio: vorbis (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 66 kb/s (default)
Metadata:
    handler_name    : SoundHandler

The difference is due to the accumulation of the audio delay. What are you altering in the segment files?

The original video has a huge panoramic frame, I cut fullhd parts from it from different places.

So, no editing of the audio? Run your concat command with audio disabled -an and check.

You are right, if I remove the audio channel everything becomes fine and the duration is exactly as it should be. Thanks, but I don't understand why this is happening, why it's impossible to cut the audio exactly at the time the video frame ends.
Now will do the workaround - concat video only and then merge with audio channel from the original full length video.
Thanks a lot!

What the concat demuxer does is to zero out the starting timestamps of each file and make the last timestamp of a file and the starting timestamp of the next file smooth.
Your files have Vorbis audio, which has a codec delay of 70ms. The difference in total duration is the accumulation of these delays over all segments.
Skip the audio during concat and add it afterwards.


text:
LED light temperature why does it matter?
My question if you are able to change the white balance of your camera why does it matter what your LED lighting temperature is capable of.

You can change the temp of the lights individually so that you can have different lighting on a shot.
The white balance will enable you to set your baseline lighting/colour profile and then you can hit the shot with different light temps to  change the look of it (higher temp = bluer light, lower temp = orange light) - it's a similar principle to using different types of light/bulb.
So you light, set your WB for a neutral look, then change the lighting temps to alter the look/feel of the scene.

If I'm adding light to a scene that already has a light source - say I'm shooting near a window, and I'm adding a key or some fill light - I need to be able to match the colour of the existing light so that my light doesn't have a colour cast.
In the olden days, we were mostly stuck with tungsten (3200ºK) for artificial lights (unless you were using expensive HMI lights), so we'd have to add blue gels to our lights if we wanted to mix them with daylight (5400ºK), reducing the output of the light, and generally being a bit of a pain (ask a sound recordist, gels make a tonne of noise when they flutter). It's so much easier to just dial in the colour on an LED panel than it was to try and peg a piece of plastic film to the front of a hot light while balancing on a ladder.
Worth noting that the big disadvantage of LEDs is that the spectrum of light they emit is not as smooth as tungsten. Although they may appear white overall, if you look at their emission across the spectrum there will be peaks and troughs. This means that some colours will be brighter and others less so, depending on whether they're in a peak or trough, and this makes the footage harder to grade. The cheaper the LED, the worse this effect is. That's why the expensive LED lights aren't necessarily brighter, it's just that their colour is better (it's also why CFLs are rubbish for film).

Oh yes that makes so much sense I hadn't even considered other light sources such as daylight... thanks for your answer.


text:
My colors look awful, I can't tell why
I'm an amateur that recently made a video clip using the DJI Mavic Pro drone.
The footage itself turned out great, but the coloring is off.
The problem is, I can't tell what exactly is off, it just looks awful.
I tried to do some color correction in my video software, but I couldn't get it right.
Here is a single frame of the video, with no color correction:

I came here to ask what parameters I have to consider to make it look more natural, or if that isn't enough, what I should change when recording the video. (exposure, filters?)

'Awful' is pretty extreme - I don't actually think it looks that bad.
Perhaps it's a little bit over exposed (the car is almost glowing, it's that white) so you might want to consider an ND filter if you're filming outdoors (and you can get one of those for your drone).
Colour-wise, it does look like it's tipping towards the blue-end of the spectrum. Maybe try throwing a little more yellow/orange into the mix. However, that could just be my monitor. Do, please, check your monitor settings, too, they may be throwing off your perception.
This guy seems to know his stuff in regards to Mavic colour grading:

Maybe give that a watch and see if it helps :)

Thank you, I ordered ND filters and found my screen to have weird color representation.


text:
Premiere Pro - Change indeterminate Media Time-base to custom value (say 12 fps)
Is it possible to change the indeterminate time-base in Adobe Primeiere Pro to something small like 12 fps (the figure below shows only a few pre-fixed values) ?
If not, how do I render a 5 second video with 60 images at 12 fps ? I do NOT want to use time-remapping as an effect since I am worried that will try to interpolate frame, whereas I have 60 frames, which is required for 5 second at 12 fps.
Any help would be appreciated.

When you create a new project, on the 'Settings' page, select 'Custom' from the 'Editing Mode' drop-down, then you can select '12fps' as the 'Intermediate Media Timebase'.
If you already have a project, you can create a new sequence and select 'Custom' and '12fps' as above in the 'Sequence Settings' menu.


text:
How to light a set using coloured fluorescent lights
Hi all i'm wanting some advice on set lighting. i'm wanting to create a set similar to the below using fluorescent lights. Just wanting to know what equipment is needed to achieve this look. Obviously there are using red fluorescent lights but how are they powered etc and some kind of blue fill light? I'll admit i'm a bit of a newbie when it comes to lighting so any advice will be greatly appreciated.

Apologies for replying to such an old question, but I like the shot composition so I thought I'd drop my 2c. Most of the light here is from off-camera - there are PARs behind the glass projecting the blue light in, red PARs to the left off-camera providing the light on the sides of the pillars and the back of the actor, and in the close-up they've bought in additional blue wash lighting behind camera, likely from a high angle. I think the visible tubes are primarily for show and aren't providing much of the overall scene lighting, other than for the reflections on the floor.

Try searching for "LED Neon Tube".  Nowadays LEDs are so common for venue lighting, maybe the set designers might went that route.
If this is fluorescent, they could be white fluorescent bulbs wrapped in theatrical gel roll material, such as this.  For the power supply (called a ballast) and housing, you can buy fluorescent bulb track lighting from any commercial lighting store. The ballasts for traditional T8 and T12 size bulbs are being phased out due to regulation.  But my local supplier still had a couple in stock a few years ago.
The bulbs could also be neon, producing a native red color without a filter.  I believe those would have to be handmade by a signage company.
Also, the shot has pretty obvious red stage lighting to the lower-left, and blue to the upper-right.  I'm judging from the red light and shadows striking the ceiling, and the diagonal blue light shadows on the actor's body.  My guess is that almost none of the light in the shot is from the vertical bulbs.
I'm a newbie at this too, but hope some of my information is accurate :)  I had a similar project for a party production a few years ago, which involved fluorescent ballasts and housings with vertically mounted blacklights.

Thanks for the insight. Really helped particularly about the red stage light i hadn't noticed it but it is obvious now you mention it


text:
Using multiple graphics cards in Davinci Resolve
So I recently got a Nvidia 1050 ti for my editing rig but was wondering if it would be possible buy another 1050 ti and install it to get Davinci to use two graphics cards (perhaps using SLI?).

The free version of Resolve doesn't support multiple GPUs.  The Studio (paid) version does.  However, combining multiple GPU cards generally doesn't increase VRAM (i.e., if you only have 4GB per card, a pair of cards presents 4GB of VRAM).  If you are thinking about a second card to increase your VRAM, it won't work.
Also, the general story from the Resolve users group forums is that multiple cards are really only helpful if you are using lots of temporal noise reduction (which eats VRAM very quickly). If that's the case, you need both lots of VRAM and lots of GPU compute capacity.


text:
Issue Importing CineForm to Premiere CS6
I installed the GoPro CineForm codec recently and used VDub to create a CineForm AVI file. Works fine in MPCHC, VDub, etc.
It won't import into Premiere Pro CS6 though. I get an error about an unsupported or damaged file.
When exporting, "CineForm AVI" and "CineForm MOV" are both options, and I can export timelines as CineForm AVI that, again, works fine in MPCHC and VDub but won't import into Premiere.
For a while I was getting this error when opening AME, but it stopped after a reboot:
Monitor: PProHeadless.exe - System Error
The program can't start because CFHDDecoder64.dll is missing from your computer. Try reinstalling the program to fix this problem.
OK
I'm still getting this error when I open After Effects:
After Effects warning: The following plugins have failed to load.  Please reinstall these plugins:
C:\Program Files\Adobe\Common\Plug-ins\CS6\MediaCore\CineForm\CFHD_AVI_Importer.prm
C:\Program Files\Adobe\Common\Plug-ins\CS6\MediaCore\CineForm\CFHD_MOV_Importer.prm
OK

Just browsing around C:/, and stumbled across CFHDDecoder.dll and CFHDDecoder64.dll in C:/Program Files (x86)/CineForm/Tools. Copied them to C:/Program Files/Adobe/Adobe Premiere Pro CS6, and the file now imports successfully.


text:
Create a video from a landscape image with ffmpeg
I trying to create a video from a landscape image that moves from left to right of the image.
One form that I thought I can get this done is firstly generating N cropped images from the original one, each of them cropped more and more to the right and then apply some command like this one:

  ffmpeg -framerate 1/X -i img%d.png -r 25 -pix_fmt yuv420p out.mp4

This for sure works but is not the quickest and cleaning form to do it.
Are there a better method to accomplish this?

You can just use the crop filter.
ffmpeg -loop 1 -t 10 -i img.png
       -vf "crop=w=W:h=ih:x='(iw-W)*t/10':y=0"
       -r 25 -pix_fmt yuv420p out.mp4

The crop filter crops the image to Wxih pixels where ih is the original height. You should substitute W with your target width in pixels. The position of the top-left corner of the crop window is set by the x and y expressions.
Since you only want to move left-to-right, y is set to a fixed 0. For x, the expression (iw-W)*t/10 governs the horizontal position of the crop window. t is the processed frame's timestamp in fractional seconds. W is substituted with the target width. iw is the input width. The crop will start from the left edge and end at the right edge at t = 10 seconds.

For an image sequence of 10 seconds, use
ffmpeg -i img%d.png
       -vf "crop=w=W:h=ih:x='(iw-W)*t/10':y=0"
       -r 25 -pix_fmt yuv420p out.mp4

Looks good, the produced video thumbnail looks correct but the duration of the video is near 0. I tried to add :d=10 to the expresion and add -t to the general command and doesn't works.
Current command

The command in your Q implies an image sequence img%d.png but you're applying to a single image. I'll modify my command for this case.

Perfect! It works now. Thank you very much!
I suggest you edit your answer to include both solutions, for one and for several images, perhaps someone find it useful

@Gyan what if I already made some changes to the video stream in filter_complex and named it [trimmed], how would I make a long input image to overlay from bottom to top and be able to set its speed?

Post a new Q with your full command.


text:
how to set duration, fading start time and end time video wise in below command?
ffmpeg -y -i intro.mp4 -i video.mp4  -i outro.mp4 -f lavfi -i color=black:s=1280x720 -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=10:d=1:alpha=1,setpts=PTS-STARTPTS[v0]; \
 [1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=10:d=1:alpha=1,setpts=PTS-STARTPTS+10/TB[v1]; \
 [2:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=10:d=1:alpha=1,setpts=PTS-STARTPTS+20/TB[v2]; \
 [3:v]trim=duration=30[over]; \
 [over][v0]overlay[over1]; \
 [over1][v1]overlay[over2]; \
 [over2][v2]overlay=format=yuv420[outv]" \
-vcodec libx264 -map '[outv]' merge.mp4

Your fade out timings are one second too late - the fade out should start at 9 seconds of each clip so that it can end by 10 seconds.
ffmpeg -y -i intro.mp4 -i video.mp4  -i outro.mp4 -f lavfi -i color=black:s=1280x720:d=30 -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0]; \
 [1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS+10/TB[v1]; \
 [2:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS+20/TB[v2]; \
 [3][v0]overlay[over1]; \
 [over1][v1]overlay[over2]; \
 [over2][v2]overlay=format=yuv420[outv]" \
-vcodec libx264 -map '[outv]' merge.mp4

If you have audio as well in the 3 files, use
ffmpeg -y -i intro.mp4 -i video.mp4  -i outro.mp4 -f lavfi -i color=black:s=1280x720:d=30 -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0]; \
 [1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS+10/TB[v1]; \
 [2:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS+20/TB[v2]; \
 [3][v0]overlay[over1]; \
 [over1][v1]overlay[over2]; \
 [over2][v2]overlay=format=yuv420[outv]; \
 [0][1][2]concat=n=3:v=0:a=1[outa]" \
-vcodec libx264 -map '[outv]' -map '[outa]' merge.mp4

This command assumes that all 3 files have 10 seconds of audio each, eolse sync will be lost.

this command works but voice is disabled. so how to enable audio?

How to know video file has audio? we will have with audio and without audio so which command do you think is best for this purpose?

Run ffprobe -v 0 -select_streams a -show_entries stream=index -of compact=p=0:nk=1 "$file" | wc -l . If it's zero, no audio in $file


text:
SDI loop through with LTC embedder
I was wondering if there’s a converter out there that would take a HD-SDI in, as well as a LTC in, and an SDI out.
We currently have video feeds with no timecode embedded and was trying to loop through a feed of timecode which we can feed from a BNC.
I’m also seeing if it’s possible to make too! I know it is a thing that can happen considering Atomos Shoguns can feed in and LTC. I just need that without the screen.
If i fed to BNCs (a T Bar) into one out would that work? Is video and timecode able to be merged or would it be read as two feed signals?

You definitely can't use a BNC T do combine the signals like that, even worse, the input video wouldn't work at all. You can make it but not just by soldering a few components together; it will take some form of processing. Just to confirm, you have an analog LTC input that you want embedded into the HANC (RP188/ST12-2) on the HD-SDI, right?

ATOMOS has a LTC converter that inserts if into an SDI signal for around $90 from B&H.

It is quite possible to make, but think FPGA with 3 Gig SERDES (so probably a modest Kintex 7 or something similar) with a couple of SDI line IO parts (TI) and maybe a PLL from SI Labs, add some power conversion and a mess of VHDL, job done.
Maybe a few months work.
Obviously if you have LTC you can stripe that onto an audio track just using any old audio embedder, but I am guessing that does not really do it for you?
I would be a little surprised if YellowBrix or maybe Decimator Designs do not have a box that does this.
Regards, Dan.


text:
Different rate distortion curves for two videos encoded with same parameters in FFMPEG
I encoded two videos (ParkJoy and Sintel) in FFMPEG by H.264 with same parameters (GOP size, QP, frame rate, resolution etc.) and obtained rate-distortion plots (mean PSNR of Y channel vs bitrate). I am trying to understand the possible causes for the difference between those two plots; although they have the same resolution, GOP size etc.. The plots that I obtained are given in the following links, and any help would be appreciated.

The difference in the content of the two samples could explain the different performance of the codec. A given configuration of a codec might perform well for a static shot but not perform well for fast motion. At higher bit rates, the effects of codec settings are usually less noticeable.


text:
Vector layer is blurry if it's in composition
So the problem is -- I moved .ai file into sub-composition and then zoomed this composition inside of the main composition.
And now it's blurry.
I know for the vector files I can choose "Continuously Rasterize", but in my case it's not just a vector layer, it's vector layer inside of the composition.
There is a option called "Collapse Transformations", it helps and makes vector layer nice and smooth, but it ruins the puppet-animation that is inside of the comp.
What should I do?

About the only thing to do is scale up the nested comp (the one with the puppet animation in it), so that it matches the size it needs to be in the outer comp without having to zoom it.
There's a script that will do this for you, if you look at the File>Scripts> menu there should be one called scale composition.
This script basically just attaches everything in the comp to a null, resizes the comp using the comp settings, then scales the null to match. So if the script doesn't work for you you can do it manumatically.


text:
help to animate an lower thirds that's positioned by expressions
I'm new to using expressions in after effects and I've also hardly touched Java before.  However using some online tutorials and common sense, I managed to create a lower thirds title graphic yesterday, the java is used to change it's position based on how much text is written inside.  The title graphic bleeds off to the left of the screen, so when text is written on it, it moves left or right to match the length of text.  I've included the code below.
s =thisComp.layer("Header title");
x = s.sourceRectAtTime(time-s.inPoint,true).width;

subl =thisComp.layer("Sub title");
subt = subl.sourceRectAtTime(time-subl.inPoint,true).width;

text = Math.max(subt, x) -100;

max = 659.4;
m = Math.min(max, text);

[m, 871]

So with a little bit of text:

With more text:

Where I'm struggling is I want to make this into an animated motion graphic, where the graphic just slides in and out at the right time.  However, if there's less text, it's position is further out the frame and it takes longer to slide in - which means that it's out of sync with other parts of the animation.  I'm not worried about consistent speed, I just want it to appear in at the same time as it has to match other animations.  The only way I can see this happening accurately is by further encoding, where it gets a little beyond me!
I tried animating using if expressions dependant on the time function, but this didn't create a transition, the graphic jumped instantly from point to point.  I can't find anything on creating keyframes in java either so not sure the best way to do this.
Really appreciate any help to put me on the right track.

There are some built-in functions just for this purpose. You'll find them in the interpolation folder in the expression drop-down. The simplest is the linear() function:
linear(t, value1, value2)

This function interpolates in a linear fashion between value1 and value2 based on the value of t, where 0 ≤ t ≤ 1. So if t=0 the function returns value1 and if t=1 it returns value2. It can also take five parameters, in the form
linear(t, tMin, tMax, value1, value2)

in this form, instead of using the range 0-1 for t it uses the range tMin to tMax.
Along with linear() there are also ease(), easeIn() and easeOut(). These interpolate with easing - meaning the animation slows down at the beginning or end, or both.
So in your example you could add this before the last line:
startTime = inPoint; //if you want the animation to start at the start of the layer
m = ease(time-startTime, 0, animationLength, 0, m)

this will smoothly animate from the layer's in-point for animationLength seconds to the calculated position.
Oh, BTW it's Javascript not Java. They are completely different languages. As they say, Java and Javascript are similar in the same way that "car" and "carpet" are similar.

I guess everyone's been using that expression for years...  but I think that's AWESOME!  I think I've just fallen in love with AE expressions :)  Thanks a bunch, I haven't tried my original example yet but I just ran a quick test to make sure I understand how it works and I think I know how to work my motion graphic now!  thanks again!

Expressions are the most powerful part of After Effects IMHO


text:
Digital cameras see black scrolling lines when filming light from my desk lamp
Everytime I point a digital camera of some sort (webcam, phone, camcorder...) at my LED desk lamp or its light reflected off an object (only if the object is very reflective and/or near the lamp), I see some scrolling black lines that shift thickness and scrolling speed as I change white balance.
They make it impossible for me to film uboxing and other videos using my desk lamp as light source. What is the cause of this? I also noticed my ceiling-mounted LED light produces a similar pattern as well albeit with thicker lines. Finally, my bedside lamp - also LED - creates no such phenomenon.
A photo of the LED light on my desk

Cheap (to make) LED lights will flicker at twice the mains frequency. There are many ways of overcoming this in the design of lights, such as using a larger smoothing capacitor (which makes the light bulky), using a dedicated progressive LED driver IC (which turns off some of the LEDs but not all of them, so the light dims rather than going out every half cycle) or using a switched mode converter at a higher frequency (which is more complex than the more common capacitive dropper, but allows dimming - adjustable LED panels sold for use in photography will have this technology).
Put a different bulb in the lamp, such as the one that's in your bedside lamp. Generally the more expensive and branded ones will have better smoothing circuitry.

@pipe - I upvoted the post, but not because of it mentioning only cheap led lights flicker- because it just isn't true. Some expensive ones flicker...

@alex2003super you was robbed

The reason is very simple. LED's are not constantly turned on, but flicker at a very high rate, usually due to fluctuations in your powerline. Your video camera records at a fixed framerate and as such, you can see these black lines.
One way to counteract this is by not using an LED light source. But you may be able to work around this by setting a slower shutter speed (thanks to ths in the comments for this suggestion). You will likely need a tripod then though.

or by using a slower shutter speed.

Battery-powered LED lamps will work, as will high-quality mains-powered LED bulbs, and (most) transformer-powered LED light strips.

LEDs are a very fast reacting light source, far faster reacting than incandescents or even flouresecents. So if the current through the LED varies rapidly the light output will vary equally rapidly.
Cameras often have a "rolling shutter". Different parts of the frame are captured at different times. So time variation in the lighting becomes spacial variation in the image.
There are several different possible causes of rapid variation in LED drive current and hence light output.

Some very cheap LED lights just rectify the mains and feed is straight to the LEDs.
Some LED drivers use the LEDs themselves as the diodes in a switched-mode converter.
Some LED lights use pulse width modulation to adjust the brightness. Due to implementation even with the brightness control set to it's maximum value the on-time may not be quite 100%.

Personally of the three possible causes I think you are dealing with number 3. The reason I think this is that the lines are very hard edged. With mains-derived flicker I would expect to see a gradual ramp up and down. With switchmode converter derived flicker I would expect to see a sharp transition from black to full brightness followed by a gradual fade out.

Everytime I point a digital camera of some sort (webcam, phone, camcorder...) at my LED desk lamp or its light reflected off an object (only if the object is very reflective and/or near the lamp), I see some scrolling black lines that shift thickness and scrolling speed as I change white balance.
What is the cause of this?

Pulse width modulation. A common way to vary the brightness of LED lights is to turn them on and off rapidly. The duty cycle, or the percentage of time when the light is on, determines the brightness. I assume that when you say you're changing the "white balance," you mean that you're actually adjusting the lamp and not the camera. Decreasing the brightness of the lamp will result in wider black bars because the lamp spends more time off.

Finally, my bedside lamp - also LED - creates no such phenomenon.

The difference may simply be that your bedside lamp isn't dimmable, and so always runs at full brightness and, effectively, 100% duty cycle.
Another difference may be in the way your bedside lamp is powered compared to your desk and ceiling lights. High-power LEDs are typically powered with a constant current driver, which prevents too much current from flowing through the LED modules and causing them to overheat. Lower-power LEDs, like those found in strip lights or lamps that use dozens of small LEDs instead of a few large ones, can be powered with constant voltage drivers instead. In this case, a current-limiting resistor or just the combined internal resistance of a number of LEDs powered in series can limit the amount of current that flows and keep the LEDs from overheating. So, your bedside lamp might use a constant voltage driver (or even just a battery) that doesn't work by turning the light off part of the time.


text:
Video: What are I-frames and why do they affect the size of the video?
Videos usually are described by a set of parameters including: bit rate, frame rate, width & height.
But I came to realize that there are more parameters including B-frames and I frames (or I guess they are the KEY-FRAMES).
Now I noticed that they exist when I was working on a custom video capturing technique in which I have the ability to control how often they appear in terms of seconds, so they are either 1 sec away from each other or 2 sec away or 3.....
But some weird things happened when I tried to change the appearance of these frames.
First case:
When I encoded a video with (2 sec or 1 between I Frames) I got a video that doesn't seek well.
Now If I try to merge the encoded video with an equal length audio file for some reason when I seek forward or backward I see black screen before I seek to the requested frame.
Second case:
When I encoded a video with (0 sec between I frames) I got a video that seeks fine, but for some reason the size increased.
Now if I try to merge the encoded video with audio of equal length I get a video mixed with audio that works well and seeks well with no black screen on seeking.
Question:
What are I frames?
Why do they affect seek behavior?
Why do they affect the merging of video with audio?
Why do they affect the size of the video?
Thanks.


text:
how to change volume of audio at specific time in audio and add that audio to video(with audio) using ffmpeg command?
I have two below command that is works perfectly for this question but how to work with one command?
Commands:
ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \
"[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a libvorbis -ac 2 -shortest output.mp4

ffmpeg -i audio.mp3 -af "volume=150:enable='between(t,10,20)'" audiochange.mp3

Thanks in advance.

Use
ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \
"[1:a]volume=150:enable='between(t,10,20)'[1a];[0:a][1a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a libvorbis -ac 2 -shortest output.mp4


text:
Add text to first video, add audio and watermark to second video and then add crossfading to these two videos and one another video using one command?
I have four commands that is working perfectly but i want only one command to do this task.
Commands:
ffmpeg -i ' . config('medialibrary.s3.domain') . '/listing_video/intro.mp4' . ' -vf "drawtext=fontfile=' . storage_path('assets/video/FutuMd.ttf') . ': text=' . $this->listing->car->name . ': x=300: y=450: fontsize=40: fontcolor=white: enable='between(t,2,5)'" introfinal.mp4

ffmpeg -i mainvideo.mp4 -i '.config('medialibrary.s3.domain').'/listing_video/EnergyAudio.mp3'.' -filter_complex "[1:a]volume=enable='between(t,0,32)':volume=-10dB[1a];[0:a][1a]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -ac 2 -shortest mainvideooutput.mp4

ffmpeg -i mainvideooutput.mp4 -i ' . storage_path('assets/image/vcs-watermark-video.png') . ' -filter_complex "overlay=main_w-overlay_w-5:main_h-overlay_h-5" -codec:a copy mainvideofinal.mp4

ffmpeg -y -i introfinal.mp4 -i mainvideofinal.mp4  -i ' . config('medialibrary.s3.domain') . '/listing_video/outro.mp4' . ' -f lavfi -i color=black:s=1280x720:d=30 -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=5:d=1:alpha=1,setpts=PTS-STARTPTS[v0]; \
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,fade=t=out:st=31:d=1:alpha=1,setpts=PTS-STARTPTS+6/TB[v1]; \
[2:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+38/TB[v2]; \
[3][v0]overlay[over1]; \
[over1][v1]overlay[over2]; \
[over2][v2]overlay=format=yuv420[outv]; \
[0][1][2]concat=n=3:v=0:a=1[outa]" \
-vcodec libx264 -map "[outv]" -map "[outa]" '.$fileName.'

Thanks in advance!

Are all videos the same resolution?

yes, all videos are in same resolution.

@Gyan in your answer after answer command runs new video created but audio of second video is cut after some time like last 8 seconds of second video audio is mute why?

Use
ffmpeg -y -i intro.mp4 -i mainvideo.mp4 -i outro.mp4 -i EnergyAudio.mp3 \
       -i vcs-watermark-video.png \
       -filter_complex \
"[0:v]drawtext=...,fade=t=out:st=5:d=1,setpts=PTS-STARTPTS[v0]; \
 [1:v][4]overlay=W-w-5:H-h-5,fade=t=in:st=0:d=1,fade=t=out:st=31:d=1,setpts=PTS-STARTPTS[v1]; \
 [2:v]fade=t=in:st=0:d=1,setpts=PTS-STARTPTS[v2]; \
 [3:a]volume=enable='between(t,0,32)':volume=-10dB[3a];[1:a][3a]amerge=inputs=2,pan=stereo[maina]; \
 [v0][0][v1][maina][v2][2]concat=n=3:v=1:a=1[outv][outa]" \
       -vcodec libx264 -c:a aac -ac 2 -map "[outv]" -map "[outa]" '.$fileName.'

Thanks! your command is merged 3 videos but sound of second video is cut and also audio is not added in second video.

Replace amerge=inputs=2 with amix=inputs=2:duration=shortest and remove pan filter.


text:
Premiere Pro - How to pan around zoomed in Program Monitor
I can't seem to find an answer to this anyplace online.
When I zoom in on the Program Monitor window, there is no way for me to easily pan around the window:

In other Adobe programs, you hold Space and drag with a mouse or even just slide a finger along the Magic Mouse to change which area you're zoomed in on.
Is there something like this in Premiere?  It's driving me nuts having to use the scroll bars manually...

I figured it out.
Press H to switch to the Hand Tool, then you can drag the viewport around

I love that Premiere gives me job security. Once I figure stuff like this out, I take the PR oath not to share the information.    :).  Seriously though, this is so non-intuitive.  That, and to go back to non H mode, you need to press the pointer in the toolbar (instead of the hand)