text:
How to make eye pupils look directly at the camera
I have some videos with a speaker looking at the side of a camera or directly to the camera, but his or her pupils were running from side to side as speaker reads from teleprompter.
Is there any possibility to move pupils slightly to make them look exactly at the viewer?

That would be a task of compositing using something like Nuke or After-Effects. Here's how I'd tackle something like this:

Grab a frame of the person looking directly in the camera
Track the positions of the eyes ("track_left" and "track_right" as seperates)
Mask out the eyes from the still-frame and separate them into eye_left and eye_right
Link each eye to the corresponding tracking, so that it follows the original eyes.
Perhaps apply a subtle slow flickering (add curves and in the effect-opacity type in the expression "wiggle(0.5, 15)" or something in that area, using After-Effects)
When the person is looking down, try to keyframe the opacity of the eyes so the real eyes are revealed from time to time, depending on how convincing this turns out.

If the tracker doesn't stick very well you can try the mocha-tracker which comes natively with After-Effects for the latest versions. Make sure to only mask out the inner area of the eyes - don't patch out too much of the eyes and only the bare minimum to remain realistic shadows, wrinkles, etc.
I hope this works out for you - if not, please post your results and we'll see how to improve it.

Is there any automated solution?

The only automated solution I could think off would be developing a method involving deepfakes. I can help you get started on deepfakes but an application such as this would require a lot of research-time. You'd be better of spending a few days compositing if you're asking me.

I read somewhere that Apple's going to use AI to auto-correct your gaze on facetime, so it looks like you're looking into the lens, and not staring at yourself on the screen.  The implications of eye-tracking from an always-on, front-facing camera are a tad Orwellian if you consider that it'll also be possible to know which on-screen element has your attention at all times.

BTW.  The best solution is to have your teleprompter further from your talent, or to make the text as narrow or small as possible, while still being legible to the talent.

... or, in situations where you can get away with it, don't use a teleprompter.  Instead, have someone off-screen read the lines to the talent, one-by-one, and say, "repeat after me."  I like this method because it alleviates the cognitive dissonance associated with reading, and allows the talent to focus on performance.


text:
Davinci Resolve 16 split a clip in timeline and actual shrink the file
Lets pretend you add a 15 second clip onto your timeline which has a 100 MB filesize. If you only need 5 seconds of that clip you can blade edit it to that exact time. But in reality the full clip length (and size) remains as it was before. I wonder if there is a nice method to actually get rid of the 10 seconds you dont need from that clip and as a result, shrink the projects overall filesize by that cut off amount.
To split my videos, I am using another tool to create separate files. I could potentially use davinci's deliver section to split the file and save the results separately. Not a big deal, but this is a separate process and it would be nice if there is a smooth way to do exactly that while you're editing your clips on the timelie.
Have a nice day and stay healthy.
JJ

There is a way to do that.  It's in the Media Management tool, under the file menu.  It has plenty of options.  You can go clip-by-clip, do a whole timeline at once, or archive a whole project once you've finished editing it, and keep only the footage you used.  You can also add "handles" if you want, which means that Resolve will save an extra second or so (user definable) to the beginning and end of all clips, so you have wiggle room in case you need to make changes later.  There's also options for transcoding, if e.g., you wanted a smaller footprint for old projects, but it also comes in handy for generating proxy media.
A big word of caution, though:  Not all of the features in the Media Management panel work like you might expect (the automatic re-linking comes to mind).  Some of them are contingent on the TYPE of footage you're using; whether it's intra- or inter-frame.  READ THE MANUAL, and BE SURE you test your Media Management workflow, COMPLETELY before you destroy any of your media.  That is, don't just export it, and trash all of your originals before you make sure you can re-link your project.  Ideally, you should:

Use the Media Management tool to render out whatever clips/timelines/projects you want to trim.
Take the original media (but not the archived media) offline.  It can be tricky to do this if your projects aren't organized.  An easy way to be sure is to keep your original media on an external hard drive, and eject the hard drive for this step. You want to be sure that when you delete the originals, your timelines can find all of the archive material they need, without accidentally pointing at things you're about to erase.  If something in your project is living in your "Downloads" folder by mistake, it'll eventually go missing.
Re-Link your project to the archived material, and make sure everything works.  It may be years before you return to it, so you want to be sure it's in working order before you put it in cold storage.
Export a .DRP project file and save it next to your archived media.  Resolve's normal way of saving is database-driven (disk databases by default, now, but postgresql is necessary for advanced features).  It saves all of your projects together in a big file that isn't meant to be moved around, and is vulnerable to corruption.  If you're ever going to return to the project you're archiving, don't count on the database.

source: Stack Exchange

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

sort: votes


text:
How to filter out overlapping audio? Given a mixed track and one stem track, what's the best way to "subtract" the stem from the mix?
Given two audio streams, I'd like to remove the audio in one stream that also exists in another.  In this particular case the 1st stream contains everything mixed, and the 2nd stream contains just the background noise which also exists in the 1st stream.  Is there a reasonable way to go about "subtracting" this background audio track from the 1st audio track?
Ideally using ffmpeg, but open to anything.  I've naively tried inverting the background channel and mixing it with the first channel with this ffmpeg filter: aeval=val(0)|-val(1) but that doesn't work.  I assume that's because the background is mixed at a different level. (I'm also assuming they're exactly in phase)
Any other ideas?

For reference, here's ffmpeg showcqt filter on each channel side by side.  You can see how the 2nd column seems to "contain" all of the audio in the first column, plus some more.  (and mixed at different levels)

Inverting the background should work, that's exactly how a balanced audio connection works to eliminate noise, but how exact a match is your isolated background track compared to the mixed track? It's only going to fully work if it is recorded at the exact same quality, volume, etc, and the timing is precisely the same. What was the recording source for each track? How confident are you that the two sets of background audio that were recorded are identical to each other?

My guess is that the match isn't exact.  Or rather, that it is exact in the time dimension, but that the volume differs.  For context, I'm interested in doing this in general, but a particular use case I have in mind is isolating dialogue from a 5.1 surround audio.  Typically with 5.1 sound center channel (FC) contains all the dialogue, and sometime it also has the background sound at a lower volume.  That same background sound is also in the FR and FL channels (assuming no stereo differences, true most of the time).  So I'd like to subtract FR+FL from the FC to get just dialogue!

I would suggest making a new post, specifically asking for the best way to isolate dialogue from a 5.1 audio mix. In this case, I doubt the audio in other channels matches enough to invert like you tried (but worth a shot), but I suspect there are other methods available that will work better. I've seen it done somewhat successfully by filtering frequencies to remove "non-voice" sounds, but there might be other better ways of doing this.

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


text:
Scale video without keeping aspect ratio in ffmpeg
I want to make a video 'wide', so the width is increased and the height stays the same as of the input image. I use the following command: ffmpeg -i test.mp4 -vf scale="1000:200" output.mp4. It just does not work. The most interesting thing that it works with png images but not with videos.
Example: video before:
After:

Add -report and rerun. Share report.

a shot in the dark - but as far as I know, you don't need the quotation-marks when defining the scale. Instead, try: scale=1000:200

@Gyan https://pastebin.com/vm68342n

@FlorianClaaßen I tried, it did not work

@BakhanovA. Huh, was worth a try.

I found an answer: https://stackoverflow.com/questions/50346707/ffmpeg-scaling-not-working-for-video, just add sar=1

surreal... I found this question because I, too, was trying to make a "wide putin"-styled video, and had tried using scale in this way. I used "1000:300", but, wow... that's really similar

I resolved this issue by setting the attached SAR (Sample/Storage Aspect Ratio):
ffmpeg -i test.mp4 -vf scale=1000:200,setsar=1 output.mp4


text:
How much SSDs to use on computer for DaVinci Resolve Studio?
I want to build a computer for DaVinci Resolve Studio. I want to choose how much SSD to use in it.
I thought of two variants. In both variants I will not store archive files on computer on which I will work in DaVinci Resolve Studio. Only current project work files will be on computer on which I will work in DaVinci Resolve Studio. Archive files I will store in NAS or another computer with RAID.

Variant 1. On computer for DaVinci Resolve Studio one SSD: M.2, PCI-E x4, NVMe.
Two logical disks on it: disk C, disk D.
Disk C: Windows 10 Home 64-bit, applications including DaVinci Resolve Studio.
Disk D: current project work files.

Variant 2. On computer for DaVinci Resolve Studio two SSDs. Each SSD: M.2, PCI-E x4, NVMe.
First SSD. Disk C on it. On disk C: Windows 10 Home 64-bit, applications including DaVinci Resolve Studio.
Second SDD. Disk D on it. On disk D: current project work files.

What is better for DaVinci Resolve Studio's performance, stability, data safety?

"What is better for DaVinci Resolve Studio's performance, stability, data safety?"  You can optimize for both without sacrificing either.  For safety, you want an external RAID5 or RAID6, and an offsite backup.  For speed, you don't care about safety, because the only stuff you should use the speedy disk for is cache.  Where you choose to invest your dollars depends on what you do most frequently, too.  If you're a colorist, you get more use out of the render cache than an editor, who needs seamless, native decoding as much as possible, and fast proxy generation whenever its not.

@JasonConrad Thank you, Jason. "the only stuff you should use the speedy disk for is cache". Cache of DaVinci Resolve Studio?


text:
filter_script usage with ffmpeg and replacing inputs with a file

When using ffmpeg -i input1 -i input2 ... -filter_script filter_complex.txt output.mkv I can't seem to get the stream from the filter_complex.txt file to be recognized by ffmpeg. If I add -map [v], then it doesn't recognize the [v] like it would normally and says there's an unconnected output.

This is less important, but I haven't found a way to do something like ffmpeg -i inputs.txt ... to avoid the character limit yet, so if you know a way to do that, that would be nice.

Reason: I'm trying to use ffmpeg to overlay many images (~100) onto a video at various points and need to use files so I'm not going over the command line limit of 2k-8k characters in windows.

For complex graphs, it's -filter_complex_script

Use -filter_script:v for video.
Ref: https://ffmpeg.org/ffmpeg-all.html#Generic-options
-filter_script[:stream_specifier] filename (output,per-stream)

PS: I just discovered (right now), that you can also use filter_complex_script (:v not needed). -filter_complex_script seems the more advanced approach.

I found an answer that worked for me. I was trying to use the -map [v] syntax, but it turned out that wasn't necessary and I could just use the filtergraph I made as is. I did use filter_complex_script, which Gyan pointed out is the correct command, but I'm still not quite sure what the difference between the two is after looking through the documentation.


text:
How to remove green lines from adobe premiere pro 2020?
Please help. I been using premiere pro 2020 for three years and this is the first issue I ever got. I have green lines showing up on my video clips on both sides and surely weren't filmed that way in the first place. They show up in premiere but when I export them, they come out completely fine and run smoothly. Please let me know if you have any tips or answer to get rid of this green lines.

Does it look like this: https://video.stackexchange.com/questions/30602/adobe-premiere-pro-green-lines-problem ?
Have tried installing a slightly older version of the graphics driver (not the latest)?

Yes exactly like that

what is the older version graphic driver where can I find it?

Oh, since you don't know how to install a driver, you probably don't have the newest one. Maybe your driver is way too old. Sorry for the confusion, but I can't tell for sure. You need to find out what graphic card model you have and go to the manufacturer's website and download and install a driver. The best is, you first try to install the newest one. If that doesn't help, try an older one, which is 1 or 2 version numbers before that. That's as far as I can help you. If you still need help, contact Adobe support.

It's basically related to your graphics driver, if you were not getting those lines in previous versions then better you to Roll back your graphics driver to old one, or update/wait for newer version to get released, I was having the same issue I tried many things didn't work and I just left hope but after somedays I opened Adobe premier and saw there were no green lines.


text:
How to apply the same white point to multiple clips of the same take?
I shot one take with a camera that could not set white balance. I imported it into Final Cut Pro and set the white balance from a white point. I then cut the take into multiple slices and shuffled them around. I tried removing the white balance adjustment and then Final Cut Pro hung on me. How can I apply the same color correction to all slices of the same take?

I was able to save the corrections to one slice as an effect preset and apply the preset to all other clips with directions from Apple:

You apply a color correction preset as you would apply any other clip effect from the Effects browser.


text:
HLS.js player dropping frames at discontinuities in HLS stream
I have a need to play small pieces (1 or 2 seconds) of video in various orders via HLS. Think a highlights reel from a sporting match.
Several HLS players struggle with playing a stream with discontinuities between every TS segment, but HLS.js based players appear to cope OK. The one things that does happen is sometimes, but not always, a frame is dropped following a discontinuity. It seems to happen about 70% of the time that the player drop either frame 0 or frame 1 (i.e. the 1st or 2nd frame in the TS segment).
I have experimented with different TS segment lengths, different videos, different frame rates and bit rates. The problem seems pretty consistent.
To reproduce what I'm seeing (on windows 10), create a test video at 25 FPS with FFMPEG:
ffmpeg -f lavfi -i testsrc=duration=60:size=1960x1080:rate=25 -vf "drawtext=fontsize=30:fontcolor=White:fontfile='c\:\\Windows\\Fonts\\arial.ttf':text='Frame\: %{eif\:mod(n,25)\:d}':x=2:y=2:box=1: boxcolor=0x00000000@1" -b:v 1m atestsrc.mpg

Then slice the video into 1 second long TS segments:
ffmpeg -i atestsrc.mpg -force_key_frames "expr:gte(t,n_forced*1)" -strict -2 -c:a aac -c:v libx264 -f segment -segment_list_type m3u8 -segment_list_size 0 -segment_time 1.0 -segment_time_delta 0 -segment_list atest.m3u8 seg%02d.ts

The resulting output plays back just fine, until I add the #EXT-X-DISCONTINUITY tags...
The Problem:
It looks like HLS.js based video players drop frames when playing back the m3u8 with #EXT-X-DISCONTINUITY tags - example stream here.
Firstly, you can see that it plays back a 60 second video in 58 seconds. The same symptom occurs in several different HLS.js based players, such as this one.
If you play it back at 0.1 times speed you can see that it is not rendering some frames, often frame 1:

This difference in playback speed is causing me all kinds of grief in seeking to specific places in the video. Any ideas on how to address this would be much appreciated!

Looks like this might be a bug in HLS.js:
https://github.com/video-dev/hls.js/issues/2873
Hopefully this is rectified in a subsequent version.
UPDATE:
This hls.js bug has been fixed in release 0.14.1:
https://github.com/video-dev/hls.js/releases/tag/v0.14.1


text:
Edits to a Multicam Clip in Final Cut Pro do not Show Up in Timeline
I have a Multicam clip with about 8 different angles in Final Cut Pro 10.4.8, and have them automatically synced and made some manual adjustments to get all the clips to line up properly.  This worked well, and so I dragged this Multicam clip into my timeline and started making cuts.  I made several cuts among the camera angles and they all take effect as I would expect.  The Multicam clip is the only clip in my Project Timeline.
Today, I'm reviewing the Multicam clip and noticing that one angle is slightly off.  I double clicked the Multicam clip to open the editor and made the adjustment to the offending angle.  When I view it in the Multicam clip editor, everything lines up perfectly.  However, when I go back to my timeline, my edit does not take effect.  The angle is off as it was originally.  If I open a new project and drag that Multicam clip into a new project, I see the same results.  Every time I double click the Multicam clip to edit it, my fix is there and the angle is synced correctly.
Any ideas why the clips are synced in the Multicam clip editor, but in the timeline, they appear out of sync?  Many thanks in advance for help with this perplexing behavior.

As a quick idea I would try to delete the Optimized, Proxy and/or rendered media, let FCPX create all new and see if that makes a difference.
Manage render files in Final Cut Pro


text:
How to center and align things in Premiere Pro?
One thing I always face trouble with is aligning things in Premiere Pro.
In Photoshop, if you have an image you can just align it with align tools. If you want to align multiple things, you group them and align them in left, right or center etc.
I want to achieve something like that with videos.
For example these 3 clips are placed randomly with a guess that they are visually aligned. But they aren't perfect. I just adjusted them manually.

So how can I a) select those 3 clips and align them horizontally (marked by yellow)? b) Align the right most 2 clips horizontally to each other (marked by green)?
Right now all things seem aligned but I did hit and trials and it took a lot of effort.

Something like this is usually not done in Premiere, since it involves motion-graphics that are way easier done in After-Effects.
If you have to do this in Premiere though, the only way to make sure that - the two smaller pictures for example - align perfectly on their vertical axis is to take a look at their position and put in the same value for the x-axis (the first value).

Florian Claaßen got it. But in After Effects videos of high resolution (4K) run very slowly even in lowest settings, when compared to Premiere Pro. Isn't it?

There should be no difference between performance, if you have the same settings. You can drop the viewport quality to half, quarter or eighth same as with premiere, you should enable hardware acceleration and CUDA if you're using windows with Nvidia, you should assign a proper amount of RAM (16GB is generally neat), and clear the cache regularly (edit -> purge -> purge all). If you do all that, After-Effects might even be faster and more stable than the buggy Premiere.

I am using same PC for both. But I've observed for 1080p videos there are not major performance differences. But when videos have high data (4K), After Effects video play is very laggy as compared to premiere pro. There's no lag in Premiere Pro.

I recently discovered a super-easy way to align perfectly.

Set your guides (if you're not aligning to just the edge of the frame)

You can either set up your guides manually or insert a grid that you want to align to. If you are just aligning to the edges then you can skip this step.

Select the clip you want to align first in your timeline
Then Click on the program monitor
Click View > Snap to Program Monitor
Then go back to the program monitor and double click on the frame you want to move and then click and drag and it'll automatically snap to an edge
Once you set your first frame you can also use that as your new edge to snap to for your next clip

Hope this helps!

Thank you for our help! This worked out great.


text:
Can ffmpeg be used to automatically tighten video by removing duplicate frames and quiet audio simultaneously?
I am working with gameplay footage from simulation games.  Because they are simulations, even when well-optimized there are often framerate drops when the simulation becomes too computationally intensive for the hardware.  I would like to remove these duplicate frames so the final video actually plays faster during these times, and at the same time remove the quietest audio adjacent to the removed duplicate frames so the audio does not go far out of sync.  I have been able to do this in the past, but only by exporting the entire video as a series of images and the audio as a .WAV file and writing a program that compares frames and audio volumes and removes the parts I want removed and then reassembling what's left into a video.  However, this took an inordinate amount of hard drive space.  I notice however there is a filter called mpdecimate in ffmpeg, and I've been experimenting with it, but I can't quite get it to do what I want.
I've successfully used the following command to have it report which frames it believes are duplicates:
ffmpeg -i %1 -vf mpdecimate -loglevel debug -f null - 2> dupes
I then run a program I wrote which uses the list of duplicate frames to produce a shortened audio file with the correct length for a video with all those duplicated frames removed, but playing at the original framerate.  If I export the frames as image files and then use those image files and the audio together to make a video, it works.  But I can't for the life of me figure out how to get ffmpeg to create a similar video without the intermediate step of all those image files.  If I use setpts to set the framerate to what I want the new video to play at, or try to use -map to lay in my new audio, mpdecimate fails to drop any of the frames it said it was going to drop and produces a video the full length of the original instead, which of course my shortened audio does not sync with.


text:
Looking to write a DaVinci Resolve plugin
I have a pretty specific requirement for a plugin to detect stillness. I'm shooting a lot of screencasts and the shooting process leaves lots of pauses, which must be removed in the edit.
I'm a developer, so a script to detect n frames where each frame is a duplicate of the prior, would be ideal.
Can someone point me in the direction of either a scripting API, or (better yet) a plugin that does this already .. or a plugin library I can search for one?
Thanks!

The Resolve scripting API comes with DaVinci Resolve Studio.  The most platform-agnostic way of finding it is through the Resolve "help" menu, under Help->Documentation->Developer.  This will open a folder in your system browser which contains scripting examples for LUA, PYTHON, OFX, and more.  The README.txt file in the scripting folder contains a list of commonly used API functions.
User julian_b has posted pretty printed versions of this text file on the Resolve user forums, but as he warns, those versions may not be the most current. Formatted Resolve Python API Docs
Also, you'll want to get your hands on the Fusion 8 Scripting Guide and Reference Manual.pdf .  Much of Resolve's scripting power came with the acquisition of eyeon Fusion, which is now integrated within Resolve, and its constituent classes and methods are contained within a "Fusion" scriptable object.
There's an active community of Fusion users who maintain a very supportive forum with helpful scripting resources at steakunderwater.com/wesuckless.  (There's a long history behind the strange domain name, which comes from the eyeon days).  There, you'll find the Suck Less Fusion Bug Tracker, the "Scripting, Fuses, and Macros" subforum, and Reactor, a Fusion plugin package manager, which contains more helpful links to resources, as well as its own helpful scripting examples.

or (better yet) a plugin that does this already .. or a plugin library I can search for one?

Reactor is the place you'd find one already built, if one exists already.  It would also be the place to share one which you create.  When you're ready to deploy, the site admin, Secondman frequently helps new developers bundle their packages for Reactor.
While WSL and Reactor aren't "official" documentation, its volunteers are active, supportive, and passionate experts, whose guidance is invaluable, and I cannot recommend highly enough.


text:
how to change video size in Final Cut Pro
I am creating a video clip of pictures, and when I edit them in FCPX, I get on both sides a black bar. is there a way to get rid of them? it doest look that professional to have those bars.
thx!
Benji

The aspects ratio of your source material does not match the aspect ratio of your output device. That's not unprofessional, as you say it. Often it is just inevitable. Go watch a movie on any streaming platform and you surely will see black bars. Probably at the top and bottom, not the sides but it's the same problem.
Anyway, you have two options:

Crop the photos to reduce the height while keeping the same width until it matches the aspect ratio of your output device. If it's a computer monitor it will be probably 16:10 or 16:9. That means for each 16 pixel in width you need 10 or 9 pixel in height.  I recommend to do it manually for each photo. Another option is to combine several photos in one mashup or panorama if applicable.

Get another output device that has the same aspect ratio as your photos. However, I think this will be much harder.

With some cameras you can set the aspect ratio beforehand, so for the future, there is the option to shoot with your target ratio.

I understand, thx!

Just for animating from one video to another, it animated the black bars too, which 100% for sure aren’t from the picture


text:
VSDC: make transition treat the video and the background image together as a unit
I used VSDC to apply chroma key (i.e. make the green screen transparent) to a video and placed a background image on the layer below the video. Now I would like to apply a transition, such as "Page turn". Of course, I want the transition to treat the video and the background together as a unit, not each one disappear on its own (i.e. one page turn, not two page turns). How can I achieve this?


text:
How to turn video with spherical, equirectangular projection into an actual "360° video" playable with VLC?
I have a video (MP4/AVC) that is in 2:1 aspect ratio and uses equirectangular projection for a spherical video (often called "360° video").
VLC can play spherical videos since version 3.0.0. Through conversion the video in question has "lost" the required metadata to be recognized as a spherical video with equirectangular projection.
I'm not sure which and what metadata to add to the video, in order to fix the video file, such that it is correctly recognized as a spherical video.
This is what I've tried so far, but it didn't work:
ffmpeg -i input.mp4 -c copy -metadata ProjectionType=equirectangular fixed.mp4

Unfortunatelly, this didn't fix the issue.
After googling around, I was led to believe, that I may fix the issue with MP4Box off the GPAC project, however I'm not sure where to start. I was led to believe it's not just fixable with simply adding metadata, instead I'd need to change the container types?
In any event, I'd like a solution that uses ffmpeg and/or MP4Box as those tools are readily available to me.
(this question has been originally posted on unix.SE, but I had no answers or comments there, and I figured it's more in line with this than using Linux)

you can use Spatial Media Metadata Injector to fix the metadata https://github.com/google/spatial-media/releases/tag/v2.0


text:
Best way to create external alterable configuration file to be read by After Effects and Java
Background
I'm trying to make an AE animation to visualize some data. Since the raw data I'm using comes in json files and needs to be parsed and analyzed to find useful statistics, I'm using a java program to import all the json and export .csv files for After Effects. I've managed to run through this workflow once already, importing json, exporting csv, and writing AE scripts to read the data from the CSV and calculate object movements on the timeline.
However, when I went to make some changes to how the animation worked, I decided to create a config.properties file that the Java program reads to adjust some settings when creating the CSVs. My intention was that After Effects could read the same file, figure out what settings Java had been using, and parse the CSV accordingly. I figured it wasn't going to be as easy to read the file in AE as it had been in Java, but I hadn't anticipated not being able to import it. I've gotten either errors saying I need Adobe Animate CC to import a .fla file (it's not .fla and I can't imagine why I should need to download that, although I can if necessary) and just plain crashing.
I tried Googling and
At this point I thought that maybe the best course of action would be to write a short Java script that parses the config.properties file and rewrites it as a csv in the form "string",value on each line while removing all of the comments, but having to parse my own config file kinda defeats the point of writing my own config file for both programs... I also like the .properties format, allowing me to use # for comments and define constants in the form variable: 0 or variable: "abc". I didn't actually ever parse it out of the .properties file because I realized that is probably a terrible solution, and instead I came here.
TL;DR
What is the best way to create a configuration file, composed of user-readable comments, variable names, and string/numerical declarations for those variables, which can be read by my Java program and After Effects, such that I will only need to make a change to one config setting, rerun Java, and then reexport my animation to have something completely new?
Since Java is obviously more flexible here, I'm mostly interested in a good non-laggy AE solution that will ideally require minimal modification to my Java setup.
Some random notes

I found from another Stack Exchange question that it's possible to import a file from an after effects expression, but they named two major problems for me: the inability to reference that file relative to my project (the project directory will move and I'd prefer to not have to make many changes in that case) and it re-imports the file every frame, which would simply destroy my already painstakingly slow animation.
I need to be able to modify everything in the config file. While it can be assumed that once I reference a variable in the AE script that variable will always be present with the same name, its line number may shift as I add new comments and variables.
I tried changing the file to .txt, which allowed After Effects to read it (and Java has no problem with any random file extension), but I just get a list of the contents of line that I can reference individually and doesn't respond to the creation of new lines in the config file. In other words, useless.

Here's an example screenshot from my existing config.properties file. Obviously these aren't real values. I'm not that stupid. They're just examples of all the data types I'm using at the moment. Notably Java just reads all of these as strings and then I have to go tell it if it's an integer or whatnot. Since this is all a personal project I'm putting 0 effort into stopping it from breaking if I replace stuff with random unexpected data types.

I'd look into the extendscript API, After Effects' internal automation language. You could probably do the whole thing with that. http://docs.aenhancers.com/

I would look at Templater Rig to see whether this does a fair amount of what you need.
https://aescripts.com/templater/
You can also import JSON files directly into AE without conversion to CSV first:
https://helpx.adobe.com/after-effects/using/data-driven-animations.html


text:
Need help finding plugins/techniques to recreate my magic system in After Effects
This is my first time posting, but i'll try to stay concise
For the last 5 days, I've tried recreating my magic system in After Effects in order to make a guide explaining how it works. Because understanding the aestethics of my magic is important to this topic, i'll quickly talk about it:
The Logos is the art of drawing 3D objects using dots and lines. Pretty simple right? Well, here are some rules about the drawing:

First, you need to have a bunch of small, blue, semitransparent circles called Logya.
Then, you can connect the dots with blue lines, which is what allows object creation.
Every time you form a closed shape, a solid semitransparent layer forms. This lets the user create solid items like swords and shields.

In my guide i want to show off the two ways my magic system can look (a sword and a bunch of particles moving around), but i've had varying degrees of success on each. After a bit of googling, I found a plugin called Trapcode Particular that perfectly suited my needs for creating the particles and this is what i managed to create with it:

Unfortunately, i didn't have the same luck with the sword. My friend drew a sword for me to base myself, but as you'll see i wasn't able to replicate the desired effect.

I found a plugin named Plexus that excels in creating dot and line graphics, but one of the problems i found was that it lacked flexibility, seeing that i couldn't chose which lines connected to which dots or where i wanted the dots to spawn.

I created a mask and added the effect on top, but i could only 'fill' the mask's outline by creating a ton of dots and lines that i didn't want. The closest i got was creating a small trapezoid with my hands using motion tracking:

Note the semitransparent layer, the blue dots and lines that my system requires. However, there are still way too many lines for a simple trapezoid because i can't decide where the lines appear, same thing for the layers.
I thought of creating a bunch of dots and simply connecting them with lines, but i wouldn't know how to add the blue layer. That being said, i would appreciate any advice or links to techniques/plugins i could use to help me out!

I think you might be better off building the mesh for your sword using a 3D package, like Blender, Cinema 4D or Element 3D from Video CoPilot. Building hundreds of Beams can be very time consuming, and a true 3D renderer might be easier to achieve the look you're going for.

I'm not sure how far you will get with it, and it might be tedious when dealing with many vertices, but here's one method only using shapes and solids (no plugins needed):

Create a round shape (this will be your dot)
Create a second shape. We will now try to connect Dot1 and Dot2
Create a solid
Apply the "Beam" effect on the solid
Set the thickness, color and softness according to your design
Now press "p" to bring up the "position" properties for every layer
Select your solid and press "e" to bring up the effects
Open up the "beam"-effect. From here, you can use the curly pick-whip to link the starting- and end-point of the beam to the position property of Dot1 and Dot2.

If this is a viable method for you, I will try and explain how to automate the process and draw the semi-transparent solid between the vertices. I hope this helped :)


text:
Looking for a laptop with the required performances to use the Adobe premiere software please?
I want to start learning  editing, I'm looking for a laptop with the required performances to use the Adobe premiere software? Any advices please!

Welcome! Adobe publishes minimum system requirements, that should be a good starting point. Beyond that, to get you the best answer possible, you should probably narrow your question down. Are there specific components you are debating between? Is there a specific problem you are having finding a suitable laptop? What is your budget? Any additional details you can provide will be helpful.

I advise to have at least 16 GByte RAM (because the OS and other tools will require RAM too). See here for requirements: https://helpx.adobe.com/premiere-pro/system-requirements.html

You may also be interested by https://hardwarerecs.stackexchange.com/

HAdobe publish this information on their website - see this link or below: https://helpx.adobe.com/premiere-pro/system-requirements.html
It's pretty simple, personally I would use the recommended specifications as a minimum in a professional environment.  If it's for personal learning, then it's your call how much you spend, but don't get anything less than the minimum.  Enjoy!

Thank you very much  have a great day

Please mark the answer as correct if you feel it answers the question :)


text:
Do modern devices support decoding 4:4:4 pixel formats?
I am recording and distributing relatively low motion screen content (not games). Using h264, fine text often appears very blurry due to the poor subsampling with 4:2:0 and 4:2:2 pixel formats. With 4:4:4, the video content (and text) remains very sharp, but all recommendations I've been had so far are to stay away from 4:4:4 at all costs.
I am wondering if there will be any real downsides to distributing 4:4:4 content? Aside from filesize - this is a nonissue. Does anyone have any anecdotal experience to say whether most modern devices (browsers, mobile phones) can decode and play 4:4:4 content? It seems to work on my own devices, but I have a pretty small sample size. Is there a published record of what software and hardware decoders support it, or what the common issues might be if distributing content in this format?
Note: I am not distributing using any online video platforms, so , for example, downsides such as YouTube automatically re-encoding it to 4:2:0 would not be an issue. The question is really more geared towards if devices will actually be able to play 4:4:4 content native / seamlessly or if many will run into compatibility issues.

I just setup an ffmpeg server at on office and was streaming 15mb/s and that was too much for that internet connection. Once I reduced it to 2.5mb/s it started working. However, only one viewer at a time with such bit stream capability. I think that will be your main bottleneck. If you don't need realtime video, reduce the number of frames per second (i.e. 5 fps still gives you a taste of motion).

Most phones and tablets do not support 4:4:4


text:
After Effects - Keystroke to move focus to the Project Panel
Is there a keystroke / keyboard shortcut to move focus to the Project Panel?
I know CMD+0 toggles Project Panel visibility, but is there a key that when pressed can be followed by UP/DOWN arrows to keyboard navigate the contents of the Project Panel.
Many thanks

You can search for keyboard shortcuts by going to edit–>keyboard shortcuts. Searching for the project panel there only reveals the shortcut you have already mentioned. I guess that you're out of luck.

Florian I am 99% sure I found a single key that jumped focus to an already open Project Panel. Must be called something other than Show/Hide...

One way I found was to simply press cmd-0 twice, effectively closing and re-opening the project panel. Doing so puts the panel in focus.

I know. Just seems counter-intuitive to turn something OFF just to turn it ON.

That's true. Tough there is no shortcut to directly lay focus on the project-panel, so unless you're able to find some 3rd party plugin, you're stuck with this solution.


text:
Adding separate WebVTT files to FFmpeg HLS muxer
I've been experimenting with adding WebVTT subtitles to an HLS playlist, but I'm starting to ask myself if what I'm trying to do is actually possible.

My main file is containing a single video track and 4 audio tracks, both in different languages.
I also have 4 subtitle tracks in WebVTT format, one per language.

I'm resizing the file and turning it into transport segments and the HLS playlists using the HLS muxer of FFmpeg 4.2 (Version from the Fedora 32 repos). This works fine, including different variant streams for the languages. Mapping the separate vtt files into the mix doesn't seem to work. Here's what I've been trying to do:
ffmpeg -i LFS_000420_heidelberg4sprachen.mp4 \
-i LFS_000420_heidelberg4sprachen_ger.vtt \
-i LFS_000420_heidelberg4sprachen_eng.vtt \
-i LFS_000420_heidelberg4sprachen_fra.vtt \
-i LFS_000420_heidelberg4sprachen_spa.vtt \
-map v -c:v libx264 -b:v 2000k -flags +cgop -g 75 -vf scale="-2:720" \
-preset veryfast -hls_time 3 \
-map 0:a:0 -ac 2 -map 0:a:1 -ac 2 -map 0:a:2 -ac 2 -map 0:a:3 -ac 2 -map 1:s:0 -map 2:s:0 -map 3:s:0 -map 4:s:0 \
-cc_stream_map "ccgroup:cc,instreamid:CC1,language:ger ccgroup:cc,instreamid:CC2,language:eng ccgroup:cc,instreamid:CC3,language:fra ccgroup:cc,instreamid:CC4,language:spa" \
-var_stream_map "v:0,agroup:audio,ccgroup:cc a:0,agroup:audio,language:ger,ccgroup:cc a:1,agroup:audio,language:eng,ccgroup:cc a:2,agroup:audio,language:fra,ccgroup:cc a:3,agroup:audio,language:spa,ccgroup:cc" \
-hls_flags append_list -hls_playlist_type event -hls_start_number_source generic -start_number 0 \
-master_pl_name test.m3u8 -hls_segment_filename ./heidelberg/segment_%v_%03d.ts heidelberg_720_%v.m3u8

I also tried using -map 0:v and -c:0:v instead of usinst just -v, but this threw an "Invalid stream specifier" error.
The full output of ffmpeg is this:
ffmpeg version 4.2.4 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10 (GCC)
 configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsrt --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
 libavutil      56. 31.100 / 56. 31.100
 libavcodec     58. 54.100 / 58. 54.100
 libavformat    58. 29.100 / 58. 29.100
 libavdevice    58.  8.100 / 58.  8.100
 libavfilter     7. 57.100 /  7. 57.100
 libavresample   4.  0.  0 /  4.  0.  0
 libswscale      5.  5.100 /  5.  5.100
 libswresample   3.  5.100 /  3.  5.100
 libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'LFS_000420_heidelberg4sprachen.mp4':
 Metadata:
   major_brand     : isom
   minor_version   : 512
   compatible_brands: isomiso2avc1mp41
   encoder         : Lavf58.29.100
 Duration: 00:05:00.03, start: 0.000000, bitrate: 6671 kb/s
   Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 6143 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
   Metadata:
     handler_name    : Core Media Video
   Stream #0:1(ger): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
   Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
   Stream #0:3(fra): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
   Stream #0:4(spa): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
Input #1, webvtt, from 'LFS_000420_heidelberg4sprachen_ger.vtt':
 Duration: N/A, bitrate: N/A
   Stream #1:0: Subtitle: webvtt
Input #2, webvtt, from 'LFS_000420_heidelberg4sprachen_eng.vtt':
 Duration: N/A, bitrate: N/A
   Stream #2:0: Subtitle: webvtt
Input #3, webvtt, from 'LFS_000420_heidelberg4sprachen_fra.vtt':
 Duration: N/A, bitrate: N/A
   Stream #3:0: Subtitle: webvtt
Input #4, webvtt, from 'LFS_000420_heidelberg4sprachen_spa.vtt':
 Duration: N/A, bitrate: N/A
   Stream #4:0: Subtitle: webvtt
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
 Stream #0:1 -> #0:1 (aac (native) -> aac (native))
 Stream #0:2 -> #0:2 (aac (native) -> aac (native))
 Stream #0:3 -> #0:3 (aac (native) -> aac (native))
 Stream #0:4 -> #0:4 (aac (native) -> aac (native))
 Stream #1:0 -> #0:5 (webvtt (native) -> webvtt (native))
 Stream #2:0 -> #0:6 (webvtt (native) -> webvtt (native))
 Stream #3:0 -> #0:7 (webvtt (native) -> webvtt (native))
 Stream #4:0 -> #0:8 (webvtt (native) -> webvtt (native))
Press [q] to stop, [?] for help
[libx264 @ 0x560770c15700] using SAR=1/1
[libx264 @ 0x560770c15700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x560770c15700] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x560770c15700] 264 - core 159 r2999 296494a - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=75 keyint_min=7 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=2000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[hls @ 0x560770dc7240] Opening './heidelberg/segment_0_001.ts' for writing
[hls @ 0x560770dc7240] Opening './heidelberg/segment_1_001.ts' for writing
[hls @ 0x560770dc7240] Opening './heidelberg/segment_2_001.ts' for writing
[hls @ 0x560770dc7240] Opening './heidelberg/segment_3_001.ts' for writing
[hls @ 0x560770dc7240] Opening './heidelberg/segment_4_001.ts' for writing
[mpegts @ 0x560772504dc0] frame size not set
[mpegts @ 0x560772509940] frame size not set
[mpegts @ 0x56077250b680] frame size not set
[mpegts @ 0x5607725937c0] frame size not set
Output #0, hls, to 'heidelberg_720_%v.m3u8':
 Metadata:
   major_brand     : isom
   minor_version   : 512
   compatible_brands: isomiso2avc1mp41
   encoder         : Lavf58.29.100
   Stream #0:0(und): Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 25 fps, 90k tbn, 25 tbc (default)
   Metadata:
     handler_name    : Core Media Video
     encoder         : Lavc58.54.100 libx264
   Side data:
     cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 0 vbv_delay: -1
   Stream #0:1(ger): Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
     encoder         : Lavc58.54.100 aac
   Stream #0:2(eng): Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
     encoder         : Lavc58.54.100 aac
   Stream #0:3(fra): Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
     encoder         : Lavc58.54.100 aac
   Stream #0:4(spa): Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s (default)
   Metadata:
     handler_name    : Core Media Audio
     encoder         : Lavc58.54.100 aac
   Stream #0:5: Subtitle: webvtt
   Metadata:
     encoder         : Lavc58.54.100 webvtt
   Stream #0:6: Subtitle: webvtt
   Metadata:
     encoder         : Lavc58.54.100 webvtt
   Stream #0:7: Subtitle: webvtt
   Metadata:
     encoder         : Lavc58.54.100 webvtt
   Stream #0:8: Subtitle: webvtt
   Metadata:
     encoder         : Lavc58.54.100 webvtt
[hls @ 0x560770dc7240] Unable to find mapping variant stream
av_interleaved_write_frame(): Cannot allocate memory
[hls @ 0x560770dc7240] Unable to find mapping variant stream
[hls @ 0x560770dc7240] Opening 'heidelberg_720_0.m3u8.tmp' for writing
[hls @ 0x560770dc7240] Opening 'heidelberg_720_1.m3u8.tmp' for writing
[hls @ 0x560770dc7240] Opening 'heidelberg_720_2.m3u8.tmp' for writing
[hls @ 0x560770dc7240] Opening 'heidelberg_720_3.m3u8.tmp' for writing
[hls @ 0x560770dc7240] Opening 'heidelberg_720_4.m3u8.tmp' for writing
[hls @ 0x560770dc7240] Opening 'test.m3u8' for writing
Error writing trailer of heidelberg_720_%v.m3u8: Cannot allocate memory
frame=   21 fps=0.0 q=-1.0 Lsize=N/A time=00:00:21.51 bitrate=N/A speed=54.4x
video:140kB audio:65kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x560770c15700] frame I:1     Avg QP:22.34  size: 95581
[libx264 @ 0x560770c15700] frame P:5     Avg QP:27.63  size:  6597
[libx264 @ 0x560770c15700] frame B:15    Avg QP:29.47  size:   919
[libx264 @ 0x560770c15700] consecutive B-frames:  4.8%  0.0%  0.0% 95.2%
[libx264 @ 0x560770c15700] mb I  I16..4:  8.0% 28.5% 63.5%
[libx264 @ 0x560770c15700] mb P  I16..4:  0.8%  1.0%  0.1%  P16..4: 26.5% 12.6%  5.2%  0.0%  0.0%    skip:53.8%
[libx264 @ 0x560770c15700] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  7.2%  1.8%  0.1%  direct: 1.2%  skip:89.7%  L0:35.4% L1:41.8% BI:22.8%
[libx264 @ 0x560770c15700] final ratefactor: 20.21
[libx264 @ 0x560770c15700] 8x8 transform intra:30.3% inter:21.5%
[libx264 @ 0x560770c15700] coded y,uvDC,uvAC intra: 77.6% 63.8% 17.4% inter: 2.4% 1.3% 0.0%
[libx264 @ 0x560770c15700] i16 v,h,dc,p:  8% 57% 19% 16%
[libx264 @ 0x560770c15700] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  8% 48% 15%  3%  5%  2% 10%  3%  6%
[libx264 @ 0x560770c15700] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 25% 10%  7% 12%  7% 13%  5% 11%
[libx264 @ 0x560770c15700] i8c dc,h,v,p: 48% 32% 14%  6%
[libx264 @ 0x560770c15700] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x560770c15700] kb/s:1355.78
[aac @ 0x560770c2df00] Qavg: 11115.382
[aac @ 0x560770b7b440] Qavg: 19112.230
[aac @ 0x560770b7cbc0] Qavg: 44664.793
[aac @ 0x560770c34e80] Qavg: 33372.531
Conversion failed!

Three things stand out for me here:

[mpegts @ 0x560772504dc0] frame size not set - This might just be an error that's always been there but I didn't notice it until now.
[hls @ 0x560770dc7240] Unable to find mapping variant stream - This would indicate that there's something wrong with either the -var_stream_map command or that %v causes problems.
av_interleaved_write_frame(): Cannot allocate memory - I'm pretty sure that RAM is not the issue here, the system has got 16GB. I didn't look into the sources, but I presume it's an error that occured due to the previous ones.

Adding subtitles should technically work, the documentation shows examples of adding subtitles (however, these are subtitles embedded in te video file itself, which is not an option for me).
Has anyone already done what I'm trying to do or can anyone see what's wrong here?
The last resort would be just writing a script that creates a .m3u8 file for the subtitles and editing the main manifest file, but I'd be more than happy if FFmpeg could do that work for me.
Any help with this would be greatly appreciated.

did you get a solution to your question (on another platform) in the meantime?


text:
video chroma keyed background into Skype
I speak to my sons via Skype (for Win 10).  I have a new green screen, and would like to surprise them by pretending to be on a beach when we next talk.
Zoom can chroma key in a beach with waving palm tree and waves.  Skype just allows static images.
Is there a free package that would make it easy to get something like Zoom's functionality in Skype?  I'd be particularly pleased for a link to step-by-step instructions.

If there is no plugin I never heard of, the only way you could do this is by feeding an already keyed signal into skype. You could try researching if realtime keying can be emulated on a virtual webcam, otherwise you would either have to stick with zoom or buy a live-keyer like the ones from black-magic (though they are very very expensive)

thanks - it looks like OBS might be what I need: https://www.rightpoint.com/thought/2017/12/19/improving-your-video-meetings-on-skype-with-green-screens

OBS, with its virtual cam (https://obsproject.com/forum/resources/obs-virtualcam.949), work


text:
FFmpeg start slowly with multiple instance on nvidia T4 GPU

environment：

OS:Centos7
FFMPEG version: 4.2
GPU: NVIDIA Tesla T4

I have a requirement to work with multiple FFMPEG instance,command like this:
ffmpeg -y -loglevel info -hwaccel cuvid -hwaccel_output_format cuda -c:v h264_cuvid \
    -i http://xx/xxxx.mp4 \
    -c:v  h264_nvenc  -ss 0 -t 600 out.mp4

and the output like this:
ffmpeg version 4.2.git Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --enable-cuda-nvcc --enable-cuda --enable-cuvid --enable-nvenc --enable-libnpp --prefix=/snbeauty//platform/centos --pkg-config-flags=--static --extra-cflags='-I/snbeauty//platform/centos/include -I/usr/local/cuda/include/ -Werror=implicit-function-declaration -std=gnu99' --extra-ldflags='-L/snbeauty//platform/centos/lib64 -L/snbeauty//platform/centos/lib -L/usr/local/lib64 -L/usr/lib64 -L/usr/local/cuda/lib64 -L/lib64' --extra-libs='-lpthread -lm -lEGL -lGL -lpng -lYNEffect -ltracker -lcuda -lcudart' --bindir=/snbeauty//platform/centos/bin --enable-static --enable-nonfree --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-filters --enable-version3 --enable-gpl --enable-libass --enable-libfdk_aac --enable-encoder=libfdk_aac --enable-opengl --enable-filter=xiu --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libtheora --enable-libwebp --enable-frei0r --enable-openssl --enable-gray --enable-libxml2 --enable-libxvid
  libavutil      56. 42.100 / 56. 42.100
  libavcodec     58. 73.102 / 58. 73.102
  libavformat    58. 39.101 / 58. 39.101
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.100 /  7. 77.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://xxx/xxxx.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:38:52.05, start: 0.000000, bitrate: 5370 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 5245 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 119 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_cuvid) -> h264 (h264_nvenc))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.39.101
    Stream #0:0(und): Video: h264 (h264_nvenc) (Main) (avc1 / 0x31637661), cuda, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.73.102 h264_nvenc
    Side data:
      cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: N/A
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      encoder         : Lavc58.73.102 aac
frame=15000 fps=336 q=26.0 Lsize=  152462kB time=00:10:00.00 bitrate=2081.6kbits/s speed=13.4x
video:142668kB audio:9418kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.247139%
[aac @ 0x32437c0] Qavg: 168.657

real    0m45.568s
user    0m29.034s
sys 0m2.961s

is very fast
But when I try concurrent 10 processes to run this command with different input url,ffmpeg start is very slowly. Then I found FFmpeg is slowly in this step:
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_cuvid) -> h264 (h264_nvenc))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))

When the video is very short(like 0.5s or 1s), FFmpeg takes a long time to start.The actual codec takes less time than the boot time.
I would like to ask what causes this problem? (Nvidia GPU limit or FFmpeg) .And any way to solve it.
Thanks!

You are not by any chance using google colab, right? It could be since they also use the T4 gpu, which is why I'm asking..

This command is run on my pc

Hmm alright, thank you for clarifying. In that case I am afraid I cannot help


text:
Camtasia Studio video files are too big
I've been trying to export an HD video from a screen recording created with Camtasia studio, but every rendering is returning videos with 80 mb/s of bitrate, I'm setting it to 65% quality, MP4. If I change to bitrate, let's say I set 6000, the file output is way smaller, but the quality is terrible, like you can't see a thing in the video. I've even tried compression with AVI, same results. I've also tried converting the video with other software, even online software, same thing. I also decreased the quality from 65% to 33%, same bad result. I don't know why Camtasia puts so much much bitrate into a single file. I even tried exporting as WMV, again, same thing. It's a 50 seconds video, it has 850 mb of file size.

What are the dimensions of the movie?

It is 1280x983.

Change it to an even number of pixels for both dimensions, eg 1280x984

Did that as suggested, didn't work.

So I have captured the video that was previously captured, meaning that I captured the exported video, then I exported it, now I've a file that is almost twice the size as the previous one. NOT STONKS

It seems to me that the problem lies in the screen capture tool.

The filesize is determined by many factors. First, check your resolution. If you're exporting in 4k or 6k, your filesize might not be strange at all. Next, the framerate plays a big part in filesizes aswell. Check if you're exporting in 30fps (for most web-videos), 25fps (for tv) or 24fps (for cinema). It might just be that you are using something like 60 or 120fps, which bloats the file. Next up is the codec and container you are using. You mentioned trying the .avi and .mp4 container, but which codec were you using? For .mp4 files I recommend h.264 or h.265, which are the most common codecs for mp4.

The resolution is 1280x983. Using h.264 codec.

which framerate?


text:
When making a youtube video of coding tutorial, is it good to have the keyboard sounds while I'm typing?
I'm making a youtube tutorial on programming. But I'm unsure if I should keep the keyboard sound on the video or record on without it.
Does the keyboard sound, even when the sound is very low, it's good? Bad? Does it make any difference?

I presume you generally talk while typing, right? Well, when I need to focus on a human voice, any distracting sound is unwelcome. This includes keyboard typing. I do not see any benefit of such sounds when making tutorials during parts when you talk. Also, keep in mind that people with hearing aids will benefit much from a clean voice with no other sounds.
When you have scenes in the video where there is nothing to talk about but you have to type a lot, the silence might be a bit irritating. However, you could cut the boring part and skip ahead until we see the complete code block. Alternatively speed up the scene.


text:
Apple Quicktime cannot open a video that has been brightened using ffmpeg?
I changed the color level of an video ("ORIGINAL_VIDEO1.MP4") that had previously played well in Apple Quicktime. After brightening,
ffmpeg -i ORIGINAL_VIDEO1.MP4 -vf colorlevels=romin=0.4:gomin=0.4:bomin=0.4 -c:a copy BRIGHTER_VIDEO_1.MP4

BRIGHTER_VIDEO_1.MP4 can no longer be played in Quicktime and it says something about the video missing elements. All the while, VLC plays it perfectly. Is there something I am doing wrong?

Pixel data in videos is typically stored as YUV, whereas colorlevels works upon RGB format pixels, so it tells ffmpeg to convert it beforehand. After the filtering, the reverse conversion to YUV before re-encoding uses a YUV format not compatible with basic players, so one has to force conversion to a compatible format.
ffmpeg -i ORIGINAL_VIDEO1.MP4 -vf colorlevels=romin=0.4:gomin=0.4:bomin=0.4 -pix_fmt yuv420p -c:a copy BRIGHTER_VIDEO_1.MP4

Thank you! Would you be aware of any built in or other features that can increase brightness without oversaturation? colorlevels seems to be a very linear effect.

See the eq filter


text:
How to find/detect the real video resolution?
Imagine you have recorded/captured the screen at 1080p, but it was displaying a 480p video maximized to fullscreen.
The result file is technically 1080p, but it really is showing a 480p video, that is what I mean by "real resolution".
Now imagine I have a lot of these 1080p videos, having different and unknown "real resolutions", how can I find/detect these resolutions?
The goal is resize the videos to the real resolutions and not waste disk space.
(same question for FPS)

The tool that I prefer to use is ffmpeg, but i'm open to other tools/apps if they are free for personal use.

If it was recorded at 1080p, then it is a 1080p video. The "real" resolution data isn't available - you'll have to assess it subjectively.

I agree with @Gyan. There is no way to do it automatically.

Most codecs would take advantage of the redundancy caused by up-rezzing a video and would be able to reduce the file size more anyway. It would be a lot of work, and may not save you much disk space.

Resizing by a player isn't usually neighbour but bilinear or occasionally bicubic, so some redundancy but not as much as with nearest neighbour method.

If you satisfy with your video outputting on a 1080p device, the original video aspect ratio has to be 16:9; therefore, the original video has no choice to be 480p, 720p, or 1080p. The next step is the transformation, there are plenty of filters you can choose to determine it is 480p; on the other hand, choosing transforming to 720p or no transformation, stay in 1080p, depends on contours detection on white background.
As you mentioned ffmpeg and opencv, you should find such APIs easily.

I'm not sure of what brand of software might be capable of this, but I disagree with the commenters saying it's impossible to assess.
Imagine a 480p video consisting entirely of black and white pixel lines.
Assuming away compression artifacts, it'd be clear that upscaled to 1080p, the contrast edges would likely not be clean and sharp compared to a proper 1080p video made of black and white lines.  Some measurement of average contrast between pixels or peak contrast would probably let you cull what's lowest contrast versus not.  While I agree there's no way to tell what the native original resolution was, you'd be able to rank videos by contrast/detail in a way.
In short, how strongly on average one pixel differs from the next will give you a measurement of detail.


text:
Changing suffix of template in after effects
I am totally new to after effects and I make teaching videos. I want to change suffix "K" to "%" but I am having a hard time removing it from the template I have bought from an online store. I have tried to contact them through the mail but I have not received any email yet so it's getting delayed.
What I see is when I delete the value control layer they get removed but inside that layer, I am not able to see any option of changing it so there must be something inside of it.

Google Drive Link for reproducibility. I am using slide 14. Please guide me.

I don't understand the question. Where is the "suffix" you want to change?

The red layers are the text layers. If you select one and hit EE (double-tap the letter e) you should see some expressions. If one of these is for source text post that expression in your question.

@Matt See labels on points on line graph.

@stib Wow thank you so much could elaborate and write an answer so that we can close this question by a tick?

Sure, if you post the expression on the source text, I will try to fix it for you

The text labels are all controlled by a simple expression that takes the value of a slider, converts it to an integer and adds the letter "K" at the end. Even without programming skills you can see where the "k" part happens (but I put in some magic sparkles to give you a hint). Simply replace the letter "K" with "%" and you're golden.

I wrote a script that finds and replaces text in expressions. You can get it here. I'd suggest if you use it that you search and replace the whole line (x + "K"), as just replacing the letter k with % may ma%e other expressions stop wor%ing.
Also, I hope that the project you linked is just a dummy project. I doubt the client would be happy with you posting details of their presentation on the public internet without their approval. At the least it could get you fired.


text:
If I screen-capture a snapshot from a HDR movie, will the snapshot image be a HDR image?
I have a HDR movie content playing on a HDR supported PC, using software like the VLC layer. If I take a snapshot to get a png image file, will the image file include the HDR information? That is, if I compare the image file with the movie frame where it is snapshot side by side, will they look exactly the same?

Which software you are using to capture screenshot?

@Daman I am using the capture function from the VLC media player, while it is playing the HDR content.

If I take a snapshot to get a PNG image file, will the image file include the HDR information?

How do you take a snapshot? 10 bits minimum color depth of the PNG has the same effect on your HDR display.

I am using the snapshot function in VLC player, which produces png files with 24-bit color depth (8 bits for each color channel, I believe) on my PC. Does that suffice to produce the HDR effect?

Depends on whether the snapshot happens before or after down-sampling for your monitor. If the picture comes from the video file itself, I would think it would be; but if it's already been fit to your monitor and grabbed, I would expect it to be a regular non-HDR and post processed image, with values above one (for color brightness) smeared out. You might even try it once and use your preferred software to look at the color gamut of the final file, and see if it's [0-1] (standard) or HDR.


text:
how do you call the final "render" of a video
This is a silly question:
How do you call the final "render", as used in 3D jargon, of the editing of a video, if any?
I'm searching but maybe I'm not using the right words.

When an editor is finished, the edit is said to be "locked," or in "picture lock."  Best practice for file-naming, however, is to use a date string at the beginning of the file name (such as YYYYMMDD_ProjectName.mov), and to avoid descriptors like "locked" or "final." Otherwise you end up with files named, "TVCommercial_V7_final_final_forRealthistimeFinalLocked.mov".
A locked edit doesn't mean the piece is complete, either.  Usually, sound mixing, foley, and color come after the edit room.  The video an editor sends to the sound department isn't usually a high-quality render, and might actually be a low-quality "proxy" designed to conserve system resources for sound.  The editor also doesn't pass a render to the colorist; rather, he passes a project file, XML, EDL, or similar, plus an "offline" reference video.  The colorist "conforms" or "re-links" the project files to the camera originals for "finishing," using the offline reference to check for accuracy.  Once complete, the finished piece is called a "master," but other copies might be generated in tandem for "archival" purposes, and these are usually the highest quality output.

great answer! Why put the date before the project name? I've always done project_date

So it sorts alphabetically with the most recent at the top/bottom. That may or may not be a priority, and probably depends on how you structure your project folders.

If the project name is the same for all versions, then the files will sort in the same order no matter if the date is first or last. (-:

I know, @jim Mack. That was a very simple example, a least common denominator sort of thing (or is it GCF?) I actually use tokens in filenames a lot, built into template project files.  So, I might render out multiple formats at the same time, like for YT, IG, & FB, for instance, or maybe it’s a a multi pass render from C4D, destined for compositing in fusion or AE. So, the stuff in the middle usually changes, depending on the client, application, or individual use case. What almost never changes is that design is an iterative process, meaning I want quick, unmistakable access to most recent.

Also, I know that most people don’t think to put a long datestring at the beginning because, well, in a way, it’s ugly.  But when you do it consistently, because you’ve got templates and tokens to do it automatically, it actually kind of “disappears.”  When all of the files in a folder start with the same pattern of numbers, you stop seeing the numbers, but they still remain incredibly useful, and keep your work neat and organized.

And finally, on Mac OS, at least, Finder remembers your column sorting on a per-folder basis. Having a datestring at the beginning of the name makes it less likely that I forget that the files are sorted by some other criteria. And it’s more reliable than “date modified” because Finder updates that whenever you touch a file, even if you opened it and closed it without saving changes.

Yes, I’ve thought about this way too much ;-}

In the world of video editing, we don't typically use the term "render" in the same way it's used in 3D graphics. In 3D graphics, rendering refers to the process of generating the final 2D image or animation from a 3D scene.
In video editing, the equivalent of "rendering" is usually referred to as "exporting" or "finalizing" the video. When you've finished editing your video and you want to create the final, watchable version that can be shared or uploaded, you would export or render it. This process converts your edited project into a format that can be easily played on various devices or platforms.
So, to answer your question, you would call the final "render" in video editing either the "export" or the "finalizing" of the video.


text:
Saving audio while streaming video using ffmpeg
While I was checking streaming guide, I noticed that I can stream my webcam and mic using a command like the following:
ffmpeg -f dshow -i video="screen-capture-recorder":audio="Stereo Mix (IDT High Definition" \
-vcodec libx264 -preset ultrafast -tune zerolatency -r 10 -async 1 -acodec libmp3lame -ab 24k \
-ar 22050 -bsf:v h264_mp4toannexb -maxrate 750k -bufsize 3000k -f mpegts udp://192.168.5.215:48550

But wonder if I can save audio in a file while streaming video. The reason is that I want to use opencv to process video stream and then merge the result of opencv processing with the audio file. Any idea if it is possible to save audio in a file while streaming video alone?

Firstly, you should stream webcam and mic through the udp multicast address i.e. 224.1.1.1:10001.
Secondly, you execute ffmpeg -i udp://224.1.1.1:10001 out.mp3 or more options of the FFMPEG audio to do the audio extraction on another command prompt.


text:
Is there a hardware acceleration for audio encoding?
Video encoding with HW acceleration takes way less time than audio encoding. Is there a way to convert ac3 to aac faster?


text:
FFmpeg rtmp listen not working correctly: Connection Refused
Im trying to convert rtmp into an HLS stream using ffmpeg as the rtmp server. In the docs they mention that providing -listen 1 makes ffmpeg act as an rtmp server yet the behaviour is very weird.
Example's I've tried (hls part changed to mp4 for readability):
ffmpeg -listen 1 -f flv -i rtmp://localhost:1935/live/appname -c copy -f mp4
ffmpeg -listen 1 -f mpegts -i rtmp://localhost:1935/live/appname -c copy -f mp4

All give me the following error:
RTMP_Connect0, failed to connect socket. 61 (Connection refused)
rtmp://127.0.0.1:1935/live/app: Unknown error occurred

What does work for me is when I change rtmp into tcp and vice versa in OBS for a test stream; however I actually doubt its then using rtmp as its underlying protocol.
Are there certain flags I have to enable during compilation of ffmpeg? My version has librtmp enabled. I'm not entirely sure what I'm doing wrong here but it looks like ffmpeg is still going into client mode even though I specified the listen flag.
Some other details:
I have tried with different outputs as well; with no luck, different placements of listen etc.

Try to use static build of ffmpeg without librtmp. You can download it from the website, or build by yourself. I've got the same problem, but without this lib I could run ffmpeg listener. Also when I tried to stream to external rtmp host, I've got issue when streaming unexpectedly stop. As described in the end of this ticket https://trac.ffmpeg.org/ticket/7547


text:
Using water as green screen
so I had this idea but inorder to do it, I need to have water as a green screen. (Because I wanted to make the image move like water). So I was thinking of using dye to color the water and key that color out in premiere pro but its not working that well.
Is there any alternative to this. Or  even an effect in premiere or after effect that let's you move images like the flow of water?

Welcome! Water won't give you a clean key. You need the color of your background to be pretty uniform and water scatters light and rarely looks a single color, especially if moving. Also, when keyed out, the background is gone and replaced with the key signal, so if you even get a clean key, the movement of the water won't transform your key signal to map on to the peaks and valleys of the water. It will just be the flat key signal. I'm not a motion graphics expert, so I can't point you to a specific plugin, but After Effects is likely the way to go.

to make an image move like water, you want to "displace" the image.  I'm not sure what the AE effect for this is called, but in Blackmagic Fusion (free), it's called displace and uses a luminance field as input.  The caustic light pattern that you see at the bottom of a swimming pool would probably work well.  There's other ways to use "normal maps" which use RGB values, instead of just B&W luminance, but generating them is more complicated, and they don't resemble anything in the natural world, so you cant just go out and film them.

https://www.youtube.com/watch?v=l_0k_jGwW8Y
This is the light pattern im talking about

Take a look at using noise turbulence to displace the image. You can do this in after effects. There are lots of good tutorials on it. I recommend this one:

Maybe add some images so we can see what you have and what you’re going for.

You can make an image move like water by using a displacement map. This will warp the image as if the folds in the surface of the water are refracting the light as it passes through.  For better results, you'd also want a separate map for reflection and/or specularity on top of the water surface.  Here's an example in Blackmagic Fusion.  If you copy the code text here, and paste it into the Node graph of fusion, it'll show up as a working composition.  Here's what the result looks like.  Of course, you'll need to supply your own footage, but you can examine this setup to see how it works.
{
Tools = ordered() {
    MediaIn1 = MediaIn {
        ExtentSet = true,
        CustomData = {
            MediaProps = {
                MEDIA_HEIGHT = 2160,
                MEDIA_LAYERS_IN_OUT_LIST = {
                    {
                        0,
                        24
                    }
                },
                MEDIA_MARK_IN = 0,
                MEDIA_MARK_OUT = 23,
                MEDIA_NAME = "Fusion Clip 1",
                MEDIA_NUM_FRAMES = 24,
                MEDIA_NUM_LAYERS = 1,
                MEDIA_PAR = 1,
                MEDIA_SRC_FRAME_RATE = 23.976023976024,
                MEDIA_START_FRAME = 0,
                MEDIA_WIDTH = 4096
            },
        },
        Inputs = {
            GlobalOut = Input { Value = 23, },
            Layer = Input { Value = "0", },
            ClipTimeEnd = Input { Value = 23, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
        },
        ViewInfo = OperatorInfo { Pos = { 114.524, 26.8857 } },
    },
    TimeSpeed1 = TimeSpeed {
        Inputs = {
            Speed = Input { Value = 5, },
            Input = Input {
                SourceOp = "MediaIn2",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 191.735, 135.686 } },
    },
    Displace1 = Displace {
        Inputs = {
            UseGPU = Input { Value = 0, },
            Offset = Input { Value = -0.445, },
            RefractionStrength = Input { Value = 0.95, },
            LightPower = Input { Value = 3, },
            Spread = Input { Value = 1.228, },
            LightChannel = Input { Value = 5, },
            Input = Input {
                SourceOp = "MediaIn1",
                Source = "Output",
            },
            Foreground = Input {
                SourceOp = "TimeSpeed1",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 290.267, 56.7689 } },
    },
    MediaIn2 = MediaIn {
        ExtentSet = true,
        CustomData = {
            MediaProps = {
                MEDIA_FORMAT_TYPE = "QuickTime",
                MEDIA_HEIGHT = 360,
                MEDIA_MARK_IN = 0,
                MEDIA_MARK_OUT = 449,
                MEDIA_NAME = "122253798-animated-background-abstract-c.mp4",
                MEDIA_NUM_FRAMES = 450,
                MEDIA_NUM_LAYERS = 1,
                MEDIA_PAR = 1,
                MEDIA_PATH = "/Users/jasonconrad/Movies/122253798-animated-background-abstract-c.mp4",
                MEDIA_SRC_FRAME_RATE = 30,
                MEDIA_START_FRAME = 0,
                MEDIA_WIDTH = 640
            },
        },
        Inputs = {
            GlobalOut = Input { Value = 449, },
            MediaID = Input { Value = "87a9779e-8ba3-47cc-a30d-7b1cbf3b3ff2", },
            Layer = Input { Value = "", },
            ClipTimeEnd = Input { Value = 449, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
        },
        ViewInfo = OperatorInfo { Pos = { 134.151, 185.76 } },
    },
    Merge1 = Merge {
        CtrlWZoom = false,
        Inputs = {
            Background = Input {
                SourceOp = "Displace1",
                Source = "Output",
            },
            Foreground = Input {
                SourceOp = "TimeSpeed1",
                Source = "Output",
            },
            Size = Input { Value = 6.6, },
            SubtractiveAdditive = Input { Value = 0.118, },
            Gain = Input { Value = 0.15, },
            PerformDepthMerge = Input { Value = 0, },
        },
        ViewInfo = OperatorInfo { Pos = { 468.84, 64.6124 } },
    },
    MediaOut1 = MediaOut {
        Inputs = {
            Index = Input { Value = "0", },
            Input = Input {
                SourceOp = "Merge1",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 653.863, 63.2301 } },
    }
},
ActiveTool = "Merge1"

}


text:
How to record with low file size in OBS
I downloaded OBS to try to record some online lectures with low size. I tried some other software already, but the file sizes and quality were too high. I'm trying to keep the file size as low as possible. I plan to record about an 1/1.5 hours at a time of video w/ computer audio, and the resolution, frame rate, and audio quality, etc. can all be very low as I will already have handwritten notes. I'm new to OBS, so I'm wondering what settings I should change to accomplish this. All other software I've tried have huge file sizes, so I want too make the size as low as possible such that the text is still legible and the audio is still audible.

As @Aarkon mentions, it would be helpful if you specified your use case. Are you showing Powerpoint slides with lots of 12-point text on them, or are you showing diagrams you've hand-drawn? Do you expect to be on-camera, too, and if so just a small image in the corner? Or are you running some software interactively that's not a slide presentation and wanting people to see what's going on as you click and scroll? Last, do you have a target file size besides "small"? (I.e. does the service or organization you're uploading your video to have specific limits?)

I intend to use OBS with the same objective but I'm getting pretty large files as well. Aiming to get 300mb ish videos and I'm ending up with 800mb - 1gb... and lowering bitrate and resolution didn't seem to make a difference.
While I wait and continue to look for an answer with a specific setting reccomendation, I'm using VLC to try and compress the recorded files. Don't know if this is useful to you, but on VLC go to "Media", then "Convert/Save", choose your recorded video and set the file type and settings you need. Manage to get it down to at least half the original file size.
Hope someone who actually knows what they're doing come and help soon haha

I'm not sure if OBS can actually handle that, but you can always fallback to external video encoding using e.g. ffmpeg. This enables you to compress your results really hard, lowering the resolution & bitrate to your liking. Because I don't know the file size you are aiming for, I won't give you concrete parameters here, but there are plenty of tutorials online that can tell you how to play around with those values.


text:
Timelapse Android App Image Sequence
Does anyone know a good timelapse app for Android, but one which records an actual image sequence, not a compressed video? (like Hyperlapse, Framelapse, and similar apps do)
So far I have only found Camera FV-5 to have this option, however, it just refuses to work on my phone (Nokia 6.1, Android 10) and won't record a single image.

Try "Intervalometer" it works as an overlay app over your stock camera app. You can also try to do your own script with app like "Tasker".
BTW: Old version of Camera FV-5 worked too. Unfortunately they implemented a new UI, which doesn't work so well.


text:
Batch process videos from a folder to: remove audio and slow the speed to 0.5x
I have 50 videos all in the same folder and I know FFMPEG is frequently used for this type of work. I would like to learn how to navigate ffmpeg but if there are other free softwares I don't mind using those. I would prefer working in the command line to slow down videos mainly. Audio is less important but a nice to have.
Thank you for your help in advance.

Slow down and no audio command
ffmpeg -i input.mp4 \
       -filter:v "setpts=2.0*PTS" \
       -an \
       output.mkv


text:
A animated video with effects similar to Valiant Hearts
I am trying to create a 2-3 minute video with a style similar to the below Valiant Hearts video
(Starts at 1:40.

)
What is that animation called? Is it 2D or 3D? What kind of software is used to make such kind of videos?
As per the feedback from Animation Stack Exchange it uses parallax effects.
Thanks in advance.

I found the software and effect I was looking for.
The Parallax Effect - Adobe After Effects.


text:
How many I-frames are in a single shot?
I have some fundamental questions on shots and I-frames. When we apply shot detection on a video, how many I-frames will exist in a shot? How many frames exist between two I-frames? And does the shot always start with an I-frame?

It depends on the length of the shot, and the capture device and its settings. The GOP length(the length between I-frames) is not set in stone, it is one of the settings that can be adjusted when compressing video, and it can change within a shot. Perhaps you could specify what you're using to capture the video.

It's basically some movies, and I don't know the capture device. And I use FFmpeg to spli it into shots. I just realized it's more than 1s.


text:
How to edit iPhone Screencap without changing resolution
I need to do a basic cut from the middle of a screencast on an iPhone 11 Pro Max, but every method I've tried ends with the video being cropped to 16:9. How can I keep the original resolution?

what software are you using to edit?

Feels like something that should be native? the regular Photos App tools, iMovie (on iOS & Mac), & Premiere Rush

Include the software you're using, a screenshot of your export settings, etc.


text:
ffmpeg - Slow down video and loop/repeat audio
I am trying to use ffmpeg to slow down a video speed by 25% (75% speed) without changing the audio speed.
ffmpeg -i input_video.mkv -filter:v "setpts=1.3*PTS" "SlowVideo25.mp4"

On doing so, the audio finishes first and the video continues to play for some more seconds. I want to use ffmpeg to loop/repeat the audio track in this case. So when the audio finishes, it plays the audio from the beginning for the remainder of the video.
Is this do-able using ffmpeg?

since there is no loop option on the mapped stream; therefore you need 2 steps

ffmpeg -y -stream_loop 2 -i https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4 output.wav
ffmpeg -y -i output.wav -i https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4 -filter:v "setpts=1.3*PTS" -shortest output.mp4

Note: stream_loop number is the ceiling of factor


text:
Merging mp4 files and preserving subtitles
I'm in the process of digitizing my entire movie collection. For the most part, it's pretty smooth. I'm using Handbrake to put everything in mp4 format, and it's getting moved to my Plex server.
The only issue I've run into so far is when movies span multiple discs. I figure, once I'm digitizing, I should merge the two so I get a seamless viewing. The problem is, the only way I have to cleanly merge the files is a video editor (I happen to be using VSDC Free Video Editor, but I'm not married to it). The problem is that I lose subtitles. I've only had to do this once and I accepted the loss, but I'm going to hit it again later (think LoTR extended versions) and I don't want to lose them there.
Is there a way (preferably free, of course, but I'm open to all suggestions) to merge them without losing the subtitles? Or perhaps even a good way to add them back in after the fact?
Thanks!

I do that all the time.
You can use

https://github.com/mifi/lossless-cut (Open source)

SolveigMM Video Splitter (Paid)

Both can merge files and keep the tracks by default. Takes seconds/minutes depending on your system.
The only video editor (in my experience) where I could edit the video/merge and still keep the subtitles was Power Director (paid).
The problem with it is that it requires you to do extra steps in a certain order, plus it only supports SRT and might change the font/color or any other formatting.
So if you don't actually need a video editor, the other options should do the trick.

You may consider to use either

Subtitle stream of mp4, e.g. https://gist.github.com/xer-rex/913db0dcef06c0304acd1fcb3712cd04
or
Burn-in subtitle in video of mp4, e.g. https://gist.github.com/xer-rex/bc80b5fbd23d1b91bb4737439816d773


text:
Access a precomp as a CompItem not as an AV Layer
In this case, I am selecting a precomp in the timeline but the problem is that this code below returns the AVLayer object instead of a CompItem object. How can I select the layer but get it as aCompItem. I need to do this because I want to then access the layers inside the precomp.
var comp = app.project.activeItem.selectedLayers[0];
alert(comp);

Well, I found my own answer. I just needed to access the source property.
var comp = app.project.activeItem.selectedLayers[0].source;
alert(comp);


text:
Will Davinci Resolve work on Mac Book Pro 13? (integrated Iris graphics, no dedicated GPU) Did anyone manage to run it? It crashes for me on startup
Can you help me out? Will it be possible to run it on my laptop?
Also, how can I view the crashlog to better diagnose the issue (I'm new to mac, and new to Davinci Resolve).

You can save a copy of the DaVinci Resolve crash logs to your desktop by going to the Help menu and selecting "Create Diagnostic Logs on Desktop".
The DaVinci Support and Troubleshooting FAQ has a section on the subject with a few procedures to follow in case the app doesn't start. Search the page for "Logs".
I am running Resolve on a 2020 MacBook Pro 13. It works fine for checking edits on the go but I wouldn't use it as a main editing machine.


text:
After Effects Layer Properties Interaction
Just new here :)
I want to be able to do 2(-ish) things on my layers on After Effects.
(Layer 1 = l1; Layer 2 = L2; Blur amount = BA)
Increase L2’s BA whenever I increase L1’s BA. (Or the opposite, decrease BAs)
Change L2’s opacity to 0% if L2’s BA is 0 and it’s opacity to 100% if L2’s BA is >1 or <1.

Essentially I’m trying to make these individual properties interact with each other without using too much slider controls.

For the blur, just use the pick-whip to link the properties. you might want to read up on how to link properties with expressions using the pick whip.
For the opacity, you'll need some javascript. what you want to do is set the opacity of L1 to if L2 blur is 0 then 0, or else if it's not  equal to 1 then 100%.
let L2 = thisComp.layer("layer 2 name");
//use the pick whip to get the actual property name here
let blurAmt = l2.effect("Blur effect name")("Blurriness or whatever");
//set the opacity to 0 if bluriness is 0 '===' means 'exactly equal to'
if (blurAmt === 0){
    0
} else if (blurAmt != 1) { //'!=' means 'not equal to'
    100
} else {
    ???? // you haven't specified what you want the opacity to be if L2's blur is 1
}


text:
Pinnacle Studio 23 - 'JPG Noise'/White border added to .png images
Every .png image I import ends up with a slight white border. Mostly it's not that noticable, but other times it is extremely noticable.

The video is set to Widescreen (16:9) and size HD 1920x1080, every single .png file is 1920x1080px big.
I've double checked to make sure that the white border is NOT on the original .png file and only appears once imported into Pinnacle Studio.
It seems like some kind of resizing issue, however there should be no resizing happening.
I feel like there must be some general project-wide setting to fix this, but after long research, I couldn't find a solution.

Turns out the problem only existed within the editor and when exported as HD 720p video. Exporting it as HD 1080p fixed the issue in the exported video.


text:
After Effects Audio Ahead of Video in Preview and Render
I was working on my first large-ish upload for youtube, put it together quickly and didn't notice until it was complete that almost the entire video was riddled with audio desync issues. You can find that HERE
I took another look at it today, and discovered a large factor may have been the video frame rate (Windows shows the video as 60FPS but when imported into AE it shows a frame rate of 59.993) HERE  is another example of the slight premature audio with 59.993 composition even after wiping all cache and stored data, starting a new composition, etc.
All of the footage except 1 clip was recorded in the span of 2 days, but yet some clips do not (or at least not visibly) suffer from the desync issue. The Waveform is in line with the out of sync audio.
Any idea what could be the cause? Or what I can do to get the issue resolved?
PC Hardware:
i9 9900k /
32 GB RAM /
1080ti GPU
RAW Video According to Windows:
2560 x 1440 /
195kbps bit rate /
48.000khz
Imported RAW Video According to AE:
2560 x 1440 /
h.264 /
48.000khz / 32 Bit U
Composition Settings:
1920 x 1080 /
Originally 60FPS, Streamable example was corrected to 59.993
Thank you,
Nexu

I think you’ve probably identified the cause. I’ve found when using mobile phone footage (And video conference captures) both premiere and after effects can incorrectly identify frame rates. If all the footage is around 59.93-60fps, I would try transcoding it all to 60fps first using a codec suitable for editing (like ProRes), making sure it’s all in sync after transcode, then re inserting it into your project (save a new copy of your project first though).


text:
FINAL CUT audio syncing
I make videos about drums and music. I record audio separately to video.
when I align the audio with the video after the fact, I always feel final cut never gives me enough resolution in terms of aligning the two media.
Also, just the visual of the waveform doesn't give me enough information for alignment (IMO).
example of a video I produced where I feel the visuals are minutely out of sync with the audio:

Is there a function to sync audio to a clip automatically (and with 100% accuracy)?
can i raise the resolution of the timeline in final cut? if not, what other options are there for me?

record the audio separately AND on your camera.  Then in the editor, align the 2 AUDIO waveforms.  Play them back both together.  If you hear an echo then they are not exactly aligned.  After you have them aligned, then turn off the camrea audio and keep the audio you want.  Mark

IMHO your video is fine, and I didn't see a problem with the sync.
You cannot expect that FCPX is syncing 100%. No software is 100% for that matter. You, as the editor are the ultimate judge.
You can give it the best chance by having clean sound recording on-camera and off. If that is difficult I would recommend using a clapboard, then you have a better visual queue. If you want to be as accurate as technically possible, you need to use synced timecode in camera and sound mixer.
The sync in FCPX is normally fairly easy. You select video and sound in the Media Browser and in the menu 'CLip' >> 'Synchronize Clips'. A window opens and you choose a name and the option for syncing. When the sync is done you find a new clip with the name you chose. You can double clip this synced clip and adjust the sync by nudging the video.
IMHO nobody will see if the sound is a couple of subframes off. You might just see what isn't there because you had to watch the clip too often.


text:
Final cut pro export file size is huge (despite the small size of the initial video) - how can I shrink it?
I'm a complete novice at final cut. I have recorded a dnd game over zoom, it's a 2 hour video, the file saved from zoom is 756mb. I have edited it a bit (just minor stuff, add a couple of images, remove a few outtakes), and now I'm trying to export.
I'm exporting the "master file", format "computer", video codec "H.264". It shows me 11GB estimated file size. Why is it so huge? What setting can I tweak to reduce it?
Do you know why this happens in general? Why would it turn my ~750MB file into ~11GB file?

A Master file export is a multipass high-resolution export. Its meant for archiving or transcoding into other formats.
Also, your Zoom recording is probably in a format what is not natively compatible with FCPX and was transcoded into ProRes during import. ProRes is excellent for editing, saving space is not its purpose.
Depending on where you want to publish your video you should choose different export presets, what will trade size for quality or vice versa. However, I doubt you can export in the same format than the recording from Zoom, so export size might vary significant.

He literally says that he's exporting to h.264, not proRes

@stib That is correct and I offered an potential explanation why the export is significant larger than the imported file as my assumption is that it was transcoded into ProRes. I’m unsure where you find I wrote he is exporting to ProRes. With the project in presumably ProRes, exports probably can't have the same small file size. What I also added as a note.

That makes no sense. The size of the final output has nothing to do with any intermediate codecs. If you don't know the answer to the question, please don't just guess.