Premiere Pro CC - Creating an interview video with multiple camera angles (edited for clarity)
I shot my first interview style video with three cameras and separate audio track. I've got all 3 video layers synced up so they are playing together but I want to switch between which layer is the top one at markers I have set on the timeline.

What is the correct way to do this? Cut all the video clips at each marker through the whole project then delete the sections I don't want visible? Use the effects panel to change opacity to zero when not in use and 100% when I want it visible?

Or is there a way to script each marker so that the program hides the layers not in use?

Premiere Pro has a multicam-functionality which you can use. To create a new multicam-sequence, select the three clips of your three cameras in the project panel, right-click → Create Multi-Camera Source Sequence (you might also be able to do that within your existing timeline). Then, select which synchronizing method you want to use (audio works just fine most of the time).

Once you click OK, it will create a new sequence that you can insert into your timeline just like any other clip or sequence. Once you've done that, click on the screwdriver icon in the programm panel and switch from Composite Video to Multi-Camera. Then, press 0 to Toggle Multi-Cam recording (there's also a button for that hidden behind the button editor).

Once you've done all that, you can simply playback the sequence and switch between cameras while watching (either by clicking on the different views in the program panel or using the number-keys on your keyboard as shortcuts). Premiere Pro will record the the switches and insert cuts accordingly. You can also go back and change the cuts as many times as you want.

Note that this is only one possible workflow. For some other options and more a more detailed explanation, check out the corresponding manual page.


Constant streaming to a web server I have developed a desktop application that records motion from any video source - ie ip Camera, web cam (etc).

These motion 'clips' timestamps are uploaded to my server.

The Web user can log in and view these 'Time-clips'.

If they want to view any of these clips they double-click on it a request is made to a clients PC (in this scenario a very old laptop) and the images which are in jpeg format are encoded to ogg video format using ffmpeg.

Everything works well and fast.

Now, the client has complained/wants constant streaming of all the video captured from the client.

My second immediate thoughts was to have a base image on my server (or 2 - for caching)) and update the differences between 2 frames and upload and overlay the pixel changes on the base image on my server.

Now, as I have been informed before this actual process is how a video encoder works?

If that is the case I could save a lot of time using an encoder to change the base image on my server.

ffmpeg naturally comes to mind.

1). Does this sound reasonable to try to achieve?
2). Are they any pointers to what arguments I could use with ffmpeg to achieve all this?

I am very new to this fascinating subject and I am keen to learn and understand rather than copy & paste (sounds like a job interview!).

I am using C# as a programming tool but consider this is irrelevant to the initial question?

I very much welcome people's thoughts.

Thanks!

The way I've seen this done in other systems intended for CCTV is to encode every couple of frames compressed with something like MJPEG and then stream that to the client, the server component of ffmpeg, ffserver may be able to help you with that.
Of course, depending on your needs a different video codec may be more appropriate, particularly if you intend to send every frame in which case something like H.264 may be more efficient.


Stream from several android phones to pc I'd like to know if there is a way to record from several android phones at the same time (at least 2) and send the data in real-time to a computer.

I don't need to watch the recording in real-time, just to save it. The idea is to use the computer as a server, so the phones are not storing anything.

Any clue?

Thanks in advance.

You can use streaming apps for android which transmit the screen to a desktop-machine from which you can capture the image. I wouldn't recommend it though, as the aforementioned streaming will make your image-quality suffer big-time.

Let me propose a different solution:
using the cable of the phone in question, you can directly capture the image from the device. The only issue would be bringing the recordings in sync (if that's important). To fix this, you could open up an online clock for example which displays the exact time, so when stitching together the recordings in post, you'll be able to synchronize the recordings.


Is it meaningful to raise frame rate, if so what is the best option? I have a 3000 by 3000 VR video encoded in H264, the frame rate is 30fps. Now I want to raise the frame rate to 60fps, I am using this command

ffmpeg -i input.mp4 -r 60 output.mp4

My questions are:

Is it meaningful to raise the frame rate?
What is the mechanism of -r 60 in the above command? Since there are only 30 frames per second in the original video, where do those additional 30 frames come from?
Is there any better option other than the above command to 'smoothly' raise the fps?

Is it meaningful to raise the frame rate?

Usually, no. Exceptions are if you need to artificially generate slow motion using a robust tool like Twixtor.

What is the mechanism of -r 60 in the above command? Since there are only 30 frames per second in the original video, where do those additional 30 frames come from?

They are simply duplicates of existing frames. Without the use of specific filters, ffmpeg can only duplicate or drop frames when the framerate is changed.

Is there any better option other than the above command to 'smoothly' raise the fps?

ffmpeg now has a motion interpolation filter, which will generate new frames. It can also just do a regular blend if that mode is chosen.

ffmpeg -i in.mp4 -vf minterpolate=fps=60 out.mp4


DSLR chip overheating and max clip length So I shoot with my Nikon D5200 a lot, one problem that bothers me especially when shooting conferences etc is 20 minutes cap for single clip length.

I don't see any way to overcome it other than wait for new firmware or some third party hack like ML for Canons. But while looking into this issue I found numerous claims, that this max clip length cap is there to prevent camera's chip from overheating. Now that is what bothers me, I find it pretty hard to believe since I usually make just one second gap between clips and shoot like that for hours and my camera doesn't protest in any way. Wouldn't there be any additional fail-safe (like overheating alert) to prevent damage to the chip if this issue was so serious?

On the other hand I don't want to risk my camera so I would like to be sure that continuous video shooting poses no threat.

So is this chip overheating just hoax? I've also heard that this
limit is there because of tax reasons.
Or even if this overheating
    issue is real, does it create enough heat to damage the chip while
    shooting in continuous sequence of 20min clips?

(I am talking about Nikon D5200, but I guess it applies to all DSLRs, by chip I mean CMOS photosensitive chip, to be clear)

First, while sensor temperature is a real thing that can result in elevated noise levels, I'm not aware of a sensor in recent history that had a heat related shutdown (outside of harsh conditions anyway) or that could accumulate enough heat to be a threat to the chip.  Most of the non-sense out there about sensor's overheating is completely uninformed rumors or based on older sensors where heat was more of an issue.  There may be some exceptions in specific models, but they are not a major issue in runtimes or live view itself wouldn't work regardless of recording.  (Live view uses the sensor just as much or more than video recording does.)  There are three main factors that can limit record time.

The first is card speed.  If you have a memory card which is not fast enough to sustain writing at the data rate of the video you are recording, the buffer of the camera will slowly fill and when it runs out of space, there is no way for the camera to continue recording.

The second is a limitation of the FAT file system used in many digital cameras.  Video files are very large and the FAT file system used in many cameras is simple and outdated.  It has a limit of 4GB per file and when you reach that limit, the file has to end or it will become unreadable.  In the case of your D5200, this is the reason for the 20 minute cut off.  Other cameras get around this either by using exFAT (a newer card format) or simply splitting the video between files.  (One file ends and a new file begins while the camera uses it's buffer to store frames.)  The later is, for example, how the Canon 5D Mark iii deals with 4GB file size limits.

The third and largest limitation is that of import taxes that the EU imposes on "video recording devices."  Video recording devices are defined as anything that can record more than 30 minutes of video and it is a 15% tax.  Thus, most manufacturers impose a completely artificial 29 minute 59 second time limit on video recording so that the device is not a video recording device.  Some manufacturers offer different versions in Europe than the rest of the world, but most just put the limit everywhere.

Third party firmwares are often able to deal with both the second and third situation (both by file splitting methods normally), however the first situation can only be addressed by getting a new, faster memory card.


What are the default export settings when I choose to upload to YouTube in Final Cut Pro X? I'm trying to upload a video to YouTube from Final Cut Pro X. When I use the Share > YouTube option, the upload happens pretty well.

There are bugs though: it asks me for my password 10+ times, it uses defaults that are different than the ones on YouTube.com, etc.

Furthermore, I also want to have a copy of the exact exported file so I can upload on other sites too.

Because of all of these, I'd prefer to export my video into the file system, and go to YouTube.com and manually upload it there (rather than having Final Cut Pro X upload it for me automatically).

However, when I go to export the video, I'm not sure what is the best format to use when uploading to YouTube:

Presumably Final Cut Pro X already figured it out and is using the best format settings when you choose to upload to YouTube. However, it doesn't show you which settings it uses:

What settings is it using to export a video when I choose the YouTube option?

I tried doing my own investigation by uploading to YouTube and then downloading the vide, but the problem is that the downloaded video from YouTube is significantly smaller (and in a different format) than the ones you upload.

For example, when I chose to export using the following Video codecs, I got these file sizes, and these download sizes:

Source (Apple ProRes 422): Exported a .mov at 4GB. When downloaded via YouTube, it was an mp4 at 18MB.
H.264: Exported a .mov at 400MB. When downloaded via YouTube, it was an mp4 at 18MB.

Interestingly enough, when uploading to YouTube on the website, it said:

  Video / Audio quality:
  Your videos will process faster if you encode into a streamable file format. For more information, visit our Help Center.

... which shows these ideal settings:

However, even when I try to upload an H.264 encoded .mov file, it shows me this warning. Is it because it's not in .mp4 format? And if so, how do I export as .mp4 format?

I'm not 100% sure this is the correct settings, but it does seem to be closer to the real thing since YouTube no longer shows the warning when you use these settings.

They key seems to use H.264 with the .mp4 format. The way to choose mp4, is to change the Format from Video and Audio (.mov), to Computer (.mp4):

This uploads cleanly to YouTube with no warnings, and also produces a video that is half the size of the .mov file (200MB instead of 400MB).

If you find yourself wanting to use this solution many times, you might as well create a new destination, Prepare for YouTube:

Note that the resolution settings are not 16:9 in the last screenshot (i.e. they are 4096 x 2160 instead of what is ideal on YouTube for 4K: 3840 x 2160). This means you'll need to manually choose this setting each time in the share screen.

Note: When you try to download the video on YouTube, you might expect it to download the original mp4 you uploaded (200MB), but you'll find that the video that is downloaded is much smaller (18MB). You can therefore not use YouTube as a way to backup your exported mp4. You should still store it on some other medium or service.


How to fix a 24fps shot that looks jerky when rendered at 30fps frame rate? I accidentally shot one scene at 24fps instead of the 30fps I intended.  I want to render it at 30fps (to fit the rest of the video), but the render from Premiere looks choppy, regardless of whether I use Frame Blending or not.  I know this is expected, especially since I shot at 1/60 shutter speed, but are there any effects / settings I can apply to smooth things out?  Blur perhaps?

For what it's worth, it's a moving shot of some dancing, so both the subject and the camera are moving throughout.

Thanks!

If you change the frame rate of everything to 60fps you'll get an even frame blend every 2.5 (60fps) frames.  If you change the frame rate to 120fps you can eliminate the stutter completely, as 30 fps will repeat frames 4x and 24fps will repeat frames 5x.  But few systems can play 120fps, whereas many can play 60fps (including YouTube).


Synchronise in Premier Pro Background: I've created a multi-cam sequence with three cameras in Adobe Premier Pro CC, which was working fine. I then came to add an additional camera, using CMD + Double Clicking on the Multicam Sequence, it's opened up as a sequence.

Problem: I want to synchronise the new footage against the existing master audio track. So I select both, right click and choose synchronise. However, instead of repositioning the new track, it moves the master audio track. Which obviously offsets the other three cameras.

Beyond recreating the entire MovieCam Sequence, it feels like I'm missing a button somewhere!

Thanks in anticipation!

Use In/Out points.
Put an "In" point on the audio clip, and one on each of the already-synced video clips. Those "In" points should be put on the same sync points (that is, moments that are clearly visible on all clips, say, the clap-board clapping and the sound of the clap!). Whatever sync-point you choose, make sure it's also visible on your non-synced clip.
Put an "In" point on your non-synced clip, at the sync-point that you've already marked on the synced-clips.
Choose to sync your sequence by "In" point.
The program will align the "In" points and you should have a synced sequence.


Cannot capture (HDMI) output of Graphics Card with BlackMagic UltraStudio I am trying to convert an HDMI video signal (from my computer's graphic card) to SDI using an Ultrastudio 3D from Blackmagic.

I successfully converted an HDMI signal from my Canon 5D camera, but it does not work when I send a signal from my graphics card.

What is the difference between HDMI from a camera and HDMI from my GPU?

Edit

My goal is to send GPU generated content, not a film, so there should be no HDCP problems, am I right? So far I tried to sent my GPU output considering the Ultrastudio 3D as an extended desktop.

What solved the problem:

Check your capture software settings. All settings (your monitor/capture device settings, your hardware settings and the settings in your capture software) should be correct and equal.

What can help track down similar issues:

Very likely a framerate issue. Only the 4K version of the Blackmagic Capture cards supports 60FPS and your monitor is or was probably set to 60Hz or 50Hz, though your capture card probably is only supporting 30FPS @ 1080p (assuming thats your resolution). (Edit: In this case not true, the UltraStudio (4k) does support 60fps even at 4k over SDI but if someone else has this issue, have a look at the specs of your capture card)

Assuming your are using Windows go to the resolution settings and click on advanced settings after selecting the capture card "display" and then go to the "Monitor" tab and select a lower refresh rate like 30FPS or 25FPS. Then set the same refresh rate in your capture settings.

On a Mac you can use a tool called SwitchResX to change your refreshrate or alternatively in your case simply set your capture settings to the output settings shown in the System Informations for the Capture Card "display". So same resolution and refresh rate.

If your really unlucky your Mac doesn't recognize the UltraStudio as a display or the Ultrastudio isn't sending any EDID information, though I somewhat doubt that's the case. I had this issue all the time with the 4K PCI-E capture card from Blackmagic, it always was a settings mismatch.

Also make sure that if you want to capture a video that's playing back, it isn't protected by HDCP like Jim Mack suggested.


ffmpeg - output file is twice as long as the input I'm encoding an image sequence to an .mp4 file using the following ffmpeg command:

ffmpeg -y -loglevel info -threads 0 -f lavfi -framerate 60  -i image_seq.%06d.tif -r 60 -preset medium -codec:v libx265 -ar 48000 -acodec aac -shortest -strict experimental -sn -vsync 1 -pix_fmt yuv420p -b:v 7340032 -movflags +faststart output_file.mp4

The image sequence itself is 60fps but the resulting .mp4 file contains a number of frames twice as big as in the original image sequence.

I really can't see anything that's wrong with the command.. any ideas?

Thanks!

EDIT:

The command which includes several inputs:

ffmpeg -y -loglevel info -threads 0 -f lavfi -i aevalsrc=0 -framerate 60 -i image.png -start_number 000000 -apply_trc bt709 -i image_seq.%06d.tif -r 60 -preset medium -codec:v libx265 -ar 48000 -acodec aac -shortest -strict experimental -sn -vsync 1 -pix_fmt yuv420p -b:v 7340032 -movflags +faststart -map "2:0" -map "0:0" -shortest output.mp4 2>&1 | tee -a log_file.log

Assuming that's the unabridged command, I do see many puzzling things.

-threads 0 is set here for decoding the input and is set to 0 = auto. Which is the default. Removed.

-f lavfi is for supplying a filter-generated source, not for a set of image files. Removed.

-r 60 should normally be harmless here, but given the filter format and vsync later on, better to remove this confounding option.

-ar 48000 -acodec aac is for encoding audio, but no audio stream is supplied or generated, so inert here. Removed.

-shortest is needed when there are multiple streams being encoded, and you want the encoding to stop when the shortest stream ends, but there's only one stream, the image sequence, being encoded. Removed.

-strict experimental is needed if you are encoding audio using the internal AAC encoder AND your FFmpeg is older than Dec 2015. In any case, there's no audio encoding occurring. Removed.

-sn disables subtitles, but no subtitle streams are present. Removed.

-vsync 1 produces constant frame rate output but that's the default for MP4 output. Removed.

Use

ffmpeg -y -framerate 60 -i image_seq.%06d.tif
       -preset medium -c:v libx265 -b:v 7340032 -pix_fmt yuv420p
       -movflags +faststart output_file.mp4


Which export for display a loop illustration on Facebook? I've made a graph with some looping animations on After Effects.
The video is 2 sec long but has to loop.

So I've made a GIF export. It worked well... until the upload on Facebook (or Giphy) : my work become blurry and unreadable.

Properties of my export : 25 fps, 23 mo

Could someone let me know the good process to display a very short and looped video on social network ?

Giphs have the problem that they are heavily compressed most of the time. Uploading the file to Giphy or facebook might additionally re-format the file and compress it even more, as does youtube or vimeo with their files aswell. You might want to try and increase the resolution of your composition and upscaling everything. In your viewer, not a lot will change, but with a higher resolution, the gif should be a bit more readable at last. Also, try to make Text as large as possible, without blowing it out of proportion.

If none of that helps, you might want to look into other containers and formats that support high web-compression and looping, such as webm.


How to zoom into a video inside of a mask? So I am trying to make a small clip wherein I have a solid black layer masked on top of a video to give it a film bar. Now at one point I want to zoom into the video without zooming into the solid layer. You can see my screen below. I am pretty new to AE. Any idea how I can go about doing this?

You can do this by selecting every layer except the solid (your letterbox) and precomping it. Then, you can switch into your precomp and do as much zooming as you like. If you then render the composition with your precomp plus the solid layer on top, your solid will be unaffected by the keyframing going on inside the precomp.


How to create light wall of letters? I want to create the typical light wall effect, that is often seen in music videos.
But not only the wall. I want to display text letters using those flash lights.

Probably I'm missing the right keywords as I did not find a tutorial on this yet.

I'm aiming for something similar to this template:
http://videohive.net/item/lights-flashing-3/5882600?WT.ac=item_more_thumb&WT.z_author=HK_graphic

Of course I could just buy it, but I especially want to learn while creating.

So, should I create a layer mask from text, and let eg a flashlight wall footage shine through? Or could I as well create a single flashlight (or take footage), and arrange it in a way that it will form letters?

How can this be done?

I think Trapcode Form or Particular is probably the best way to do this.  It allows you to easily set up a grid of objects (in 2D or 3D).  In this case you'd make a 2D set of objects, then mask them with your text within the plugin settings.


Change project settings after footage is all cut up on Premiere Elements I've spent a couple of hours cutting and editing gopro footage, unfortunately the first file I added to the timeline was the soundtrack.
Now my project resolution and frame rate are wrong and I can't adjust it in order to just select "4k UHD" in render options using mp4 - XAVC-S because it defaults to 60fps
Two questions :

Is there a way, even hacky, to change project settings for an existing project?
If not, how can I render with same UHD xavc-s settings but just change the frame rate? It's not always letting me select even the correct resolution in 'custom'.

Any help is greatly appreciated!
Thanks

you should be able to adjust everything just from the project panel.
See this, I dropped mp3 into 'new timeline' button and got this sequence -

All you need to do is go to sequence and select desired output

You can set everything here

For me, making the MP3 file into 'New sequence' defaulted in 1920x1080 29.97 sequence, but if you have issue that it made different format and you want to skip changing scale of every individual file (I'm assuming you might have got different format, like 1280x720, although unlikely), you can just setup an adjustment file above your edit, select 'distort - > transform' from effects and adjust scale to fit to your desired resolution.


How can you automatically trim a new layer in After Effects? I know there are short cuts (Alt + ] or [) when creating a new layer in after effects that will trim the layer to either side of the Current Time Indicator.

The question is, is there a better way to create a new layer and not have to manually trim it because by default it spans the entire comp. For example, can you create a new shape layer and trim it to the current Work Area? I am specifically looking for the most efficient method for trimming new layers.

I don't think it's possible to automatically trim layers as you import them.  You can trim a comp to your work area, if you've selected a beginning and end point on your timeline (using B and N), but this isn't really going to help you.


After Effects: Make beam effect go over end/beginning The beam effect is a plugin in AE in which I can basically decide a "beginning" or "ending"-coordinate and AE will draw a line between these two coordinates, the line can be customized but that irrelevant for now.

The beam effect also has the property "length", which is a percentage that decides how long the line is. lets say length is 80%, which means the length will be 10% shorter on each side. 100% means the line fully reaches the beginning and ending coordinates.

My problem is the following: How do I make the line extend the end/beginning coordinates? The beam would then basically be a line with a two fixed points.
I might be missing something, but is this possible? I googled every possible combination of "extend beam line in ae" or "line with fixed point" but couldnt find anything relevant. Help is greatly appreciated, thanks!

You can't do it with the beam effect as it stands. But…
A workaround would be to move your start and end points further out along the line that they define. A bit of maths and an expression will do that for you. Don't worry, skip to the tl;dr section at the bottom if you are allergic to maths (Though if you do, note that that look on my face is pity, not scorn, really it is).
The maths
Two points can be thought about as defining a vector, i.e. a line with direction and magnitude. The cool thing is that you can multiply vectors by scalars (normal numbers with just a magnitude) very easily. So what you need to do is to take the vector defined by the two points, then multiply by magnitudes smaller than 0% or greater than 100% to extend the vector off to infinity and beyond.
To get the vector without the initial offset, simply subtract one point from the other. This leaves us with a single value that contains the magnitude and direction of the end point, as seen from the start point. This is basically our line. Any points on that line can be found by multiplying this vector.
Since this vector is from the starting point, once we've multiplied it we need to add back the position of the starting point, so that we're using the comp co-ordinates. So any point along the line is expressed as starting point + distance along the line * (end point - starting point)
Just to show this works, consider when the length along the line is zero. The point will be starting point + 0 * (end point - starting point) = starting point, and when the lenght along the line is 100% its co-ordinates will be starting point + 100/100 * (end point - starting point) = end point. Now any percentages smaller than 0 or greater than 100% will extend the line further.
the setup
to control this effect we need a slider that can go below 0 and above 100 for the start and the end point of the beam. Since the beam length slider won't let us do that, use an expression control slider to do the job. So apply the Effects>Expression Controls>Slider effect, and for the sake of your own sanity rename the effect to length. So that the beam will be initially visible as we set up the expression, set the slider to 100% or thereabouts.
Obviously you'll also need the Beam effect applied. Set up the position of the Starting Point and Ending point now, once we apply the expression you can still edit them using the value controls, but you have to turn the expression off to edit them visually in the comp window. Since we're using the expression to fake the length, set the Length property to 100%.

the expression
So this is where the maths rubber hits the javascript road. First we'll do the expression for the start point. alt-click the beam Starting Point stopwatch to set an expression for that property.
Start by creating variables linked to the original values (use the pick whip near the expressions editor to pick the Starting Point and Ending Point property to get the correct syntax. Your line should look like this (don't forget the ; at the end of every line. Expressions will sometimes work without them, but other times you'll get hard to trace errors):
var startPt = effect("Beam")("Starting Point");
var endPt = effect("Beam")("Ending Point");

We also need a variable linked to the length slider effect we made earlier.
var percentage = 1 - effect("length")("Slider") / 100;

We divide it by 100 because it's a percentage. You could omit this and just use a slider value of 1 to mean 100%, this just makes it a bit easier to use.
We subtract the percentage from 1 because we're applying it to the start point. When the length is 100% the starting point will be at 0 on the vector (and the end point will be at 1).
Note that the "length" bit relates to whatever you named it. If you were lazy it will just say effect("Slider Control")("Slider").

So we've got the beginning, end and percentage all defined. Now like we said, we subtract the beginning from the end, multiply that by the percentage and add it back to the beginning. In Javascript this looks like:
percentage * (endPt - startPt) + startPt

Wow, that was easy. Because you can add vectors to other vectors, and you can multiply vectors by scalars we never need to expand the components out into their individual dimensions (took me years to discover that, I'm embarrassed to say). Note that since it's the last line, where we return the value we don't need an = or var or anything—expressions just use the last line that evaluates as the value for the property.
Now for the end point we repeat the process, but we don't subtract the slider control from 1. So the line above looks like
var percentage = effect("length")("Slider") / 100;

I'll let you work out the rest of code for that yourself.
Oh, ok, stop sobbing, here's the expression for both, for your copy-pasting pleasure:
tl;dr
Starting Point property
var startPt = effect("Beam")("Starting Point");
var endPt = effect("Beam")("Ending Point");
var percentage = 1 - effect("length")("Slider") / 100;
percentage * (endPt - startPt) + startPt

Ending Point property
var startPt = effect("Beam")("Starting Point");
var endPt = effect("Beam")("Ending Point");
var percentage = effect("length")("Slider") / 100;
percentage * (endPt - startPt) + startPt

Now using the slider control you can set your length to whatever you like, and the beam will extend along the line described by the original points.


Will remote shutter releases stop and start video? I'm trying to figure out how I can remotely stop and start video from my Canon Rebel t3i.  Is this possible at all?

I know there are shutter releases that will snap off pictures, but will the same work when in video mode?

Thanks in advance!

I don't know much about physical trigger devices, so not sure if starting/stopping a video is possible with those.

However, you can use a "software" trigger that is included in the modified Magic Lantern firmware that is available for free for several Canon cameras (including the 550D).

After you install the ML firmware on an SD card you will have access to many video recording enhancements, so it might be helpful in general.
According to the manual you can trigger the start/stop of a video (or take a photo) by using the LCD sensor or the built-in microphone.
From experience I know that the audio trigger is more reliable than the LCD sensor, but it requires that you set the trigger volume threshold according to the sounds in the environment.

Here's more information on the risks of using the custom firmware, and here's
the Magic Lantern installation guide.


Are movies recorded on film? I was watching BTS of Batman V Superman and I saw this camera with the film thing on top of it. Is it actualy the place where the film is or it is something else. Are movies recorded on films still and if yes why?

Yes, many big budget features are "still" shot all or partially on film.
Here's a list of a number of movies shot on film for 2014:

Reasons vary, but many consider film to have a particular reality or consider themselves purists and apprecate the sublties they believe analog film can offer.

Here is an interesting article on why Star Wars: Force Awakens was shot on film rather than digital:
http://petapixel.com/2015/12/16/star-wars-the-force-awakens-was-shot-on-film-and-kodak-may-be-profitable-in-2016/

And here is another:
http://www.techradar.com/us/news/home-cinema/high-definition/why-has-star-wars-turned-its-back-on-digital-film--1310861

IMAX cameras shoot on 70mm film. Since many big budget features end up shown in IMAX they use IMAX cameras for all or usually parts of the film. Certain scenes in Batman V Superman were filmed on IMAX "real film" cameras.
Reference here:
http://batman-news.com/2014/11/13/batman-v-superman-dawn-justice-will-shot-imax/

About IMAX cameras here:
https://en.wikipedia.org/wiki/IMAX


Set display time of individual frames in FFmpeg I have a set of images that I extracted from a GIF animation for the purpose of enhancement (which I have done), but now that it's time to convert the still images into a video (I'm going to use webm for higher quality output) I've run into a problem. The GIF format allows individual frames to be displayed for an artificial amount of time and this specific GIF animation makes use that feature, with most frames being displayed for 125 milliseconds but some remaining on the screen for as long as 3000 milliseconds. So just generating a video with a set frame rate isn't going to work as that would break the flow of the animation; I need a way import the frame duration data from the original GIF file and encode the extracted, modified frames into a video using that data.

Is there a way to do this with FFmpeg or maybe a combination of FFprobe and FFmpeg? I ran the GIF through ffprobe -show_frames and it would seem that the information I need is pkt_duration_time which shows the duration the frame is displayed.

It took me quite a while of Googling and trial-and-error but I finally figured out how to actually do this. Thanks to Gyan for pointing me in the right direction.

I tried to do more of the process as one-liners but it always turned into a non-functional, undebuggable mess. If you think you could script this, please do so, test it, and then post it as a new answer.

Print pkt_duration_time line and save it into a file:

ffprobe -show_frames input.gif | grep pkt_duration_time= >frames.txt

Modify the line to the format that FFmpeg's concat filter requires:

sed 's/pkt_duration_time=/duration /g' frametimes.txt >frametimes.txt

Print a list of your input files (frames) located in folder/ and modify the list to be the format FFmpeg's concat filter requires:

ls --quoting-style=shell folder/ >filenames.txt && sed -i -e 's/^/file /' filenames.txt

Combine your frame-time file and filenames file to a concat file that FFmpeg accepts:

paste -d \\n filenames.txt frametimes.txt > folder/concatfile.txt

We saved the concat file to where the input files are located because otherwise FFmpeg won't accept it. One more thing before we can encode the video: the data for the last frame needs to be present in the concat file twice for some reason. I don't have a CLI for that so just copy-paste it manually.

Now we can use FFmpeg to turn the image files to an animated video with correct frame times:

cd folder/

ffmpeg -f concat -safe 0 -i concatfile.txt -pix_fmt yuv420p -c:v libvpx-vp9 -b:v 0 -cpu-used 0 -tile-columns 2 -row-mt 1 -lag-in-frames 25 -threads 16 -crf 35 ../output.webm

The -safe 0 switch is required because otherwise FFmpeg complains about unsafe file names. At least it did in my case, possibly because the file names contained square brackets.
The -pix_fmt yuv420p ensures the correct color space is used. If you omit this, a color space that isn't standard for web video will be used and in the case of VP9 the resulting file will use Profile 1 which doesn't have as wide hardware decoding support as Profile 0. You could use -profile:v 0 to make sure that this doesn't happen without you noticing.

The rest of the parameters are quality and rate control features for libvpx-vp9. Remember to at least use -b:v 0, otherwise CRF won't behave as you'd expect. Also note that setting -tile-columns and -threads manually is required, otherwise encoding is limited to a single thread.


ffmpeg drawtext text parameter expressions I am trying to write text on a video in such a way that the text "writes itself" - letter by letter.

To do this I was able to do something like this:

-vf "[in]drawtext=text='a':fontfile='/Windows/Fonts/arial.ttf'\
:enable='between(t\,1\,1.5)':x=300:y=(h)-100-th, \
drawtext=text='ab':fontfile='/Windows/Fonts/arial.ttf':enable='between(t\,1.5\,2)':\
x=300:y=(h)-100-th"

This replaces the text on screen with a new one every half a second adding a new character. ( a changes to ab ). Obviously if the texts are long than this line would be really long.

I was able to do something similar and shorter with :

-vf "[in]drawtext=fontsize=80:shadowcolor=Black:shadowx=2:shadowy=2:fontcolor=White:\
fontfile='/Windows/Fonts/arial.ttf':text='%{expr\:if(gt(t\,1.5)\,12\,1)}':\
x=300:y=(h)-100-th"

Where the text itself is an expression dependent on time. However this only works for numbers: 1 changes to 12 (ignoring the numbers after the decimal point for now).

Now the issue is that if I try to do the same expression for texts (a->ab) this fails. and I get:

  Expression 'if(gt(t,1.5),ab,a)' for the expr text expansion function is not valid.

The question is: Is it possible to have the expression return the actual text after expansion and not just numbers?.

Thanks in advance for anyone helping!

Ok, it can be done, but it's inelegant and has limitations, which make it in the end, not worthwhile. The limitation is that this only properly works with fixed-width fonts. And due to a still-unfixed-bug in ffmpeg, it will look somewhat ugly.

But here it is,

ffmpeg -i input.mp4 -lavfi "color=white:1280x120,fps=30[c]; \
[c]format=rgba, \
drawtext=fontfile=cour.ttf:fontcolor=red:fontsize=60:text='    A   AB  ABC ABCD':x=0:y=0, \
crop=144:120:min(144*trunc(2*t)\,432):0, \
colorkey=FFFFFF:0.01:1,setpts=PTS+(delay/TB)[tx]; \
[0:v][tx]overlay=576:600[out]" \
-map [out] -map 0:a -c:a copy output.mp4

The basic flow is

create an opaque canvas - I used full width as my video input and enough height to contain the text, and I used the same framerate as my video
On this canvas, draw the text once. The basic method here is to animate the crop window. So if your text is 5 characters long, then your print string is text='     1    12   123  1234 12345'. The idea is that the crop width is equal to the full string width and the crop source shifts one string width periodically, thus simulating typing, since each new cropped area contains one additional character. So, first 5 blank spaces for the 5 characters, then after the first 1 there are four spaces to pad out till a full string width is reached, then the 2nd stage text follows with 2 characters and 3 spaces, and so on. I've specified the color space of RGBA since it seemed to provide better results in the keying step further on.
Now the canvas with text on it is cropped. Width is the full string width, and I've kept the same height, but as long it doesn't cut the text, doesn't matter. The crop offset X is animated as follows: StringWidth * integer part of (time divided by period). This shifts the crop window right by one string width after every period i.e. 0.5 seconds in this case. Now, this is enclosed in a minimum function because we want the crop to stay still after all characters have been printed. So, the 2nd value is stringWidth * (no. of characters - 1). Y isn't animated since this is one line only.
The next part makes it ugly. Because of the bug, I kept the background opaque. So, now it has to be chroma keyed out. The filter looks for the BG color of white, and selects only that color (0.01) and fully blends it. I was hoping to smooth out the edges. But doesn't work very well.
The setpts allows to set a delay in seconds. The first character will appear at delay + period seconds.
Finally, we simply overlay the result on the video.


ffmpeg : Copy all the streams (including cover art) except the first video stream from one MP4 file to another I want to copy all the streams (including cover art) except the first video stream from one MP4 file to another, here is what I do :

$ time ffmpeg -hide_banner -i toto1.mp4 -map 0 -vn -c:v:1 copy -c copy toto2.mp4
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5655577ffd00] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'toto1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : LA GRACE by ISRAEL KINDOMBA
    artist          : Israel Kindomba
    comment         : Soyez édifiés par ces déclarations sur la grâce...
    date            : 20170421
    description     : http://www.youtube.com/watch?v=tt1yUlqoB-U
    encoder         : Lavf58.20.100
  Duration: 00:08:21.29, start: 0.000000, bitrate: 443 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 332 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
    Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:3(fra): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:4(spa): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:5(deu): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:6: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 480x360 [SAR 1:1 DAR 4:3], 90k tbr, 90k tbn, 90k tbc
Output #0, mp4, to 'toto2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : LA GRACE by ISRAEL KINDOMBA
    artist          : Israel Kindomba
    comment         : Soyez édifiés par ces déclarations sur la grâce...
    date            : 20170421
    description     : http://www.youtube.com/watch?v=tt1yUlqoB-U
    encoder         : Lavf58.20.100
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
    Stream #0:1(eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:2(fra): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:3(spa): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:4(deu): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:2 -> #0:1 (copy)
  Stream #0:3 -> #0:2 (copy)
  Stream #0:4 -> #0:3 (copy)
  Stream #0:5 -> #0:4 (copy)
Press [q] to stop, [?] for help
size=    6026kB time=00:08:21.10 bitrate=  98.5kbits/s speed=1.18e+03x
video:0kB audio:5873kB subtitle:44kB other streams:0kB global headers:0kB muxing overhead: 1.828688%

real    0m0.583s
user    0m0.524s
sys 0m0.060s

As you can see in the Stream mapping: the input Stream #0:6: Video: mjpeg stream has not been copied.

Can you help me ?

-map 0 will map all streams from the first input. A negative mapping can then be applied to disable an already mapped stream.

So,

ffmpeg -i toto1.mp4 -map 0 -map -0:v:0 -c copy toto2.mp4


How to Set the defaults for Render Queue in After Effects I'm using After Effects CS3 (yeah, I know it's old) and I'm rendering my composition out. When I Add to Render Queue I have to change the settings like Render Settings & Output Module every time.

Is there a way to set these once and have AE use them every time you Add to Render Queue?

I'm pretty sure it hasn't changed since CS3 (in fact It's been the same for as long as I can remember): in Edit > Templates > Render Settings >. Another way of getting to this dialogue is from the Render Settings drop-down in the render queue. At the bottom of the list of templates in the drop-down is Make Template…

Choosing that brings up the dialogue box pictured below. Up the top of the dialogue box you'll find Movie Default; set that to whatever template you want to be the default for renders. If you haven't got a template that has the settings you need then you can make one here - hit the New button, set all your settings and give it a name.  I find duplicating an existing one and modifying it a useful way to go.

Same goes for the output modules, which you get to from Edit > Templates > Output Modules, or from the Output Modules drop-down in the render queue.


Is clip or part of a clip used? Working in PremierePro CC.
70 hours of footage (shot over several months).
6 hours of finals (60 episodes in total), each done in separate Premiere project.

Problem:
Around 60 hours of footage is left unused, which can be used for another project but can not find an easy way to pull out unused clips.

I know how to use Premiere option for duplicate clips, but this option works fine only on small projects.

Is there a software that would grab all the finals and all the clips and do a comparison, and mark out clips (or part of the clips) that are left unused.

It's ready man.
Watch the tutorial that I've created:


Extract multiples images from multiples videos with ffmpeg I have a MP4 movie filmed with a GoPRO.

The GoPRO split the movie in several files (I believe because of FAT32 size limitation).

What I'm trying to do is extract some specific frames of the FULL MOVIE. I don't need all frames, but I need a list of frames

Because all files is from same movie, I "merged" all files. To do this, I created a file called gopro.txt with the following content:

file 'GOPR0940.MP4'
file 'GP010940.MP4'
file 'GP020940.MP4'
file 'GP030940.MP4'
file 'GP040940.MP4'
file 'GP050940.MP4'

So, to extract a image from a movie, I used this command:

ffmpeg -ss 00:19:00 -f concat -i gopro.txt -qscale:v 2 -vframes 1 frame%d.jpg (where 00:19:00 is the time I want).

Edit: as @Mulvya said, on a demuxed input, the "fast seek" don't work (works, but is very slow). So, I merged all videos on a single file with the following command:

ffmpeg -f concat -safe 0 -i gopro.txt -c copy full_movie.mp4

Now, suppose I have a list of times I want to extract (I don't have the frame number, only the time), like:

00:05:32
00:12:49
00:21:10
00:32:23

and so on. My list will have more than 10.000 timestamps, so, if I make a batch file with:

ffmpeg -f concat -i gopro.txt -ss 00:05:32 -vframes 1 frame00001.jpg
ffmpeg -f concat -i gopro.txt -ss 00:12:49 -vframes 1 frame00002.jpg
ffmpeg -f concat -i gopro.txt -ss 00:21:10 -vframes 1 frame00003.jpg
...
ffmpeg -f concat -i gopro.txt -ss 01:38:42 -vframes 1 frame10000.jpg

This will work, but take a really long time, because I think that ffmpeg, at each line of my batch file, will seek from beggining of the file until at desired time.

Edit: after changes proposed by @Mulvya, the extract worked very fast, and I can use the batch file without any problem.

It's possible to pass a list of timestamps to ffmpeg?

I tried with select option, like:

ffmpeg -f concat -i gopro.txt -vf select='eq(t,332)+eq(t,769)+eq(t,1270)+eq(t,1943)' -vsync 0 -vframes 4 frames%d.jpg, (https://ffmpeg.org/ffmpeg-filters.html#Timeline-editing) but got no results.

After several minutes, ffmpeg return a warning message with the following content:

Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

And I thinking that solution it's not the best, because, if I have 10000 timestamps, this will generate a huge command.

PS: I'm using Windows

After @Mulvya reply, I made the following changes:

First, I must put all in a single file.
According with the Mulvya answer, a "concat demuxed input" don't have a "fast seek", so, first I created a gopro.txt file with the following content:

file 'GOPR0940.MP4'
file 'GP010940.MP4'
file 'GP020940.MP4'
file 'GP030940.MP4'
file 'GP040940.MP4'
file 'GP050940.MP4'

Then, "merged" all MP4 files in a single file, with the following command:

ffmpeg -f concat -i gopro.txt -c copy full_movie.mp4

Source: https://trac.ffmpeg.org/wiki/Concatenate

Now, I can extract in a fast way individual frames, with the following command:

ffmpeg -ss 00:15:00 -i full_movie.mp4 -vframes 1 frame00001.jpg.

Source: https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video (i put the -ss option first, like @Mulvya said).

Initially, I want to pass a list of timestamps to ffmpeg, but now, the extract of individual frames is very fast, that I don't need anymore. A simple batch file worked good.


premiere cc: LINK audio and video tracks greyed out I have multiple audio clips and want to link them to a video clip. I first unlinked the camera audio from the video, then selected the video clips, the cam audio and the external recorded audio clips. Now the context menu entry "LINK" is greyed out. I can only relink the original audio clips to the video clip. This doesn't make any sense to me. To group clips doesn't help me either, because if I intercut the group, all parts are grouped together.

Any solutions for this?

There are at least three ways to put things together in Premiere Pro: linking, grouping, and nesting.  Linking is the lowest-level, assigning audio tracks to a single video clip.  You cannot link two video clips together, regardless of how much audio they may want to share.

Grouping allows you to treat multiple clips of audio and video as part of the same group for selection, moving, trimming, etc.  If you have a bunch of related clips (video and audio) which you want to behave as a unit, but whose relationships you still want to be able to see, use grouping.

Nesting creates a new sequence with all the audio and video clips you want to behave as if it's just a single entity.  You can change the relationships (and of course edit) within that entity, but to do so you have to open up that sequence on its own timeline.

You probably want to use either grouping or nesting, not linking for this case.


Can I import an entire folder into After Effects and/or Premiere, in such a way that newly-created files will be imported automatically? One of the most maddening things about my workflow in After Effects and Premiere is that whenever I record a new piece of footage (e.g. recording a new .mp4 in OBS) or create a new image asset (e.g. saving a new .png from Photoshop), I have to manually import that specific file into my project.
It's a given that anybody who's working in these programs is going to have the source assets for their project organized in a single, sensible folder structure on disk. For example:

myproject/myproject.prproj
myproject/footage/010_somefile.mp4
myproject/footage/020_anotherfile.mp4

Then, within myproject.prpoj, I've imported those assets in a way that mirrors their structure on disk: I make a bin called "footage", then import the video files from my footage directory into that bin.
If I record a new file called 030_yetanotherfile.mp4 and place it into my footage directory, I then have to take the extra step of manually importing it into Premiere (or After Effects, depending on where I'm working). I've already put thought and effort into how my source files are structured on disk, so it's extremely frustrating to have to waste time manually keeping my project files in sync.
Is there a way to have Premiere and/or After Effects automatically import newly-added source files? I just want to be able to import a folder and have the program automatically pick up changes from disk, as opposed to having to manually pick individual files ad nauseum.

I think the Pro IO plugin allows you to have "live bins", so as you add a file, it appears in After Effects etc.. I haven't used it though.
https://aescripts.com/pro-io/


What are the essentials for a livestream training room? I work for a nonprofit (which rules out consultants or big packages) and I’ve been tasked with setting up the a/v for one of our large training rooms. I’ve got about a dozen events over the next year that will need to be live streamed.

I’m wondering if i could get a little guidance in what you think the essential elements of a livestream kit should be. I’m looking for something that is decent but also doesn’t require a seasoned producer to run. At least until I have staff dedicated to this, I’d be running it myself with minimal technical assistance.

Some of the decisions I’m wrestling with:

Standalone device like a tricaster vs. software (wirecast) vs. a digital A/V mixer (perhaps coupled with Wirecast)? If I go just with software, do I need two machines? What’s the benefit there?
The best way to handle 2 video feeds if I don’t go with a tricaster or a/v mixer (which have multiple video inputs). Blackmagic intensity shuttle vs Ultrastudio mini recorder vs something else?
PTZ setup (X2) or HD cameras on a soloshot or a camranger?
I’m having a tough time figuring out what kind of LED panel setup for ceiling mounting, and if that’s the way to go. I’ve got a relatively low ceiling, but I was wondering if I could have those in scoops or some sort of recessed fixtures in the drop ceiling in front of the presenter.

I’d love any thoughts you’d be willing to share. One added challenge is that each individual piece of hardware has to be under $5k. Total budget is ~$10-15k (recognizing that it is permanently installed so no need for portable gear).

Thanks in advance for any thoughts you have.

Use OBS for the streaming, it can handle multiple inputs and is better than most softwares I have used for live streaming. Might require some time on YouTube watching tutorials but once it is set up you will be good to go.
Good luck!


Exported MOV from Flash Pro with alpha channel doesn't retain transparency I have an animation I've exported from Flash Pro CS6 as a MOV file with an alpha channel (ignore stage), and I want to do some editing in AE CS6. When I go to import the MOV as Strait-Unmatted, I do get a transparent background, however when I scrub the playhead with transparency grid toggled, a black background appears behind my animation.

I've tried a number of methods found here and elsewhere on the web including keying out black with luma key, but results were undesirable. Is there a way to get rid of the black behind my animation in AE without effecting the rest of my animation? Or is there an export setting I'm missing in Flash Pro?

Seeing as this appears to be a bug, my only suggestion is to export it as a PNG sequence. At my work we always transfer from Flash to AE as a PNG sequence, as we find MOV notoriously unreliable and buggy.

If you need to retain an audio track, try exporting that separately as a WAV or MP3 and placing it on your timeline in AE.


How to use chroma key to replace design of complex object? For an upcoming shoot I need to create a classroom set, but I don't have access to the school tables I need to create the desired effect; instead, I was thinking about filming with simply IKEA tables painted in blue/with tracking markers and replacing with a 3D model. I've never tried anything like this before, nor do I have PP/AE (I mostly use Hitfilm basic and Blender, + Fusion 360 for 3D modelling (my only paid software)), but I need the actors to interact with the table, placing objects on it, etc. so I can't just superimpose the model over a blank plate.

I'm mostly trying to find the most fail-safe way over necessarily the easiest, although I don't exactly want to spend much money, hence why the chroma key solution looks appealing. The end goal is to map the model onto the real table (which is of the same shape), not to use chroma key necessarily.

I was wondering if anyone has any experience with this sort of thing, and if so, I'd like to hear any potential pitfalls or advice about full-scale object replacement of this form (maybe chroma key is not the simplest method?). Advice on lighting the complex shape sufficiently, or placement of tracking markers, is also appreciated.

What you are thinking about is a very great way to save production costs and is used in many cases on many sets. Here is what your pipeline would look like:

Shoot the footage with green tables
Track the movement of the camera (using pfTrack preferably, but after effects can do the trick too)
Importing the tracked movement into any 3D-software such as blender
modeling the table so it fits the dimensions
moving the 3D-camera using the tracked data, so the 3d-camera matches the real camera.
rendering the sequence (preferably as an image sequence, such as .exr or .tiff)
importing the 3D-asset into the compositing-program (such as After Effects)
Keying out the green table and "replacing" it with the cgi table.

These steps are requiered only if you have a moving camera. If you don't, you can scrap points 2, 3 and 5. So if you want to save effort in the post-production, you can try to lock down your camera and put some artificial movement on your footage once it's composited.

Now, the tricky part is getting the shadows and the perspective right. Make sure to pack something like a grey-ball, or something matte and something shiny, so you can hold them in the frame to have a reference for later. You might need to fake the contact-shadows of the arms and hands when they are placed on the table. All of this is manageable from inside After-Effects though, no need to fire up heavy artillery like Nuke.


How to make a vehicle number visible? Due to all the lights in the video the vehicle number is not visible. The video was captured by a CCTV camera. In the video the car comes close enough to be able to read the vehicle number if it were not for all the lights which make it completely unreadable. Not even the form of 1 letter or number can be guessed. Really nothing can be seen except light. Is there a way to edit this video so that the vehicle number becomes visible?

Depending on the fidelity of the video you can try to do a high pass filter on the video, in essence it will sharpen edges of the scene and help bring it out.

The two steps I would do:

1) De-noise it (I use the neat video plugin for after effects)

2) Run a high pass filter (photoshop has this, but not after effects).
To emulate this:
a) Create a duplicate of the video (command D)
b) Drop the tint effect to turn it into black and white
c) Add the find edges effect (only the black areas will be sharpened)
d) Drop the levels effect onto it, adjust it to to bring in more black (to sharpened more) or bring in more white, to leave out areas not to sharpen.
e) If the edges are to harsh you can always blur it to shoften or feather the sharpening effect.
f) Add an adjustment layer, drop it below the duplicate layer
g) Change mode track matte of the adjustment layer to luma inverted (it would hide the layer above when this is done automatically).
h) Add unsharpen mask effect to the adjustment layer, put it 100, radius 2, adjust as needed.

You can already see that this type of work you can tweak a lot of things.
Hopefully this gets you going in the right direction

All the best,


How to make full-screen video in Android 10 with Resolve 14? I'm relatively new to both Resolve 14 and Android 10.
I have a video on my computer and I wish to edit it in Resolve 14 so that it shows full-screen on my Android 10 phone using the Google Photos app.
The video on my computer is 1280 x 720.  I wish to view it full-screen on my Android 10 phone.  I have gone into Resolve 14 project settings and set the project resolution to 720 x 1280.  I have also cropped the video.  The video in the preview looks the right shape but on my Android phone it's really small when viewed in Google Photos app.
How can I edit the video in Resolve 14 so it plays back full-screen in Android 10 using Google Photos app?

You have to know the aspect ratio of your phone's screen. It might be for example called "18:9" which boils down to 2:1 and you have to define if you want to view it in panorama (upright/vertical) or landscape (horizontal).
Basically you look up your phone's display resolution and just divide the horizontal value by the vertical value.
Your source video is 16:9 (1.777:1), which means, in terms of the upper example, that you will have to crop it somehow to get it full-screen on your phone. But first of all you have to set up your project to match somehow your desired aspect ratio. In terms of quality the best way would be to go not only for the aspect ratio of your phone screen but as well for the native resolution which could be 2880x1440 for our example.
So one way would be, to set your timeline resolution to 2880x1440 and throw in your clip, scale (and crop) it, and export it in timeline resolution out of resolve.
The drawback for this is that your computer would have to handle this high resolution while its not really necessary because your clip is much smaller.
To avoid this you could just go for the correct aspect ratio and stay resolution-wise close to your source footage. In this case, the scaling would be handled by your phone hardware when you go to full-screen mode while you keep your file small and bandwidth usage low.
You could for example set your timeline-resolution to 1280x640, this crops your source and gives it a 2:1 aspect ratio. If you watch this on your phone it should use the whole display when playing it full-screen.


Samsung Note 9 high FPS videos won't play on Mac? (black screen) I'm trying to edit some video clips recorded on a Samsung Gallaxy Note 9, at a high FPS (60, or 120), and the mp4 files won't play on my Mac. More specifically, they play the audio, but the video just shows a black screen.

Videos recorded at 30 fps look fine, but anything at a higher FPS shows with a black screen, either when I play it with Quicktime, or if I try to import it into a video editing app like Final Cut Pro or iMovie.

Anyone have any idea if a certain video codec is required to get it to play on a Mac?

Thanks!

Try the following:

use the adobe media encoder preferably, or some other encoder to encode the file as something like prores422 or prores4444.
use a different player, like vlc, djv, etc.
Check if you have all codecs installed, for quicktime and h.264, etc.
Open the file on a different machine. If it still won't work, it's probably the file that's the root of the problem.

How big is the video-file? If it's around 3mb or something, that might indicate that there is no visual information in the file in the first place. If the file is moderately big, the problem might be with the player and/or the codecs on your machine.


Motion design liquid simulations? Are there any free liquid simulation programs that can export to After Effects (through any built in setting or Element 3D), or any free 3rd party plug-ins for After Effects to do the same thing?

An example of a non-free program that does this is Realflow.

I think is really rare find something for free, especially something massive like proper 3D environments able to export (as you said, Realflow), instead I can suggest you Newton plug-in.


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.


Outline/stroke around transparent-background PNG in After Effects I was wondering if there is a way to expand a fill, outset a shadow or something, around a PNG with transparent background.
Right now I am using Fill + Simple Choker to expand the contour + CC Composite to bring it to the bottom, and sort of works, but I can expand the outline only a few pixels, like less than 100. Ideally, I'd like to animate it, so I can't just add the outline in Photoshop!
Is there an alternative way to do that? Thank you in advance.

Try using Layer--> Auto-trace to tracing around the alpha. It will generate a mask which you can then expand.
Or you could use a Layer Style to get a similar effect with a drop shadow or glow effect.


What is the Marketshare of the big three video editing (NLE) software packages? Cannot find a source to see market share or change for top video editing software tools used today.

The big three are:
Avid
Final Cut Pro
Adobe Premiere Pro (after effects)

I know Avid is still used by large film and movie productions.
But from the grass roots perspective, every day users, it seems to be overwhelmingly Adobe products. But this is based on my anecdotal personal perspective. Wanted something more concrete.

This kind of data is actually remarkably hard to come by.  There are a few industry reports available for thousands of dollars, but the best free resource I could find when I was searching was an informal poll that Dave Dugdale did.  It was an imperfect test by his own admission because it allowed both voting up and voting down, but it gives at least some kind of an idea of the rough market share.


How can I prevent YouTube from distorting the audio in my QuickTime video? I recorded about 20 MP4 clips: most on my Android phone with the stock camera, a couple from Facebook (downloaded from the mobile web view), and one from a Zoom session. I cropped or scaled and padded the FB and Zoom clips with ffmpeg to match the clips from my phone (vertical 1080p). I trimmed all the clips in the Mac QuickTime player, which exported .m4v. I then combined the clips into a single video with the QuickTime player, which saved .mov.
The .mov video looks and sounds as it should throughout. However, when I upload the .mov video to YouTube

the result has two audio problems:

The audio in the clips immediately before the Zoom clip and one of the FB clips is lowered in pitch. The preceding, distorted clips start at 1:08:18 and 41:01 respectively.
The audio in the Zoom clip is really distorted, almost gone, partway through, at 1:11:21.

(The clip at 6:18 doesn't seem to have been distorted by the clip from FB which follows it. The FB clip that doesn't cause the problem is from the FB Live Android app; I think the one that does is from the Acapella app, but I didn't make it so I'm not sure.)
The problems are much worse in the Zoom clip and the clip that precedes it, which are the second- and third-to-last clips in the video, so I worked around the problem by posting a video including only the last 3 clips. The audio in that video is fine throughout!?!

How can I adjust my clips so that YouTube preserves the audio in the full-length video?
Side note: I found that converting the .mov video to .mp4 with a recent ffmpeg snapshot causes the exact same problems in the result, so, if we knew what to do to get a good result with ffmpeg, that might fix the problem on YouTube.

The problem was that different clips had different frame rates. My phone records a variable frame rate around 30 fps, the Zoom video had a fixed frame rate of 25 fps, the FB live video was variable around 30 fps and the Acapella-via-FB video was fixed 30 fps. I fixed the problem by reencoding all clips to a fixed frame rate of 30 fps with ffmpeg -r 30. (I also set a minimum audio bitrate of 96 kb/s, the bitrate of most of the original footage, with -b:v 96k. ffmpeg defaulted to an audio bitrate of 69 kb/s.)
The QuickTime player refused to concatenate the frame-rate-adjusted clips, so I concatenated the clips in batches of 32 with ffmpeg's concat filter and then concatenated the result of that with ffmpeg's more efficient concat demuxer. (Concatenating in one pass with ffmpeg's concat demuxer dropped the audio entirely from some scenes; I didn't take the time to figure out why.) I was able to combine frame rate adjustment and batch concatenation into one ffmpeg command, i.e. one reencoding step.


Pinnacle 16 vs Pinnacle 16 Plus I want to buy the ordinary Pinnacle Studio 16 (not the Plus one), because it's cheaper. But I would be dissapointed if it lacked the features I need.

The questions are about the simple version:

1) Will I be able to cut a video from one exact frame to another? I need high precision based on frames. (The comparison shows that the simple version doesn't have "keyframable effects," I'm not sure what it means.)

2) Will I be able to put text in a video?

Keyframeable effects means that you can set values for the effects at various points along the timeline.  For example, you could tell a dissolve that you want to start at 100% opacity, then move to 50% opacity 5 frames in and then sit at 50% for 20 frames and then dissolve the rest of the way to 0% by another frames.  The effect will make sure it hits each value on the frame you specify and blend the values automatically to get to that value.

Without having it, you should probably still have frame accurate control, but you'll only have a begin and end point to work with, no control over how it progresses in between those points.  It's a nice feature to have, but shouldn't be critical for your described purpose.

Chromakey would seem to indicate that you can do your titles in either, but you may have to produce the title in an image editing program outside of it.  I'd guess that it will let you do static titles inside the program, but it sounds like it won't let you easily make the title move without going to the Plus version.


Preview Aspect Ratio on Camera LCD Screen I am planning on shooting a short film with my DSLR (Nikon D5300). I want the film to be in 2.39:1 (1920x800), but my camera is recording in 16:9 (1920x1080).

I wondered if there is any way to preview the final aspect ratio on the camera's LCD screen so that I better see what will be in the frame (since the cropping will be done in post-production and I don't want unhappy surprises like being to close to my actor and then half of their head gets chopped off). I thought about building some sort of box thing with the corresponding bars on top and bottom of the frame that I can put on the screen, but this would be rather bulky.

Are there any solutions to preview the aspect ratio on the camera's LCD screen?

Apply a screen protector to the LCD and use a permanent marker to draw the aspect ratio you want to frame for. Relatively inexpensive, easy to add, and completely safe for your screen. You may want to just draw a fairly thin line to mark the safe area; it can sometimes be useful to see the full frame.


Collage elements appearing one-by-one I am working on a project in Premiere Pro and one scene calls for a collage of logos to be visible one-at-a-time until the whole collage is filled. I felt that a 2-second delay was the most appropriate setting to give viewers enough time to actually identify the logos. The client did not object to this design decision, but asked me what the "industry standard" is. I admit, I have never heard of any standard for this, or even if there is one. I did the typical internet scouring - nothing other than opinions with no underlying support. So I put the question to you knowledgeable folks. Does anybody have any references or professional discussions you can share?

There's not an industry standard, but two seconds is too long for logos.  If it were a sentence of text, then maybe, depending on how long of a sentence.

A colleague of mine once told me that you should keep text on screen for long enough for you to read aloud, backwards, one word at a time.  So, if you put, "The quick brown fox jumped over the two lazy dogs" on screen, you'd read: "dogs-lazy-two-the-over-jumped-fox-brown-quick-the" aloud, and it should take about as long as the text is on screen.  I can do that in under two seconds.

Logos are specifically designed to be identifiable by a quick glance, plus, you're talking about popping up a tile, and leaving it up, correct?  If you weren't, and each logo disappeared before the next one came up, I'd say 15 frames might be too long.  If each logo is readable after the next one pops up, you might not pause at all, depending on how they're animated, how simple/complex they are, how busy your other layout is, etc -- but I'd experiment with between 1-5 frames.

People's attention spans are shorter and shorter every day.  Cuts in movies and online videos are faster and faster every day.  Your audience is very good at identifying new information quickly.  Don't sell them short.  They'll get bored and watch something else.

Also, when a client asks for a video or video element of length X, the first revision you show them should be X/Y units of time, where Y is a positive integer, which increases the less your client knows about video.  For the average person, I'd put Y at about 3.  So, the first version I show a random person should be about 1/3 the length they'd requested (It's probably smart to let them know up front, though.)  In cases where the time is fixed, like music videos, or commercials, substitute time-of-effort for video duration.


Software used to create such animations? Check the video -
https://youtu.be/uAyPXcYick0

I'd like to know which editor could I use to create such videos? I can get the flat icons, but how do I animate those? Are there presets for such animations?

You could recreate most of the stuff in that video inside Adobe After Effects, if you have all the assets on individual pictures (layers), and not merged on top of each other.

You can easily take a layer (image file) and independently change the position, rotation, opacity, size, etc. with keyframes. If you have the body parts of a character as different files, you can position them how you'd like them by dragging and dropping, and then parenting them to one specific layer, for example, the chest. Then when you change the position of the chest, the entire body moves with it.

It would also be a good idea to have the transparent versions of the flat icons, so you can add a custom background, and no whitespace overlaps with other layers.

It would be a better idea to draw any characters inside AE with the shape tools so you can modify the shape of any of the body parts.


Add Black background to a vertical video I have several vertical videos which I would like to display in the 16/9 or 4/3 format.

I would like to have the video centered and have a black Background.

I normally use Handbrake to compress my videos but did not find an option to do that.

Is there another Video compressor (open source) who allows to do that? Other wise I have to compress it with handbrake and add the background with Premiere, which takes ages.

Really would like an easier solution.

Thanks in advance for any response.

You can use ffmpeg*, a command-line tool, to do this.

Let's say your source video is 360x640, then to make it 4:3, use

ffmpeg -i input.mp4 -vf pad=854:640:247:0 -c:v libx264 -crf 20 -c:a copy output.mp4

where 854 is used because it's 4/3 of 640, and 247 places the video in the center of the padded canvas. See details for the pad filter here.

Similarly for 16:9, use

ffmpeg -i input.mp4 -vf pad=1138:640:389:0 -c:v libx264 -crf 20 -c:a copy output.mp4

where 1138 is used because it's 16/9 of 640, and 389 for centering.

The width value you specify should be an even integer, so you may have to round up/down your calculated width.

*get the latest nightly or snapshot binary for your platform.


How to join these three FFmpeg instances into one command I am transcoding one input into three different quality output, currently I am producing them by three separate commands, and I am looking to combine them in single one command using map function or something else.

here are the commands I run to produce dash content:

ffmpeg -y -i inputStream -row-mt 1 -s 1280x720 -b:v 1024k -minrate 512k -maxrate 1485k -tile-columns 2 -g 240 -threads 8 -quality good -crf 32 -c:v libvpx-vp9 -c:a libvorbis hd;

ffmpeg -y -i inputStream -row-mt 1 -s 640x480 -b:v 750k -minrate 375k -maxrate 1088k -tile-columns 1 -g 240 -threads 4 -quality good -crf 33 -c:v libvpx-vp9 -c:a libvorbis fsd

ffmpeg -y -i inputStream -row-mt 1 -s 640x480 -b:v 512k -minrate 256k -maxrate 742k -tile-columns 1 -g 240 -threads 4 -quality good -crf 34 -c:v libvpx-vp9 -c:a libvorbis sd

ffmpeg -y -i inputStream \
 -row-mt 1 -s 1280x720 -b:v 1024k -minrate 512k -maxrate 1485k
 -tile-columns 2 -g 240 -threads 8 -quality good -crf 32 -c:v libvpx-vp9 -c:a libvorbis hd \
 -row-mt 1 -s 640x480 -b:v 750k -minrate 375k -maxrate 1088k \
 -tile-columns 1 -g 240 -threads 4 -quality good -crf 33 -c:v libvpx-vp9 -c:a libvorbis fsd \
 -row-mt 1 -s 640x480 -b:v 512k -minrate 256k -maxrate 742k \
 -tile-columns 1 -g 240 -threads 4 -quality good -crf 34 -c:v libvpx-vp9 -c:a libvorbis sd

After specifying your input(s), all audio/video/subtitle options are designated for the next output, so you may write different options for different outputs.

From FFmpeg documentation, Chapter 2 Description:

  Do not mix input and output files – first specify all input files, then all output files. Also do not mix options which belong to different files. All options apply ONLY to the next input or output file and are reset between files.


Adding image to a video file using ffmpeg I have created a OGG file from a stream of jpegs using fmpeg within a c# application.  I would like to know if it is possible to add an image (of same size and resolution) at a later date to this ogg file?

I have spent some time looking but found not even the subject matter anywhere. I could extract all the images from the ogg file and recreate the ogg file form all the images but this seems a long way of doing things.

Is it possible at all please? I would post code relevant if I had any.

Thanks...

According to Ogg specifications you can take two Ogg files and simply concatenate them together, so you can encode that single image as a single frame Ogg and then do the concatenation however you do that in your Operating System (you didn't state which one).

Unfortunately, while this is completely allowed by the standard, many players will have hard time playing such a file. Let's say you have two files that you concatenate, VLC, for example, will restart the time progress when it will get to the beginning of the second one, making it very difficult to control the position in the video. And some other players may completely freak out when they see that the file continues after it should have ended.

On GNU/Linux there is a oggCat inside libogg package, but i've had mixed success with it... sometimes it works, and sometimes it doesn't. And to the best of my knowledge it's written in C++, so you won't be able to directly use the code from it anyhow, but it may give you clues of how to make it work.


Why this font layouts differently between AE and Microsoft Word? I'm new to this website so I'll try to be as clear as possible.

I downloaded a font online and I want to use it in my AE CS6 composition. When I wrote something using this font, I noticed that it appeared differently from what was shown in the preview from the website.

I tried opening a Word document and write something using the same font, and I confirmed my doubts: the font is right, but AE shows it in a simil-italic style for un unknown reason. The images below show the difference between Word and AE.

The font is not equipped with an Italic version, and (as you can see from the screenshots) I wrote using the only option available: "Regular".

Do you know what may cause this issue? Thanks in advance.

This looks like you have the Faux Italic option activated. You can turn that option on and off using the switch at the bottom of the Character panel. Here's a screenshot of that panel with Faux Italic turned on.

You can use that option to simulate an italic (slanted) version of a font that doesn't come in that style. It's generally a bad idea to use this option, as it is subpar to an actual italic font style. The difference is that the italic style variant of a font-family is specifically designed for that purpose and differs from the regular style in more ways than just being slanted. The Faux Italics option merely distorts the individual characters, which can lead to unwanted artifacts such as illegible characters, altered grey values and aliasing.

Another possible cause of your distortion problem is any sort of distortion effect that is applied to the text layer or a superordinate adjustment layer, but I find that unlikely.


Convert resolution 4096x2304 to 3840x2160 keeping the quality the same I have recently come into possession of a couple of 4k movies with a resolution of 4096x2304. Unfortunately my Samsung 4k TV wont play anything over 3840x2160.

I have managed to re-encode the videos to 3840x2160, unfortunately the bitrate fell to 1/10th of what it was before.

I used:

for %%a in ("*.mkv") do ffmpeg -i "%%a" -s 3840x2610 -q:v 0 -c:v libx264 -acodec copy D:\%%~na.mp4

Original file size was 27.8GB, the re-encoded one was under 8GB.

Is there any way I can re-encode them so I can keep the original bitrate/quality?

  Rant: Even my 4 year old computer can play the movie, but that fcking
  new Samsung TV of course can't /rant-end

Judge based on the quality rather than the bitrate value. Use CRF mode encoding and if the quality isn't what you can accept, decrease the CRF value.

ffmpeg -i "%%a" -s 3840x2610 -c:v libx264 -crf 18 -acodec copy D:\%%~na.mp4


Can't apply "fade in" after "fade out" (FFMPEG command line) I'm debugging the command

ffmpeg -i ./input-file.mp3 -af "afade=t=out:st=**5**:d=2" ./output-file

But if I try to run a new fadein, after the fadeout, it won't work. The sound doesn't come back.

ffmpeg -i ./input-file.mp3 -af "afade=t=out:st=**5**:d=2,**afade=t=in:ss=**10**:d=2**" ./output-file

What's the right way to achieve this? Thank you.

What a fade out does is fade the volume from input level to 0 and then keep it at 0 for the rest of the track. Similarly, what a fade in does is fade the volume from 0 to input level and it mutes the volume from the start of the track upto the fade in start time.

When you applied the fade in after the fade out, the 2nd fade filter is working with a muted track, so the fade is from 0 to 0.

What you need to do is apply timeline editing to each fade filter so it operates from the start of its transition till the start of the next fade transition.

So,

ffmpeg -i ./input-file.mp3 -af "afade=t=out:st=5:d=2:enable='between(t\,0\,10)',afade=t=in:st=10:d=2:enable='gte(t\,10)'" ./output-file


How to playback/convert a DV4 file? I have two .dv4 files, taken from a CCTV and I cannot find a way to use them on either Windows or OS X.

I've tried to open them with several applications, but to no luck!

Does anyone have experience with this kind of files?

Any help will be really much appreciated.

Try VLC or AvTech PlayLite (appears to be abandonware). However, from my cursory research, it seems that DV4 videos are supposed to be bundled with proprietary software (check this Bosch PDF, page 13), so if you're missing that, you might be out of luck.


What does a color grading software offer over a compositor? I know there are many color grading programs around, DaVinci Resolve being a popular one. But I'm having trouble understanding what exactly they offer over a CC node in any compositing or editing application (like Fusion). As far as I understand, "Color Grading" is merely "Creative Color Correction". I.e. color correction to achieve some creative goal.

I read examples like "directing the eye" to something, making things more vibrant, etc. Well, those can all be done with a plain color corrector in any software, right?

What am I missing?

The functionality of editing vs color grading vs compositing software is overlapping since every professional software can do a bit of everything. But they are experts in their own domain. Resolve has finer color controls (1), but also some functionality that you won't find in compositing software (2).

Will they merge some day? This does depend on the job roles. If several persons work on a project, each with his/her specialization of editing/grading/compositing, then it's better that each has his/her own program that focuses on just this task and does this best. If job roles blend (as we see with editing & grading), then we see programs emerge that are good at each of the tasks.

(1) Example: A Resolve user can choose between at least three sets of mathematical formulas for the color wheels

(2) Example: Automated shot matching


FFMPEG - How can I add black bars to top and bottom of my video? I have about 100 videos. I would like to add a 30 pixel horizontal black bar to the top and bottom of each video without ruining the dimenions(so even if they go over the video). How can I achieve this? Also what's the command to have it run on every video in the folder without doing it for each one? I'm a complete beginner and I'm lost. Any help would be really appreciated!

Adding Bars

You can do it with a combination of the crop & pad video filters:

-filter:v crop="in_w:in_h-60:0:30",pad="in_w:in_h+60:0:-30"

Both filters use the same format: width:height:x-offset:y-offset

In the crop filter, you want width to be same as the video's input width (you can use the variable in_w). You want to crop 60 pixels (30*2) from the input height (in_h-60). X offset stays at zero so nothing is changed horizontally. And set the Y offset to 30 so that 30 pixels are cropped from the top & bottom each. Otherwise, it will just crop 60 pixels from the bottom.

In the pad filter, the in_w & in_h variables will be whatever is output from the crop filter (you can just replace these with the actual video dimensions if you prefer). Use in_w again to preserve horizontal dimension. Add 60 black pixels back to the vertial dimension (in_h+60). Leave the X offset at 0 & set Y offset to -30 so pixels are added at top & bottom. Otherwise, it will just add 60 pixels to bottom.

The other option, as I think @Quertiy was pointing out, is to create a PNG image the same dimensions as your video with black bars at the top & bottom, & transparent in the middle, then overlay it onto the image:

ffmpeg -i video.mp4 -i overlay.png -filter_complex "overlay" -c:v libx264 "out.mp4"

It may be wise to list the streams in the filter arguments: -filter_complex "[0:0][1:0]overlay"

Multiple Files

If you were using a Unix shell (I believe this is what MacOS uses), you could use a for loop to convert all videos in a directory:

for V in *; do ffmpeg -i "$V" -c:v libx264 -filter:v crop="in_w:in_h-60:0:30",pad="in_w:in_h+60:0:-30" "padded-$V"; done

But I'm not sure what the equivalent is using the Windows command prompt.

Edit: Windows command prompt has a for loop as well. So it should be something like:

for %V in (*) do ffmpeg -i "%V" -c:v libx264 -filter:v crop="in_w:in_h-60:0:30",pad="in_w:in_h+60:0:-30" "padded-%V"

But, I haven't tested it.

Note: Use %%V within batch files, %V if using the command prompt directly.

Edit: According to this article, you should be able to do it in Windows PowerShell like this:

foreach ($V in Get-ChildItem .\) {ffmpeg -i "$V" -c:v libx264 -filter:v crop="in_w:in_h-60:0:30",pad="in_w:in_h+60:0:-30" "padded-$V"}

Again, I haven't fully tested it.


How to link an FX property of multiple layers? I'm evaluating an after effects plugin , which has an FX property brightness and similar. I have several layers on top of each other, each letting a portion of the others shine through.

Now I want to animate these FX properties on each layer. Is it possible to create some kind of "master" keyframe control that then triggers the same FX property on all layers?

I think so.  Add a Slider (in the Effects window) to one of your tracks, then use the pickwhip to parent the value of the slider to each of the other Brightness controls.

Examples here of using Sliders and pick whips:
http://helpx.adobe.com/after-effects/using/expression-basics.html


Automate After Effects assets rendering via script and external data I am often rendering quite large sets of assets (lower thirds, titles, etc) from AFX and it's really annoying to eg create lower third and then duplicate it and change texts. Especially when I later need to change something globally and have to return to every single copy of that graphic.

Is there maybe a way to load data from external file (like XML or JSON) and then repeat render for each row / set in that file? So I could basically create lower third with text fields "name" and "company" and then specify multiple values for those fields in external file and then just have AFX render my composition with each set of values?

Have you got the latest version? After Effects CC 2018 is all about data driven animation.

Either way you can use external file to drive expressions (in older versions too) using the eval javascript function. I explain it on my blog thus:

If you have a file that contains something like this:

var vals = {"rotation":8, "scaleX":150, "scaleY":200};

you can use this expression, e.g. in the scale property:

$.evalFile("/path/to/test.js"); // or "c:\path\to\test.js"
[eval(vals).scaleX, eval(vals).scaleY]

the first line reads the file and treats it as source for the expression, so vals is defined as an object with rotation, scaleX and scaleY properties, which we access as the value for our scale property.

In your case you'd be wanting to use the expression for the Source Text property, so your data file might be something like

var vals = {"comp1": {line1:"Doctor MCDoctorface", line2:"Surgeon"},
            "comp2": {line1:"Skinner McHackett", line2:"Butcher}…
           }

So that's an array of arrays, where each comp has 2 values, line1 and line2. In your expression you'd loop through the array, until you found the member of the outer array whose name matched thisComp.name and then use the appropriate member for line 1 and 2.

To automate your rendering you can use the built-in command line renderer aerender (aka aerender.exe). With a bit of shell scripting you can automate the whole workflow.


What are these black tapes in green screening? In some 'making of' green screening videos, I saw these black tapes on the actors. What are these for?

I assume these are home made motion markers in order to track the motion of the head in the shot. This is useful for adding other objects (or images) to the object, therefore the technique is called object tracking.

Note: The example given is only useful for 2d tracking, because most 3d solvers needs a minumium of 8 tracking markers around the object (in each frame).


Can't capture video from dshow device. FFmpeg finish immediately resulting empty file I'm digitizing my old tape recordings from usb dongle. Everything been ok, I digitized several tapes, but I'm abandoned this project for a while and reinstalled windows. Keeping on secondary drive the same ffmpeg binaries and noted .txt file with recording options.

Now I tried to return to work, but in attempts to start recording ffmpeg just finishing immediately:

D:\video>ffmpeg -f dshow -crossbar_video_input_pin_number 2 -video_size 720x576
-rtbufsize 2G -framerate 25 -pixel_format yuyv422 -i video="AVerMedia USB Polari
s Analog Capture":audio="Analog Audio In (AVerMedia C039" -copyts -c:v rawvideo
-c:a pcm_s16le -t 06:00 019.avi
ffmpeg version N-91930-g0caa33c60b Copyright (c) 2000-2018 the FFmpeg developers

  built with gcc 8.2.1 (GCC) 20180813
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfi
g --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-lib
freetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amr
wb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --
enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-l
ibwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --
enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --en
able-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --en
able-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --e
nable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enab
le-avisynth
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.100 / 58. 18.100
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 29.100 /  7. 29.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, dshow, from 'video=AVerMedia USB Polaris Analog Capture:audio=Analog A
udio In (AVerMedia C039':
  Duration: N/A, start: 27907.394000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 25 fps,
25 tbr, 10000k tbn, 10000k tbc
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, avi, to '019.avi':
  Metadata:
    ISFT            : Lavf58.18.100
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, q=2-31,
165888 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.30.100 rawvideo
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16
, 1411 kb/s
    Metadata:
      encoder         : Lavc58.30.100 pcm_s16le
frame=    0 fps=0.0 q=0.0 size=      10kB time=07:45:07.80 bitrate=   0.0kbits/s
frame=    0 fps=0.0 q=0.0 Lsize=      96kB time=07:45:07.80 bitrate=   0.0kbits/
s speed=4.09e+04x
video:0kB audio:86kB subtitle:0kB other streams:0kB global headers:0kB muxing ov
erhead: 11.267573%

D:\video>

But ffplay playing stream properly and I can watch it

D:\video>ffplay -hide_banner -f dshow -crossbar_video_input_pin_number 2 -video_
size 720x576 -rtbufsize 2G -framerate 25 -pixel_format yuyv422 -i video="AVerMed
ia USB Polaris Analog Capture":audio="Analog Audio In (AVerMedia C039"
Input #0, dshow, from 'video=AVerMedia USB Polaris Analog Capture:audio=Analog A
udio In (AVerMedia C039':
  Duration: N/A, start: 27057.813000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 25 fps,
25 tbr, 10000k tbn, 10000k tbc
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
27060.50 A-V:  0.010 fd=   0 aq=    0KB vq=12961KB sq=    0B f=0/0

I'm stuck and have no idea what can it be. Please help.

P.S. Sorry for my bad english.

Either remove the -copyts or switch -t 06:00 to -vframes 9000


Which tool or method should be used to make text on a whiteboard look natural / right? I am not a professional video editor, but I am involved in the production of a small-scale educational video series. A main part of this video contains a teacher sitting at a table with a whiteboard next to him. There is a requirement for the whiteboard to contain text which changes as he speaks.
I would like to ask which tools / method should be used to accomplish this. I have made 2 attempts (below) but neither of them seem exactly right
ATTEMPT 1 - This seemed 'wrong' to me as the text wasn't lining up with the whiteboard. Changing the text to dashes seems to confirm this.

ATTEMPT 2 - I used the Yaw and Pitch controls in Davinci Resolve to try to make the lines line up with the whiteboard. My teammates agree that the dashes look better than the first attempt, but that the text in Attempt 1 looks more natural than the text in Attempt 2.

My question is simply which tools or method are generally considered best to deal with this type of thing and achieve a result that will not stick out as seeming 'wrong' to viewers?

Your use of pitch and yaw is correct, but it looks like you have just overcompensated a little. Your vanishing point for the lines is too near - that bottom line shows this by angling up too much.
If you correct them by assuming the vanishing point from the top and bottom of whiteboard, you will get a more natural look, and then your text will look more natural.


How do I speed up slower video framerates with ffmpeg and get full 240fps and no truncated videos? I have a whole bunch of sports video clips that range from 6 to 25 seconds each, all recorded at 240fps but slowed down to 23.97, 25, 29.97 and 30fps (so they're in super slow motion).  I need to speed them back up.

I got the following command:

ffmpeg -i input.mov -vf "setpts=(PTS-STARTPTS)/10" -crf 18 output.mov

...from another stackexchange question.

I was able to use this successfully, but I have 3 questions:

1)  How do I preserve all of the frames?  The resulting video is only 30fps, which means the conversion process dropped the vast majority of frames - I'd like it to actually be a full 240fps.

2)  Some of the videos were truncated at the end.  For example, an 11 second video that originally showed an entire tennis forehand swing ends up stopping before the swing is completed.

3)  I read the documentation for probably a good 30 minutes trying to figure out what "-crf 18" does and for the life of me couldn't - would love if someone could explain this!

Use

ffmpeg -i input.mov -vf "setpts=N/240/TB" -r 240 -crf 18 output.mov

The only thing the setpts filter does is retime frames, but the designated frame rate of the stream is still its original framerate, whatever that is (25,30..). Use the fps filter to change that - the fps filter may also drop or duplicate frames, but not in this case. There's a bug in the fps filter which makes it ineffectual for this purpose. Use output -r.

The default encoder for MOV in FFmpeg is libx264. Its default ratecontrol mode is CRF. Lower values retain more of the original quality but produce larger files - 18 to 28 is a decent range. This has no effect on which frames are included in your output.