How to Sync a Layer's Position, to a Layer in Another (Time Remapped) Comp So we are making a 2D animation. We have character assets in PSD.

We have a "Character" Comp which contains the following: "Eyes" Comp, "Mouth" Comp and "Body" Comp.
"Body" has the 2-second walk-cycle of the character. Which is time-remapped to a loop in "Character". But as character walks, its body goes in a wawy upwards and downwards motion.
The problem starts there: We have to sync "Eyes" and "Mouth" to body's up and down motion. Parenting the said layers' position to the body asset's position is not an option, because the body asset has only 2 seconds of animation. After that, "Mouth" and "Eyes" just stops wherever they were.

I think there must be a way to do this with expressions. But since we are not a code-savvy studio, we can't sit down and write one.

How can we achieve such a goal?

Thanks for the help.

Edit:
You can download our comp from here: http://www.mediafire.com/download/v255kgid7ej56m0/walk.zip

If you want to link certain properties through several composition you can only do this with expressions. They are really not difficult though and its a matter of 1-2 lines.

F.e. to get the position of a layer in a different composition you can do this:

comp("Comp Name").layer("Layer Name").transform.position

Just alt click the position stop watch of the layer you want to apply that position to and enter that command.
To break it down. This select first the comp you want by name and then selects the layer you want within that comp:

comp("Comp Name").layer("Layer Name")

This part says that you want a value from the transform menu and the name of the value is position. Position could also just be rotation or any other property:

.transform.position

Note that you often get multiple values at once. For example position can have 2 or 3 values depending on if the layer is 2D or 3D. This multiple values are given to you in something called an array or vector. What comes now is only needed if you want independent axis control and not the position value of all 2 or 3 axis's applied to your layer.
So in order to f.e. only get the position of the y axis you can do this:

y  = comp("Comp 1").layer("layer1").transform.position[1];
[transform.position[0],y]

The made-up variable name y in this case is getting the y-axis value of layer1 assigned. by adding [1] at the end of position. Using [0] would give you x and [2] would give you z.

This part is what you call the return value. You write it in the form of an array/vector. Meaning [x-axis-value,y-axis-value] or [x-axis,y-axis,z-axis]. transform.position[0] just means I want the x value of THIS layer where I'm entering the expression in. So you can still control that axis manually.

[transform.position[0],y]

In order to account for the time remap you would need to apply the same remapping to comp2 that you applied to comp1.
If that's not what you are after I might have to see an example project.

Edit: So if you use time remap to loop layers and not to fine tune your animation you shouldn't use it in these situation. In order to retain a better control you should use a simple expression on the animated assets of your looping composition in order to loop you animation.

loopOut(type = "cycle", numKeyFrame = 0);

Add this to every layer property that is animated and make the comp length as long as you need, your 2 second animation will now repeat as long as your composition is, you just have to stretch your layers length to the new comp length. This solves your issue.

If you have more sub-comps in you sub-comp you will have to increase their length as well of course so you can stretch them to the end of their parent comp.

For more information on this expression have a look at this: http://provideocoalition.com/pvcexclusive/story/expression_shorts_-_loop


FFmpeg crop (cut out) a view direction from 360° video sphere I have a 360×180° equirectangular video.

I want to cut out a part of it, to make it a “normal” video using FFmpeg.

Is there something like this? For example, I have a direction vector as a parameter for the region to cut out (e.g. Vector(0, 0, 1) would cut out the sky)

Solved with this filter:
https://ffmpeg.org/ffmpeg-filters.html#v360
See section "flat" and the second example to convert any 360 footage to a flat view.


Importing VOB from DVD results in squeezed image When I import VTS_01_1.VOB into VirtualDub or Avidemux or try to play it with Media Player Classic, it plays in dimensions 352x576 (squeezed) which should clearly be 576x352. But when I play the file in VLC, it plays in the correct dimensions and it looks like it should, so I know the frames are in 576x352, it's just that they're being misinterpreted by VirtualDub and Avidemux. Furthermore when I try to convert it with VLC, the result is 352x576 even though VLC plays it correctly in 576x352.

How do I fix this? I just want to import the file into VirtualDub or Avidemux so I can edit it.

Sounds like thoses apps aren't respecting the Pixel Aspect Ratio (PAR) flag.  Widescreen DVD movies aren't usually made of more pixels, they have a setting in the metadata telling the player to stretch the pixels from squares into rectangles to make the picture look right.

VLC is reading the PAR flag and playing the pixels back in their correct aspect ratio.

A possible solution that has worked for me in some situations is to use HandBrake to convert from stretched pixels with a PAR flag to more pixels that are square.  You can do this in Handbrake by previewing the movie in Anamorphic PAR mode, noting the image dimensions listed, then turning off Anamorphic and the PAR, and typing the dimensions in by hand.  The resulting render will have square pixels (PAR 1.0) but the image will be properly stretched.

Hope that helps.


How peoples create video highlights from matches? I want to know how peoples create those fancy highlights for a match, as match goes for over 90 minutes and highlights show every thing in just 3 to 4 minutes ... which tools or techniques are used to create those highlights ? I want to create those ones for my self and for my channel .... any one idea please share with me

Alot of times there is someone who tracks the game and writes down specific times. Say there was a goal at the 35 min mark, they jot down "Goal - team name - 35:26" or something related to that. Then later on they have a list of different times as well as different events (goals, saves, close shots, etc.) and choose the best ones. Then the editor opens a recording of the whole game in Final Cut Pro or Adobe Premiere and goes to those times, trims them quickly, add cool transitions and exports. I have experience with it and for a 3 period hockey game, I can normally edit and export in under an hour. The log file saves you from having to scrub through and find the best shots.


Best H.264 settings for low bit-rate streaming video I'm looking to stream some video from Flash Media Live Encoder with a video bitrate of around 150 Kbit/sec and audio of 50 Kbit/sec. The video will contain quite a lot of movement which I want to try and represent as faithfully as possible. Is there a particular flavour of H.264 that I could use to optimise the results at a resolution of 384x216 i.e. which profile?

Thanks

If you are going for a lot of motion, make sure you set a higher I frame rate. An I frame is a whole frame that you are going to need with quick motion.

Also, check out this link http://www.adobe.com/devnet/flash/apps/flv_bitrate_calculator.html for some basic settings. That shows you that 150kb/s is way to slow to keep a good picture. For SD material, bitraters of around 500kb/s with fast motion is recommended.


What is the optimal codec and encoding parameters to encode Video Podcast? I've got recorded PowerPoint presentation (video podcast) - static slides, mainly texts, some static infographics with voice of the presenter (speech only). It lasts about 1 hour and encoded to .avi format using default parameters in Xvid occupies about 500 MB.

I want to re-encode it so it occupies as less space as possible to publish it as online video. I presume that the size up to 100 MB should be achievable (static slides + 1 hour of mp3). Could you please advise which encoder should I use (preferably Windows command line) and what are the best settings to achieve that?

I would recommend the h264 codec as it produces reasonable quality at small size and it provides broad compatibility.

The open source encoder x264 is considered as the best one out there.
I can't recommend any command line parameters but there are several good programs that make use of the x264 encoder.
I like Vidcoder which is a fork of the popular Handbrake software.
You will see that even with the default settings you achieve a much smaller video size at comparable quality.


I want to have 2.7K footage stabilised in Full HD I'm solving following situation. I have plenty of footages from my GoPro recorded in 2.7K.
As I don't need such a resolution, I will be happy to have some from my shoots stabilised and as I need "only" Full HD resolution so I can crop a lot, I would like to have it stable as much as possible.

I've tried Warp stabiliser in Priemere, but the software throws me an error "Warp Stabilizer requires clip dimension to match sequence" but as I don't want to nest the video and loose pixels...

Can you please help me how to stabilize properly ? Thank you a lot!

Well you won't loose pixels if you nest it.  Nest it. Then change the sequence settings of your nest to match your clip settings. Then run warp on the clip in the nest.

Back in your main comp you can set the sequence to full HD and just scale it down. You will get the extra sharpness of 2.7k as it will be in the HD timeline.

If you have a majority of the clips in 2.7k then it might be best to edit in 2.7k and drag that composition into a new composition with full HD settings and scale that instead of doing it on a clip by clip basis. Which can get tedious.

Or you can just edit in 2.7k and export in HD.

Side note: you always loose a little bit of pixels if you stabilize (this can be avoided to a certain extent if you adjust the settings albeit at the detriment to the actual stabilization). But downscaling to 1080p it won't be noticeable. Especially with gopro footage.

I've also have mercalli does better with some clips than warp. It's available as a plug in for premiere.


What are people using to connect SSD drives from a camera to Thunderbolt or Firewire? We're shooting on a Blackmagic Cinema Camera, and at the moment are using the guts of a little portable drive enclosure as our cradle for transferring to our Macs via Firewire 800. It's got a very guerrilla vibe to it, but it's not exactly what I want to see when I'm transferring irreplaceable footage.

I've looked around, but there doesn't seem to be any purpose built SSD cradle for Firewire 800 or Thunderbolt (our editing machines are being replaced by Thunderbolt-only ones), only USB3. Has anyone got any suggestions?

HighPoint RocketStor RS5212 is a Thunderbolt Dock that will accept two hard drives or SSDs.

I would not use FireWire for SSDs, unless you don't have USB 3.0 and you're on a budget. USB 3.0 is often fast enough to get the maximum out of your SSD, FireWire not.


FFmpeg Batch encoding error: CRF/CQP is incompatible with 2pass I am trying to create a batch file with 2 passes. Pass 1 scales the video. Pass 2 pads a border around it. They both work separately but will not work together.

Pass 1:

@echo off
REM Scale video to 1216x684
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf scale=1216:684 -preset faster "output\%%~na.mp4"
)
pause

Pass 2:

@echo off
REM Pad video to 1280x720
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf pad="1280:720:32:0" -preset faster "output\%%~na.mp4"
)
pause

Combined:

@echo off
REM Scale video to 1216x684 and pad to 1280x720
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf scale=1216:684 -preset faster -pass 1 -f mp4 NUL && \
ffmpeg -i "%%a" -vf pad="1280:720:32:0" -preset faster -pass 2 "output\%%~na.mp4
)
pause

Error:

CRF/CQP is incompatible with 2pass.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

What am I missing?

2-pass is for video encoding when using an average bitrate target. When saving to MP4, default encoder is x264 whose default encoding mode is CRF where 2-pass is not applicable. The pass system also no connection with the use of filters, which is what scale and pad are.

In any case, you can carry out scaling and padding in one command.

for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf "scale=1216:684,pad=1280:720:32:0" -preset faster "output\%%~na.mp4"
)


Davinci Resolve - Blanking Fill is not expanding to the size of the video I am using Davinci Resolve and try to edit a video made vertical with a cell phone.
I want to use "Blanking fill" to fill the black sides with some blurry moving content:

I added the effect onto the video in the timeline (1920*1080p in timeline settings), but it does not fill the image:

It still keeps some of the black and I don't know how to fix this.

EDIT:

As requested from Jason Conrad some more settings:

EDIT2:

In the "deliver" tab the video is showing up like it's working:

But when I render the video it looks like the preview ...

****Edit****

With the new information you've provided, I can tell that you're encountering a bug related to Resolve's handling of transparency information in .PNG files.  I can also recommend a solution.

In your screenshot of the Deliver page, I can tell that there are three clips on your timeline, and that one of them is a .PNG.  In the course of its development, Resolve has suffered growing pains with its treatment of alpha channels, and how video tracks on the timeline treat them.  In fact, there's a recent SE question which was asked within hours of yours which you will find instructive.  See here.

In previous versions of Resolve, dragging a video or still image which contained alpha channel information onto a "foreground" timeline track (any track above your background) was not enough to show the background through the foreground.  You would see black where you should see transparency.  The reason for this behavior was connected to the order of operations in the image processing pipeline, and the fact that color page operations occured before edit and deliver, even if you had not performed any color page operations.  So, unless you added an alpha output node on the color page by right-clicking on the background and selecting "add alpha output," You would see black instead of transparent.

Needless to say, this behavior frustrated new users, and BlackMagic Design strove to improve the behavior of images with alpha channels, out of the box.  Now, when you drop a .PNG with transparency over another timeline layer, the color page is "smart enough" to realize that it should show you the cutout image composited over the background on the edit page without requiring you to do any extra work.

However, as you have discovered, there is a bug in the software where dropping a .PNG over a layer-with-effects, incorrectly renders the effects.  This is an internal order of operations compositing error, but the good news is you can force the compositing operations to execute in the proper order.

TLDR: To fix your problem, right-click on the V1 clip in the timeline, and choose "New Compound Clip" from the top of the contextual menu.  You'll now see the full blurred background of the Blanking Fill operation.

Compound Clips in Resolve are like folders in a file system, in a way.  Your original clip is now contained within a larger structure.  You'll notice that if you click on the new Compound Clip in the timeline that it appears as if the blanking fill controls have disappeared from the inspector, even though the blanking fill effect is still clearly visible.  Fear not, the controls are still available, and editable.  Just right-click on the Compound Clip, and select "Open in timeline" from the contextual menu.  This takes you inside of the "folder" where you can see your original clip and adjust its controls.  To get back out to your main timeline, double-click on the timeline name at the BOTTOM of the screen in the "breadcrumb" list, where, it will say "Timeline 1 > Compound Clip 1."

Besides the folder analogy to describe Compound clips, you can also think of them as a set of parenthesis in an algebraic equation; they affect the order of operations in Resolve, and help control which effects are composited before others.  In your case, they'll ensure that the blanking fill gets calculated fully before the .PNG is placed in the foreground.

Bonus:  Here's one more quirk about working with compound clips that you should know about.  In Resolve, it's easy to break apart a compound clip onto the timeline and restore its constituent parts (CC's can contain multiple clips and layers, like a mini timeline).  To do this, just right-click on a compound clip in the timeline, and select "Decompose in place" from the contextual menu (This is a feature which separates Resolve from Premiere, btw, where it's much more difficult to break apart a nested sequence).  So, compound clips are a very handy container for a group of clips, and you can, e.g. apply color page effects to the container as a whole.  That is, if you lasso a hundred clips on a timeline, and turn them into a CC, you could turn them all blue with one node on the color page.

Here's the quirk:  If you decompose this string of 100 blue clips on the timeline, you are ERASING both the container, and all of the effects applied to the container.  The clips will no longer be blue.  The color page effects do not cascade to constituent elements when you "decompose in place."  So, as a rule of thumb, if you're ever going to "flatten" your timeline (for .xml round-tripping to another app, for instance), FLATTEN IT BEFORE YOU COLOR IT.

Hope this helps,

* End Edit. Previous answer below. *

It's hard to know without knowing what your settings are.  If your timeline resolution has square dimensions, and you don't have "Use gray background in viewers" checked, then the black vertical bars could just be the bounds of your timeline.  It's also possible that you have output blanking turned on under timeline->output blanking, which would add black bars over the fuzzy bars.  Also, make sure your viewer window is scaled to "fit" inside the UI.  Here are some screenshots of my settings if that helps. Oh, and make sure you're not cropping the edges, by checking the crop slider values, which should be zero.


What is the maximum length of Portable Recorder to Camera cable that is safe to use? I'm about to record still videos, mostly of people sitting and talking to the camera. And I would like to use internal microphones of a portable recorder with a camera and I do not want to place the recorder on top of the camera using a shoe adapter cause I'm afraid it will record a noise coming from the camera and an operator. I also don't want to use XLR microphone, cause it means additional expenses for me and additional gear to carry. So my idea is to place the record in front of the speaking person. Since there is a distance between the person and the camera, I would need quite long audio cable that will connect the recorder with the camera. So my question is - are there any issues with using long cable, like latency, quality drop or something I'm not aware of and what is the optimal cable length I'm safe to use in this case?

Without more detail this is not directly answerable. The short answer is, the shorter the better, but the long answer depends on many factors.

The amount of electromagnetic noise in a room will impact how much the cable picks up noise by working as an antenna.
The type of cable being used will impact how much shielding prevents cross talk (between conductors if shooting stereo) and acting as an antenna.  Features like balanced signaling will also greatly reduce the amount of noise picked up over the length of the cable.
The signal type coming out of the recorder also matters.  If the signal is low power (mic level) then it will be more susceptible to noise, but less susceptible to cross talk.  If it is powered (line level) then it will be more susceptible to cross talk but will be much further above the noise floor.

Conversely, for just about any case, the impact of cable length is unlikely to be as significant as the quality loss expected for sound dissipating through the air, so getting as close to the subject as possible is pretty much always ideal.

For a long cable run, the wired solution will always be lower latency than a shorter one.  Latency is introduced primarily by processing or by signal dropouts on a digital signal that supports retransmission.  Analog signal on a cable is going to move at the speed of light while the sound waves themselves will have to travel at the speed of sound, so if your camera is in the back of a large room, the sound from the mic coming over a wire will likely actually get to you before the physical sound waves reach you.

There may be some exceptions to the noise level rule if the room is extremely EM noisy and you don't have the option of using balanced and shielded cabling with a line level signal, however sound drops off in strength EXTREMELY quickly as the pressure waves spread in all directions and lose power at an inverse square level. (Inverse square law).  The closer you are, the more signal you have to start with and it's difficult for a cable to lose signal that quickly.


Extract audio from video preserving audio quality I need to extract sound from videos. There must be know loss of quality (since the sound files will be used in speech-to-text services).

So I want to extract the audio from the video exactly as it is and then place it in a new container to create an audio file.

What tools are available for this? Can VLC do it? Some online service?

EDIT: Please notice that I want to extract the sound exactly as it is from the video (so I do not loss quality).

And I tested this with the GUI version of VLC, but I did not see any way to do what I want there. However I just found this page that says you can do it from the command line with VLC:

VLC HowTo/Extract audio

Since I am not going to do this myself, but tell my users how to do it I am looking for an easy way for them. (They are not programmers. But I am. So I can perhaps write a version myself with ffmpeg, but I want to avoid that if I can.)

Is this perhaps not the right group to ask this question in?

If you aren't adverse to using a terminal to extract it, FFmpeg is a very good tool that you can use. The command that you'd want to run in ffmpeg -i [input file name here] -c:a copy -vn -sn [output file name here].

-c:a copy: This argument copies the audio stream of the file.
-vn: This argument informs FFmpeg to not account for any video streams.
-sn: This argument informs FFmpeg to not account for any subtitle streams.

Altogether, this results in a lossless extraction of the audio stream from the video file. If you have some knowledge in making scripts, you could create a script that will perform this action for a set of files so that you don't need to do it manually.


How to change lightworks project frame rate? I created a project with 60fps.
Imported videos which are at 25fps (using eyeframe converter).
Did all my editing, took me forever and exported the project.
Again used eyeframe converter to get .mp4.

Here was the problem, the video was playing at higher rate (meaning it was playing at double or more faster speed),
but the audio was playing at normal rate.

Now I am wondering is it possible to change the project fps or
copy the edit into a new project which is at 25fps?

Please help me.

I haven't used LightWorks recently or extensively, and I am not sure how the whole EyeFrame converter works, but if you want to change your output frame-rate, I think this link will help.
In it (the link), user HammerHead says:

You choose the project-rate when you first create your project from the projects browser (the window that you see when you first run up the app). This governs the frame-rate that all your edits are created at in that project.
Once you enter that project/room you can then change the output rate in that project using the setting you describe on the project-card. So if you're in a 25fps project, the available playback rates will be 25 & 50.
To make a 30fps project, go back to the projects-browser (by clicking the arrow icon in the lower right corner), and fill in the details at the top.

I'm pretty sure that the sentence I took the liberty of making bold, is the answer. Also, the user was asking for a 30fps video but it should work for 25fps. Read the whole link for more details.
I don't think this is what you are looking for, but here is another link, just in case.


Record DVI Signal (SXGA) I am trying to record a DVI Signal (SXGA) on a Mac (10.6.8). Do I need a scan converter for this ? If so, which hardware would be the best/easiest to use. Since it is 5:4, I also try to understand, if a scan converter is needed, to what resolution I can convert to, without loosing any information of the raw signal.

Thanks

It sounds like what you need is a better DVI scaler.  A good scaler should resize your video in-line to a supported resolution for your AJA IO HD.  One example I found of the kind of thing you are looking for is here.  I have no direct experience with that particular scaler, so double check that it will handle your exact needs, but the correct type of scaler will handle resizing your video feed to something that the AJA IO should be able to handle.

Also keep in mind if you are using DVI-A (analog) or DVI-D (digital) as it will impact both cost and quality of the scalers that are available as well as the type of input you use on the AJA IO.  I'd lean towards trying to keep a digital workflow, if you can, as it should preserve the highest overall quality.

As far as alternate capture devices, two of the main ones I normally consider (though I have no direct experience with the current generation) are the Black Magic Intensity and the Matrox MXO2.  I used to use Matrox capture stuff back in the day with great success, but have not used their newest stuff.


Best presets to scale legacy 4:3 and 5:4 videos using ffmpeg We have videos in row format (.mov) that are 4:3 (768x576) and 5:4 (720x576). We have a recommended preset for streaming over DASH to HTML5 and Silverlight players (this is the second pass):

ffmpeg -i input.mp4 -an -vcodec libx264 -profile:v main -pass 2 \
-vf scale=320:180 -pix_fmt yuv420p -g 75 -keyint_min 25 -b:v 384k \
-maxrate 384k -bufsize 384k -passlogfile passlogfile_fp output_320x180_384.mp4

with 5 more, but different resolution and bitrate:

480:270 -b:v 700k
800:450 -b:v 1300k
960:540 -b:v 1300k
1280:720 -b:v 3500k
1920:1080 -b:v 5000k

With the 4:3 source videos we are happy with the result - the image doesn't get stretched, but players add black border to fit the width. Although we are not sure if this preset is suitable for these source videos.

With the 5:4 we are not really happy, because the image is stretched for 16:9 display. How can we achieve the same effect as with the 4:3 source videos? Are these presets suitable at all for these video formats or should we be looking for something else?

Appreciate your help. Our knowledge about encoding is pretty limited.

In order to maintain the aspect ratio of the source movie through FFMpeg's scaler, you have to specify a scale with an unknown:

ffmpeg -i input.mp4 -an -vcodec libx264 -profile:v main \
  -pass 2 -vf scale=-1:180 -pix_fmt (etc...)

The "-1" will tell the scaler to make the output 180px high, and however many pixels wide the output must be to preserve it's original aspect ratio.

This would give you movies with the old aspect ratio, you need a way of forcing the original movie into an arbitrary rectangle.  The documentation give an example of how you do this:

ffmpeg -i input.mp4 -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'"

This example will create a movie that is 320x240, and preserves the original pixel aspect ratio, whatever that may be.  The output will be positioned against the upper-left corner (I think) so you'll have to do a filter to repo it.


How to make a “follow the bouncing ball” video? I found easier to teach some score by reading it with the student while playing, and I saw that many people online use this priciple on videos as well:

Do you know how can I make that kind of karaoke-style animations for scores?
Is there a software better suited for it?

For reference, I'll put here a link to a video with the goal I'd like to reach:

There's a tutorial on how to make a bouncing ball karaoke-style lyric follower using After Effects here:

http://aescripts.com/beat-assistant/

The example you give should be simpler, as the ball only bounces on each quarter-note beat -there aren't any lyrics to worry about.


Most common formats that don't require any software or CODEC installs I have a small MP4 file that I need to send to someone on a USB stick. Without knowing anything about the PCs that this person has access to, how can I be reasonably certain he will be able to play it without needing to install any software or codecs?

Should I just convert the video to several different formats? What are the most common ones that require the least hassle? (I wouldn't be surprised if something as old as Windows XP is used in this case)

I've always used H.264 and have never had any issues with anyone being able to view it on Windows or Mac. H.264 is my standard go-to for formats, but as you mentioned, it might not hurt to convert it to several different codecs/formats, especially if it is a small file.


How can I create this 3D text video presentation? I don't have much clue about 3D modeling or Animation. I'm good at programming & Graphic designing though. Thing is I want to do something like shown in this 15second video:

To be more specific, I need some 3D text as shown in the video as a slideshow. I need to create a 15-30 second video of that kind. Then I'll also have to record voice over it. That I can do in video editing.

If you know a quick tutorial of this kind, that would be a great help too. Kindly help.

I use the 3D Extruder plugin/script for After Effects CS5.5 to create the 3D text, then I'll create a camera to animate the movement.

The tutorials plus network has a lot of great tutorials. Though I've never actually watched any of the ones on 3D text...


Video file is inverted. Can it be fixed? I just got a video file in my email that we want to use on our website.  However, the entire thing is inverted so the people are walking on the ceiling.  Is there any software that I can use to reverse this?  The file is a .mov if that makes a difference.

Use ffmpeg. It's the swiss army knife for video converting/editing.  Once it's installed, enter the following command on the command line:

ffmpeg -i input.mov -vf "vflip" output.mov

Look at following answer: https://superuser.com/questions/578321/how-to-flip-a-video-180-vertical-upside-down-with-ffmpeg


Video style where multiple videos play as one video There are a few videos I've seen where the same person, or multiple people, record their portion of the video and all videos get played back simultaneously often times in some grid usually 3x3. Most videos label themselves "medleys" and example is here
QUESTION: Is there a proper name for this type of video? Is there an easy macbook tool to use to create this type of video?
I'd do more research on it but I can't figure out what it's called in order to do that research


What -preset medium stand for in ffmpeg Here i found

-preset medium

I was wondering for what it stand for is it for video quality ?

preset is a private option that may be defined for an encoder, such as libx264. It is a shorthand method to set a whole bunch of options at once, and won't have any effect if set when using an encoder which doesn't define them.

When using x264 to encode to H.264 with preset medium, these are the arguments set:

cabac=1
ref=3
deblock=1:0:0
analyse=0x3:0x113
me=hex
subme=7
psy=1
psy_rd=1.00:0.00
mixed_ref=1
me_range=16
chroma_me=1
trellis=1
8x8dct=1
cqm=0
deadzone=21,11
fast_pskip=1
chroma_qp_offset=-2
threads=12
lookahead_threads=2
sliced_threads=0
nr=0
decimate=1
interlaced=0
bluray_compat=0
constrained_intra=0
bframes=3
b_pyramid=2
b_adapt=1
b_bias=0
direct=1
weightb=1
open_gop=0
weightp=2
keyint=250
keyint_min=25
scenecut=40
intra_refresh=0
rc_lookahead=40
rc=crf
mbtree=1
crf=23.0
qcomp=0.60
qpmin=0
qpmax=69
qpstep=4
ip_ratio=1.40
aq=1:1.00

The default preset is medium. You can override any of the individual variables by adding -x264-params key1=value:key2=value after the preset option. But you shouldn't unless you need to.


Focus in Video vs Focus in Image This is kind of a weird question, but how does focus in video work? I understand how focus works for single, still images. And, I understand that a video is a sequence of images. However, unlike taking still images, it seems like a common video capture devices (such as iPhone 6) don't need to focus at each frame of the video.

So, is the camera actually focusing at each frame, and doing it so fast that I don't notice. Or, it is something else?

Focus is focus is focus, whether for still or video.  But the story does not end there.  Focal length, aperture, sensor size, circle of confusion, etc., all play a role in determining whether you perceive something to be in focus or not.  Here's a link to the math.

The long and short of it is that quite often a camera that shoots both stills and video will use a larger sensor area for stills and a smaller subset of the sensor for video.  Those math equations will tell you that smaller sensors have more things in focus than larger sensors.  A 35mm full-frame camera has a 42mm image circle, which is huge next to the 6mm image circle of a typical prosumer camera, which is in turn larger than the image circle of the typical smartphone.

On top of that, yes, smartphones also dynamically focus the image, both for still and video images.  You probably don't see the refocusing happening in video because the depth of field is already so deep, but it happens.

There are video cameras that have sensors as large as full-frame still cameras; they are just as difficult to focus as a still camera, and have just as shallow a depth of field for the same image size, focal length, aperture, and circle of confusion.


FFmpeg/nvenc(cuda): Where is the documentation for h264_nvenc encoder? I'm trying to use Nvidia's h264_nvenc video encoder with ffmpeg but I can't find a single source of documentation for it. I want to know what options are supported and what they do.
The software libx264 encoder has good documentation: http://trac.ffmpeg.org/wiki/Encode/H.264
But I can't find the equivalent for h264_nvenc.
There is a little bit of information on
https://trac.ffmpeg.org/wiki/HWAccelIntro and
https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/ but these seem to just contain examples, whereas I'm looking for more of a reference for what the encoder can do. Thanks

You may check https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/nvenc.h#L186-L221
and the valid can be referenced from https://github.com/FFmpeg/nv-codec-headers/blob/master/include/ffnvcodec/nvEncodeAPI.h


Join multiple M4V to one file (maybe MKV?) So I've recorded all my old Mini DV tapes to .AVI with dvgrab, then Deinterlaced them with Handbrake (Bob Method) on the High Profile but I'm left with a bunch of M4V files now (due to the 2 audio tracks).

I want to make one file out of each tape now and, if possible, also preserve the timestamps in the filename. I have no idea how to join them now tho since making an MKV out of them would result in the player acting up (VLC, MPC and WMP all bring different results when playing the MKV file for some reason).

What's the best way to get the deinterlaced M4V files into one file for each tape now? Or do you guys have some other methods for this while still deinterlacing the original footage from 50i to 50p?

If you have ffmpeg installed, see this article that basically says to create a file that has all of the names, or to use the following command

  Concat Protocol

ffmpeg -i 'concat:input1|input2' -codec copy output

Or

 Concat Video Filter

ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv \
 -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' \
-map '[v]' -map '[a]' output.mkv

Or

Concat Demuxer

$ cat mylist.txt
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

$ ffmpeg -f concat -i mylist.txt -c copy output

Which one to use

concat protocol: use with formats that support file level concatenation (MPEG-1, MPEG-2 PS, DV).

concat filter: use if you need to re-encode such as when applying filters.

concat demuxer: use when you want to avoid a re-encode and your format does not support file level concatenation.
If in doubt try the concat demuxer.

When in Doubt, choose Demuxer

This article was originally published here

Also, see http://ffmpeg.org/faq.html#How-can-I-join-video-files_003f


rotoscoping moving limbs A project I am working on requires me to obscure some body parts, currently I have been using masks in premiere pro to achieve this but its a bit rough.

So what I have is a video of someone running, I want to selectively hide/disappear say their legs, or arms whilst they are running but leaving the background intact. The quality of the graphic isn't great but will hopefully be good enough.

I was wondering if someone could point me in the direction of a couple of good tutorials on the best way to achieve this..I am by no means a graphic designer or video editor but this has fallen to me because "I know computers"...

I've watched a couple of vids but they weren't really what I was after so if someone has a tut where moving parts of a subject in the foreground can be hidden I'd greatly appreciate the help.

Feel free to suggest any other tips too :) !!

To directly answer your question, where Rotoscoping is concerned, it is simply the task of masking out, or cutting a hole in a moving image, for every frame.

Technically in almost any software capable of Rotoscoping, It is achieved by using a spline connected by a set of points that conforms and deforms each frame in your footage, to match the shape/outline of the object you wish to cut a hole through.

In the bigger view of what is required for your video, it seems like you wanted to "keep the background intact". That is a much tougher requirement than it sounds, both artistically and technically.

Basically when we take a photo, shoot a video, of a car on a grass field, the camera does not take an x-ray imagery of what is behind the car. Therefore when we mask out and remove the car, we cut a hole through the video clip, and there is nothing behind to show through.

If you are familiar with the idea of compositing layers of images on top of each other, one way to deal with this is to take a similar looking patch of the background (grass, ground, etc) that is correct in perspective, and place it on top of the gaping hole created by the rotoscoped mask.

If your footage is shot by a camera on the move (panning, dollying), it adds to the challenge.

In this case you will need to then animate that patch of missing background in position and maybe rotation, to pin it to the ground so it moves together with the rest of the shot.

On top of all that, you will need to clean up and blend the edges of this patch of ground with the rest of the footage. Also you will need to do adjustments like colour, brightness correction all so that your patched up area does not stand out and call attention to itself.

Another trick you can use is to take a part of the footage that hasn't been obscured by the running person (maybe 2 frames before he passes over that grass/ground), you can take a frame of that ground /grass , freeze that image, and place it and match it over the hole created by the Rotoscoping and then animate/track that patched up piece as the camera moves so it appears to stick solidly on the ground.

These are some techniques of visual effects workflow. Sometimes the concept sounds easy but the real pain is figuring how to solve the little problems that crop out, pushing the shot to look better, if your work requires a more refined result.

If you want to see someone actually doing stuff like that, Video Copilot has huge number of tutorials where you can see how visual effects tasks can be accomplished.

Www.youtube.com/user/videocopilot
Www.videocopilot.net

Watch a couple of tutorials, and you will soon get a good idea of the processes that are involved for compositing, Rotoscoping, background replacement, background reconstruction.


miniDV - Same resolution but lost vertical space in 16:9 widescreen? I have an old SD PAL camcorder, which records on miniDV tapes at a resolution of 720x576 pixels.

This is the output from ffmpeg of the 4:3 recording:

Stream #0:0: Video: dvvideo, yuv420p, 720x576 [SAR 16:15 DAR 4:3], 28800 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc

This is the output instead for the 16:9 widescreen footage:

Stream #0:0: Video: dvvideo, yuv420p, 720x576 [SAR 64:45 DAR 16:9], 28800 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc

I noticed that the resolution is the same in both the cases, and of course the SAR is different, in one to fit the 4:3 resolution, in the second to fit 16:9. This leads me to think that the footage should be stretched to fit the aspect ratio but keep the same resolution in both cases.

However, the actual video footage is quite different. It doesn't look like they use the same resolution, but more that the 16:9 footage is cropped vertically. This would make sense logically, since the sensor is 4:3. However, shouldn't that mean that the resolution is lower? How is it possible that the footage has the same resolution while recording but a different one while reproducing?

EDIT: To clarify what I mean above, I took a screenshot of both video. As expected, both videos fit the two formats: 768x576 for 4:3 (16:15 stretch), and 1024x576 for 16:9 (64:45 stretch). Which again, is what is expected.

However, the image is evidently cropped vertically in the second case. For example, if I put a ball on the top and the bottom of the screen, it would be visible in 4:3, but would be cut out in 16:9. Video quality is also much lower in this case, as expected from an upscale. It looks like the image is first cropped at something like 720x405, and then upscaled to 1024x576.

I wonder why this happens, instead of having just the image at 720x576 stretched out to 16:9.

Okay, after some reasoning and research I think I understand what happens.

Basically, the sensor is fixed in size, but the lens is too. Which means the only way to get a wider sample to fit the image to 16:9 is to crop down the image on the sensor to about 720x405 pixels, each pixel catching a sample of ratio 64:45 (SAR).

The image is then stretched vertically to fit the whole 576 lines of the PAL standard. This means the original 5:4 footage captures has the same horizontal FOV as the footage captured in 4:3 mode, but a lower one vertically, stretched up to fit the whole 576 lines. This allows for the recorded media to then be stretched back into 16:9 by the media player.

This last step (the vertical stretching done by the camcorder) is still something that sounds really puzzling to me, but after analyzing some more footage, it is rather obvious that it is a digital upscaling and not an analog capture of the samples, since a lot of the digital noise is stretched vertically too.

It is an interesting way to get around the hardware limitations of the camcorder, but in the end not really worth it, considering the loss in quality.


Using a K-mount lens for Emount camera I am insterested in buying a new Macro lens for my sony a7s II. The only thing is that the lens I want Rokinon 100mm macro for the emount is around $500 and the one for the K-mount is around $350.

What will happen if I buy an adapter to the K mount lens and use it that way. Will the picture quality be affected. If so, by how much. What would I be losing or risking by doing that? I am using the lens mainly for closeups in videos.

If you have your heart set on that particular lens, go for it! That's exactly what adapters are built for, after all. I have a Pentax 50mm F1.7 that I use with a K-Mount to EF-Mount adapter on my EOS 80D, and I love it.

However, there are a couple of considerations.

Image quality

The image quality should be largely unaffected. However, the adapter you use is an additional piece of metal/plastic between camera and lens that the manufacturer did not plan for. This might ever so slightly reduce the cameras speed, but in practice, I don't think you will even notice that. Another consideration is that even the smalles of adapters functions like an extension ring. This means it might slightly shift the focus range towards the camera. This might reduce the minimal focusing distance. In turn you might lose the ability to focus on infinity.

There are a couple of might's in there, as it all depends on the specific lens and mainly on the quality of the adapter. The first cheap adapter I found claims to allow lens focus to infinity, so it doesn't seem to be much of a problem in pracitcality. I wouldn't worry about those things too much.

Technical limitations

Depending on your filming habits, this might be a larger problem for you. Most (if not all, not quite sure) adapters you will find are purely mechanical, meaning there is no electronic communication between the camera and the lens. This has a few effects:

No autofocus (mostly). You might have to focus manually. My K-Mount to EF-Mount adapter has an autofocus confirm chip. With this, my camera will confirm whether my selected focus point is in focus when I press the AF-button. So I can manually focus and then check if it's focused properly by pressing the AF button. I only use that lens for photography though, manual focus only will probably be more of an issue if you're using the lens for filming.
Manual only. If the camera can't communicate with the lens, it can't control the aperture as well (nor know what aperture you set the lens to). So you have to manually set the aperture. This might also throw off your camera's auto exposure, so you will mostly be limited to using your camera fully manual.
Missing or wrong EXIF data. No communication means all the lens-dependent parameters such as lens model, focal length and aperture won't be recorded into your EXIF data / metadata. Some adapters have an EXIF-chip that present the camera with static info. My own adapter tells the camera that a 50mm lens with f/1.4 is mounted, independent of what lens I use it with or what aperture I set it to. This means, for example, that I won't be able to find out what aperture a particular shot was taken with afterwords. Depending on your editing needs and habits, this might either not be a problem at all or utterly disrupt your workflow.


ffprobe - why total bitrate is greater than sum of video and audio bitrates? I have been working on video conversion. So, to find out video parameters I used ffprobe. However, when I run the command on an mp4 video file, I observe this:

Total bitrate: 3547 Kb/s
Video bitrate: 3512 Kb/s
Audio bitrate: 32 Kb/s

Why total bitrate is 3 Kb/s more than the sum of audio and video bitrates?

I don't know for sure, but the total bitrate may be calculated as size / duration, which would include the container overhead. IOW the actual bit rate would be the sum of the two stream rates, with the container overhead shown as distributed over the entire length.


Correct metadata for VR180 video on YouTube I have a Vuze XR camera, which can capture 3D videos in 180°, and I'd like to compose a VR180 movie for YouTube by joining several clips using free tools.

I'm almost there, but my supposedly 180° video is turning out 360° with some sort of mirror image on the other side, and the video is initialized right into the stitch of the two sides, so I need to rotate it 90° to view it properly.

My process so far is:
1) capture clips
2) use Vuze VR Studio to export each clip to the default YouTube format (if I upload this one directly it shows correctly on YouTube, although I had some issues with the timeline)
3) use DaVinci Resolve to create video with several clips
4) use VR180 Creator to add metadata (from the GUI I didn't select any of the checkboxes)

Here is an example: before the metadata I get a normal rectangular video with left and right eyes; while by adding metadata it correctly identifies as a VR video that I can move around and watch with a VR headset, but it's 360° and by default it is positioned with the edge of the 180° image on the center.

Any ideas on how I can fix this or suggestions of other free tools (Linux, Windows or Mac) that I could use to correctly edit the videos?

Google's VR180 Injector should do the trick
https://arvr.google.com/vr180/apps/


hardware cuda decoding error Please see my input udp stream information:

  ffprobe udp://IP:PORT

Input #0, mpegts, from 'udp://IP:PORT':
  Duration: N/A, start: 29796.225911, bitrate: N/A
  Program 16
    Stream #0:3[0x641]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:5[0x642](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 39
    Stream #0:7[0xf3d]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:8[0xf3e](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 11
    Stream #0:2[0x13ed]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:6[0x13ee](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 3
    Stream #0:9[0x10ce]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:4[0x10cf](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 96 kb/s
  Program 1
    Stream #0:0[0x1006]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x1007](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 256 kb/s

I want to decode the video stream (Stream #0:0[0x1006]) with Program id 1  And doing it with the following command:

  ffmpeg -analyzeduration 2G -probesize 11M -y -hwaccel cuvid -c:v
  h264_cuvid -i udp://IP:PORT -map
  0:#0x1006 -f rawvideo cuda_decoded.yuv

Please see the log:

[mpegts @ 0x2351d60] decoding for stream 0 failed
Input #0, mpegts, from 'udp://IP:PORT':
  Duration: N/A, start: 30271.455156, bitrate: N/A
  Program 16
    Stream #0:5[0x641]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:6[0x642](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 39
    Stream #0:2[0xf3d]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:4[0xf3e](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 11
    Stream #0:3[0x13ed]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:8[0x13ee](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
  Program 3
    Stream #0:7[0x10ce]: Video: h264 ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 16:15 DAR 4:3], 26.17 fps, 2.08 tbr, 90k tbn, 50 tbc
    Stream #0:9[0x10cf](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 96 kb/s
  Program 1
    Stream #0:0[0x1006]: Video: h264 ([2][0][0][0] / 0x0002), yuvj420p(pc, progressive), 16x32, 2.08 fps, 2.08 tbr, 90k tbn, 2514.04 tbc
    Stream #0:1[0x1007](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 256 kb/s
[h264_cuvid @ 0x240ca20] ctx->cvdl->cuvidCreateDecoder(&cudec, &cuinfo) failed -> CUDA_ERROR_INVALID_VALUE: invalid argument
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_cuvid) -> rawvideo (native))
Error while opening decoder for input stream #0:0 : Generic error in an external library

Also I can decode it without any problems with the next command:

  ffmpeg -analyzeduration 2G -probesize 11M -y -i udp://IP:PORT -map
  0:#0x1006 -f rawvideo -pix_fmt yuv420p software_decoded.yuv

This issue affects only for some input streams.

Have you any ideas why this issue occurs and any recommendations how to fix it?

Stream 0 is Stream #0:0[0x1006]: Video: mpeg2video for which you need -c:v mpeg2_cuvid


FFmpeg Can't Capture Window Rendered with Secondary GPU Edit: I am using the terms "primary" & "secondary" cards below loosely. I'm just assuming the Intel card is considered the first card.

I recently discovered how to use my secondary graphics card (nVidia GeForce 930MX) to render a game on my Windows 10 system. However, when I do so, FFmpeg no longer captures what is displayed in that window. It captures whatever is displayed from the primary card (Intel(R) HD Graphics 630) at the coordinates of said window. Is there an argument that can be passed to FFmpeg's gdigrab or dshow formats to specify on which card the window/app is being rendered?

Example of command with gdigrab:

ffmpeg -format gdigrab -i title="<window name>" -c:v libx264 -preset ultrafast -qp 0 \
  -x264opts keyint="1" "<outfile>"

Example of command with dshow (window info read from registry):

ffmpeg -format dshow -i video="video-capture-recorder" -c:v libx264 -preset ultrafast \
  -qp 0 -x264opts keyint="1" "<outfile>"

I have been searching around the internet for quite a while, but haven't found much information on it.

I did try using the hwaccel & hwaccel_device arguments, but still Intel card is captured. I'm thinking these are actually to allow FFmpeg to take advantage of the hardware resources for its own performance?

ffmpeg -hwaccel_device 0 -hwaccel nvdec -f gdigrab -i title="<window name>" \
  -c:v libx264 -preset ultrafast -qp 0 -x264opts keyint="1" "<outfile>"

ffmpeg -hwaccel_device 1 -hwaccel nvdec -f gdigrab -i title="<window name>" \
  -c:v libx264 -preset ultrafast -qp 0 -x264opts keyint="1" "<outfile>"

...

[AVHWDeviceContext @ 000001f78689ef40] cu->cuDeviceGet(&cu_device, device_idx) failed -> CUDA_ERROR_INVALID_DEVICE: invalid device ordinal
Device creation failed: -1313558101.
[bmp @ 000001f7883ada40] No device available for decoder: device type cuda needed for codec bmp.

ffmpeg -hwaccel_device 1 -hwaccel cuvid -f gdigrab -i title="<window name>" \
  -c:v libx264 -preset ultrafast -qp 0 -x264opts keyint="1" "<outfile>"

Edit: Perhaps because the command using -hwaccel_device 0 -hwaccel nvdec doesn't exit with an error, this means that the nVidia GPU is considered card 0 & Intel is card 1?

In case it helps, I am on an HP Pavilion 24-b217c.

For capturing (NVIDIA GPU rendered) chrome window, GPU compositing must be disabled via --disable-gpu-compositing. Maybe you can also disable it in your application.


How to batch cut a folder of videos with a list of timestamps What I would like to achieve is that a script runs through a folder of video files e.g.
001.mp4
002.mp4
003.mp4

and cuts these video according to a .csv or .xls or .txt with the timestamp e.g:
001.mp4, 00:00:00 - 00:00:03, 00:05:01 - 00:09:56,
002.mp4, 00:03:00 - 00:04:01, 00:06:01 - 00:08:00,

I would also like this to be as accurate as possible and wonder what the best approach is to get frame accuracy. I don't fully understand this, but some research suggests that the best would be to force keyframes at the edit points before cutting it.
The output should be named according to the video file name and cut times.
New folder:

001_000000_000003.mp4
001_000501_000956.mp4

so in pseudo code I would think the following:
for i in *.mov; do
   ffmpeg -i "$i" - force_key_frames-at-all-cut-points-according-to-csv file outputfile.mov (same as start file ?)
   ffmpeg -i "$i" - cut-video-according-to-cut-points "$i"+startpoint+endpoint.mov

In a next step it would be great to create these timestamps (with any software, ideally ffmpeg) by clicking and creating markers for in and out.
Any idea how I could achieve the first step would be great.
Also if there is already a ready script/software(open source) that can do this it would be great.
Thank you for your help.
Update:
I now have a .txt file with timestamps that I can extract automatically (every line a value in second like this):
timestamp0 (00:00)
timestamp1 (3.3 seconds)
timestamp2 (10.2 seconds)
timestamp3 (16.7 seconds)

Now I would like to parse always two pairs (e.g. timestamp0, timestamp1; timestamp2, timestamp3 ) and cut them from the larger video file and save them in a file with the seconds like this:
ffmpeg -ss timestamp0 -i inputfile.mp4 -t timestamp1 -c copy inputfile_time0_time1.mp4

How can I iterate over all the files in the directory, apply the cuts and save them to file ? Or if that is too difficult, how can I do this for one video ?
Thanks again

You almost invented EDL files. It can be rendered with almost any NLE editor.

If you want cut out part of file, you can use ffmpeg:

     ffmpeg -ss 3:00 -i file.mp4 -t 1:01 -c copy file_00300_00401.mp4

As you can see, here -copy option, so cut points will be only on keyframes. No quality loss. If you want more precise, you must reencode whole video (and possible move -ss option after -i)

To achieve your text format/file naming style, you must write script in any language. Just parse input data and paste it as ffmpeg's options.


Combining two video fields into one (to create an interlaced video) I have two separate video fields (top.avi and bottom.avi) and I would like to merge them to create an interlaced video.

Is it possible to do this with ffmpeg? (or any other tool for Windows or Linux)

ffmpeg log:

Input #0, avi, from 'top.avi':
  Metadata:
    encoder         : Lavf58.20.100
  Duration: 00:03:16.03, start: 0.000000, bitrate: 13509 kb/s
    Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv420p, 640x224, 13506 kb/s, SAR 1:1 DAR 20:7, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc

Input #1, avi, from 'bottom.avi':
  Metadata:
    encoder         : Lavf58.20.100
  Duration: 00:03:16.03, start: 0.000000, bitrate: 13507 kb/s
    Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv420p, 640x224, 13503 kb/s, SAR 1:1 DAR 20:7, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc

Use

ffmpeg -i top.avi -i bottom.avi -filter_complex vstack,il=l=i:c=i -c:v ffv1 il.avi

See docs for http://www.ffmpeg.org/ffmpeg-filters.html#vstack and http://www.ffmpeg.org/ffmpeg-filters.html#il


how can we shoot tv show so "tarak mehta ka ulta chasma" it will look like "house of card"? Hi stackexchange folks.

I need your help.

I want to know that if we want to shoot TV show as following like "house of card" TV show video quality. then what are the changes or steps we need to take. we need to make changes in cameras or video editing ?

Thanks in advance.

I see four basic differences (in what I believe is the correct priority order):

Lighting.  The lighting on Kevin Spacey is classic three-point lighting with warm fronts, a 2:1 key/fill ratio, and cold back/rim/hair light.  Proper 3-point lighting is the biggest difference between the pro look of episodic television and the amateur look of most YouTube videos.

Resolution.  House of Cards is shot in 5K and mastered in 4K resolution.  You can see it even in greatly scaled down images.
Sensor size/shallow depth of field.  With a large enough image sensor and a large enough lens aperture, it's possible to get crisp focus on the subject and beautiful blur in the background, which as you rightly observe, make you really pay attention to the subject instead of all the many distractions surrounding them.
Set design and wardrobe.  The muted colors (and lower light levels) of the background and the dark suit again focus the viewer on the face and hands (key dramatic communicators) of the actor.  Contrast that with loud colored clothing and bright walls, the eye is overwhelmed with too many subjects to deal with.

Slumdog Millionaire got all this right.  You can, too!


Selecting specific part of a video I have a video which I need to analyse. The analysis software recognizes objects outside the area of interest and I would like to limit it to the specific arena. In order to do so I tried cropping but unfortunately my arena isn't rectangular. I thought about blackening parts of the video. But how will I be able to do so? I'm a technical person but I don't have any experience in video editing and I'm also working on a low budget.
Does anyone have any idea how to solve this problem?
Best regards,
Morris

You haven't specified which program you are using, but assuming that you have access to After-Effects or any Node- or Layer-Based compositing-program, you would want to rotoscope the area, that confuses your analysis. This is the same principle as using a camera-tracker, but subtracting moving areas or people in your footage. To do so, you would simply have to import your footage in, say, after-effects, grab the pen-tool, mask out the undesired area, set the mask so "subtractive" and render out the video again, preferably in prores4444 or any other (near) lossless codec and container.
I hope this helped, have a good day :)


Windows Tool for Extracting enhanced images from video I am looking for a Windows tool for extracting photos from videos, taking advantage of similarity between subsequent frames to enhance the captured still images.

There used to be a product for this, Topaz Moment, but this is no longer offered.

I’m interested in this, as I want to extract photos from my vacation video.

Any ideas?

If your actually looking to produce a single image from a number of temporally-local frames,  then your probably looking at doing some kind of superresolution or drizzle integration. There are tools that do this. I use them for astrophotography myself, such as Registax and AutoStakkert!! 2. These are designed to generate astronomy images, such as planets, the moon, the sun, from video sequences.

For these applications to work, they expect that the entire video sequence is generally going to be of an identical subject, and that only the quality of the contents differs. This implies that one has the ability to track or otherwise maintain identical subject framing. AS!2 is the one I use most, and it will sort the video frames by quality such that ones overpowered by seeing are dropped, and the best are kept and stacked.

The results can be quite stunning, detail can far surpass that of a single frame or even a high quality still.

I am not sure if this is what you are looking for, however it's the closest thing I can think of. Maybe the terms super resolution and drizzle might help in your search.


wrapping circular black frame for video - What is this effect called? when using magic bullet looks on a video it applies - alongside color corrections and such - a frame, some sort of wrapping mask thingy - a black outline for the video the gives the center a bit more focus. You can see it pretty clearly here:

I want a png of that. Just that. I am searching Google for all kinds of word combinations but nothing. What is this effect called??

it's a vignette.
Here's a tutorial on how to do it.

If you add a black solid layer to a comp, then feather the edges, and invert the mask, you'll get the basic effect.  Beyond that, some people used coloured solids (e.g. just off-black in one colour or another).  You can also apply a blur or defocus effect towards the edges of the image, if that's the look you're going for.


Repair corrupted video files After experimental restauration of btrfs sparse file image, a lot of my video files have missing or added bytes, but only some (file sizes are identical to size of original except < 100 bytes). Is there a program which can

recognize the video container and encoding (could may also be done separately with a script)
repair the video file based on eventually existing checksums (I have no idea how popular video formats work)
recognize missing bytes causing the failure of rendering for single images/sequences and replace them with black images

(1. is optional, 2. and 3. alternatives for each other)?

Completely depends on the video codec and container format, there is no general tool to fix corrupted video files.
Regarding avis with missing headers there is a good answer on this question.

The info there also helps with recovering other video formats.

To find more info about a certain file I recommend using MediaInfo in addition to ffprobe. It offers some more info about codecs and container properties than ffprobe and is easier to read.

If chunks in the video stream are corrupt it won't hinder playback of the stream you will just experience artifacts around these chunks.


How are motion graphics like this created? A few days ago i was browsing a forum, and I came across this person's signature which was underneath their comment. I contacted them a few days ago because I was interested in how this sort of motion graphic was create but I had no response due to me only realising that they had been offline for over 2 years. I couldn't find out anything about them. But I wondered if anyone knew what I might have to search to find out how I would make this? Or if any of you knew how/what software is required to do it? I have after effects along with other adobe products but I doubt it's the only thing required.

Thanks in advance,
David

Totally doable using After Effects as it comes out of the box.

I'd be making each letter a separate layer, turning that layer into a matte for the colour, which would be provided by the gradient ramp effect (there's a subtle red-purple gradient in the letters). The reveal would be done by either making an animated mask to control the moving colour, or the stroke effect with the brush size large enough to fill the strokes of the letters.

3D extrusion is done with the built-in 3D extrusion in the ray-traced 3d renderer. You'd have to pre-comp the coloured layer probably ifyou're using track mattes etc.

The movement would be a combination of keyframes and the wiggle expression.

There are probably a dozen more ways to do something like this–this is true for anything in AE.


What does ALL-I mode mean? I've started seeing this term mentioned in camera specs but have no idea what it means. It somehow relates to recording video.

Can somebody please explain where does it come from and what it means?

Here's all I found:
http://www.dslrnewsshooter.com/2012/03/02/canon-launch-5d-mkiii-headphone-jack-all-i-recording-and-better-controls/

  The compression system is the same as the 1D X and supports the higher
  bitrate ALL-I compression system alongside a more regular IPB option.
  The ALL-I mode is supposed to offer easier editing due to it’s less
  compressed nature, whether it also offers improved quality over
  standard IPB remains to be seen.

Also, the upcoming Panasonic GH3 has

  Video Bitrate 50Mbps (72Mbps ALL-I)

Never seen this thing before...

This will get migrated but the short answer is that ALL-I stores every frame in it's entirety, whereas other methods store a certain number of keyframes in entirety, with the other frames stored as the difference to the keyframe.


Real Time personalized videos I would like to achieve a video with custom text pulled from a database or user input as the following :
http://videopersonalization.net/kia.html

Can somebody shed some light on the process without using a third party please ?

This is effectively a streaming media server tied to a live renderer.  Rather than save a recorded video, when you make a request for the video, it accesses a live stream.  That live stream uses the contents of the request to run a template video and encode in real time.  That real time stream is then played for the user.

You could probably manage to wire something like Red5 up to be able to do this with some alterations.  The big trick would be kicking off the live stream as part of the processes.  You also need sufficient rendering hardware to be able to generate a distinct live stream for each request.  You also need a real time video rendering system that can work with templates.  There is tech like this for video mixers, but I'm not sure of any particular software that does it in software in real time.  Some streaming oriented software may be able to do it though.


How to compromise between byte rate, resolution and fps I want to stream a video on a device full screen (therefore, the dimensions of the display are fixed)

What should I focus on to offer the best experience for a given bandwidth? Should I have other concerns than bandwidth (GPU...)?

Here is my understanding so far:

fps is very straightforward in how it works. I don't seen a big difference between 15fps - 30fps+ (compare to the other parameters I can change) But since videos are compressed based on frames deltas, I'm not sure caping fps save any noticeable bandwidth. It might save GPU decoding and rendering, but I'm not sure of that either: Let say the screen has a refresh rate of 60Hz, would that help to have a video fps of 15 vs 30? It still probably helps on the decoding, but most devices are fine with those rates.
dimensions (ie 720p, 2k...) The video will be stretched or reduced to fit screen size. For a constant byte rate, Do I get a different result with a 480p with 0.1 byte/pixel/frame ratio vs than a 720p with a 0.04 byte/pixel/frame (~same total) ?

Would the response change if the size of the screen is roughly 480p vs much larger?
Does that impact decoding/rendering at all? I guess decoding because you have to decode every pixel. Not sure about rendering since the size of the displayed video is fixed.

Finally byte rate. This is the closest parameter to the bandwidth constraint. Is fixing byte rate gonna find the best compromise to do to offer the best quality, or should I still change other parameters?

Does changing keyframes frequency lower the bandwidth used (while having the downsides of having less keyframes like for seeking)

(I'm using ffmpeg h264 encoder)

Since bandwidth is fixed, first step to maximize quality is to full use that bandwidth so bitrate should be set to that number.

Frame rate will make a modest difference, once a fixed bitrate is specified, since typically x264 places keyframes 250 frames apart and so all or most frames in a random second are delta frames, so leave that between 24 to 30.

For keeping a given quality, size increases, but not linearly, with resolution. So 1080p, with 2.25 times the no. of pixels as 720p, takes around, say, 1.5 to 1.8 times to keep the same quality. This choice depends entirely on the nature of content. For live-action material, 480p is good enough. Remember, till the advent of HD a decade ago, American television audiences had been watching 480i feeds for decades. For 2D animation, with sharp edges, 720p may be a better choice.


Does transcoding always mean quality loss? Can I transcode video from h.265 to h.264 without loosing quality?

My instinct is that it should be fine, that with approximate quality settings the new files will be the same quality but larger file size.  Or am I wrong, does transcoding from one codec to another follow the principle of "copy of a copy always means lower quality"?

Generally, H.264 and H.265 (as well as others like VP9) are lossy codecs, at least in their default settings with most encoders. This means that whenever you re-encode from one to another (or even in the same codec), you throw away information.

Whether this information loss is visible or not depends on your source material and the chosen settings, of course.

To combat the loss of information, you often need to choose a higher bitrate than what your input is, or a higher constant-quality setting than the default of the respective encoders. There is no "general principle" here – it really depends on what the default bitrates or quality targets are for the encoders you're using.

  Can I transcode video from h.265 to h.264 without losing quality?

Yes, you can. There are two ways to do that, depending on how you define "losing quality":

You can enable a lossless mode for these codecs, at least with the x264, x265 or libvpx encoders. This will perform lossless transforms without quantization and disable color subsampling (i.e., 4:4:4 output). The output is mathematically lossless. If you do not have to use H.264 or H.265 specifically, other lossless codecs such as HuffYUV or FFV1 exist.
You can try to find the threshold where any (mathematical) quality loss is not visible anymore to human subjects, that is, within the range of a Just Noticeable Difference. This requires a bit of testing with different settings and repeated viewings. Some codecs are better at this, in terms of their default settings, like ProRes, DNxHD, etc.

For more info, read this: ffmpeg settings for converting still images to video for archival


Mono to Stereo using FFMPEG I have an unusual problem that I hope someone can help me solve.
I have 45 video files that I'm batch encoding as MP4.
Some of those files have their audio channel position set to Front L R and others have have it set to Front C.
However, the distribution system which these videos are sent to (and which I have no control over) does some re-processing of these videos.
All the videos that have their Channel Position set to Front C are coming back with distorted audio.

My question is:

Does anyone know how to encode a video with ffmpeg and force the audio channel positions to be Front L R?
(I have carefully studied this page (https://trac.ffmpeg.org/wiki/AudioChannelManipulation#monostereo) but it was not obvious what the solution might be)

Thank you!

If you run ffmpeg -layouts, you will see that stereo indicates the presence of two channels, one assigned as Front Left and the other as Front Right. If you use -ac 2 in your encode, ffmpeg will create a stereo layout output by default. FFmpeg does not display the individual channel assignments in the readout of the file.


Tagging each player's touches in a soccer game I'm a soccer coach and I'm always looking for ways to help my players improve. For example, we record all of our games so the players can watch them afterwards. However, I find it to be an inefficient use of time for a player to watch the entire game if they only touch the ball 17 times, for example.

My question:  is there a way for me to tag every time each player touches the ball? Then when a player reviews the video, after I finish this editing run, they can pull up the 17 times that I've tagged them? I'm open to using whatever software and process would best meet my need.

Thank you in advance for any help you can provide!

My solution here is time- and labor- intensive, but it will work. I'm tailoring it for Adobe Premiere, since that's what I use, but any multi-track editing software should be able to handle this.

The person editing the video brings the footage of the game (which I'll call the "main video") into the timeline. Then the editor adds a new video track for each player who was in the game.

The editor watches the video of the game (the "main video"), and each time a particular player touches the ball, the editor

cuts the main video before and after that touch
copies that clip from the main video
pastes it onto the track for that player

If two players are touching the ball simultaneously for some reason, the clip gets pasted into both their timelines.

After the whole main video has been "distributed" this way, there will be big gaps between the clips in each players' timeline. The editor now removes the gaps from each timeline.

The editor then hides all tracks except player #1, sets the correct endpoint of the video (for that track), and exports that as its own video. The file name for the export can be that player's name. The editor then hides player #1, and displays player #2, sets the video endpoint, and exports again.

This whole process is somewhat tedious, but it will work. I'll be interested to read other people's ideas!


Can't tell if prores4444XQ is any different than prores4444 in ffmpeg 4.1 Using ffmpeg 4.1 and prores_ks codec.  I've encoded various clips into 4444 and 4444XQ.  All play and look fine but when I try to use -pix_fmt yuv444p16le for 4444XQ I get the warning:

Incompatible pixel format 'yuv444p16le' for codec 'prores_ks', auto-selecting format 'yuv444p10le'

My 4444XQ files are bigger than my 4444 files so there is an increase in bit rate.  But I was under the impression than 4444XQ supported 12bit color while 4444 only supports 10bit color.  There is no 12bit pix_fmt so I just assumed it would take 16 and do the down convert.  Maybe this is a limitation of the current ffmpeg builds and prores_ks needs to either do its own up/down bit depth conversion and/or ffmpeg needs a 12bit pix_fmt?

FFmpeg does have 12 bit pixel formats but the prores_ks encoder is limited to 10 bits. The 4444XQ profile features higher bitrates. Open a ticket at trac.ffmpeg,org, if you like.


Convert video from 24 to 25 fps while keeping video and audio length and also correct audio pitch With ffmpeg is possible to convert an input 24 fps video/audio to a 25 fps one while keeping the same exact duration, and also keeping as much as possible the original audio pitch ?

I was thinking about the -r option and also a sound filter but I don't know what to add to my command line:

ffmpeg -i input.mov -r 25 -c:v libx264 -crf 18 -c:a libfdk_aac -global_quality 3 output.mov

Your command already achieves that. When specifying -r as an output option, ffmpeg will change the framerate of the video, duplicating or dropping frames as necessary to achieve the same overall duration. The audio stream will be processed independently, thus not affecting the pitch (since the overall duration is not changed) or sync (since the timestamps of both streams stay aligned).

-global_quality is not valid. For libfdk_aac you should use the -vbr option as mentioned in the AAC encoding guide.


Is anyone in this group selling educational videos via a hosting website (in my case Expertise TV)? I have a series of educational videos ready to sell. I am now starting to panic about them being shared all over the internet for free. Is anyone here already selling videos and finding that it is worthwhile despite the risks? Any tips?

I am not, but I am involved with a streaming TV series which is distributed online.  In general, online distribution channels are worth it for the accessibility and ease of use it brings you.

There is always the risk of people pirating your work, but that risk exists even if you never put things online.  If you distribute DVDs, there is nothing stopping someone from ripping them and posting the content online.  If your platform of choice employs DRM, then it provides at least a minimal barrier to copying the content online trivially (though determined people will still manage to do it, but they'll succeed regardless of distribution channel).

If you currently only do live events and are wondering if video is worth it vs just doing live events, that's a little more tricky as a much more limited group of people would have the opportunity to film you with their phone and post it (and the quality would be substandard at best for such videos) but if you are already recording your lectures, then online distribution carries a lot of benefit for the risk involved.


ffmpeg - Apply padding to input images while combining multiple images and audio track I am using below command to create a slideshow using ffmpeg:

ffmpeg -r 1 -i IMG_%04d.jpeg -i audio.mp3 -c:v libx264 -c:a aac -pix_fmt yuv420p -r 24 -y output.mp4 -vf pad=ceil(iw/2)*2:ceil(ih/2)*2

I had to add pad=ceil(iw/2)*2:ceil(ih/2)*2 to make width or height even number because if one of the input image width/height is odd, ffmpeg throws error. Now my problem is; input images can be of different resolution and aspect ratio. I want to add padding (left/right or top/bottom) to all images to make them of equal size before they are converted into video frames. How can I achieve this in efficient way?

Edit:
It would be nice if I can specify output resolution and all images are either scaled down or up keeping their aspect ratio intact according to that resolution.

If your output resolution is AxB, then your filters would be

-vf "scale=A:B:force_original_aspect_ratio=decrease,pad=A:B:-1:-1"


Masking out Text in Premiere Pro 2019 I have end credits rolling over an image in Premiere Pro 19.

For a few seconds, I want a part of the image (the dog) to appear over the text. Therefore, I thought that I could mask the dog his head in the text frame, and then invert the mask. That way, only the dog head appears over the text. This worked at first. However, then I tried to apply the same formula again, somewhere earlier in the video by creating a second mask over the text, and then the effect failed. I do not understand why. I tried restarting Premiere, but it did not work.

I added a youtube video so that my settings are visible:

Thanks for all the help, in advance.

I would duplicate a copy of your background (doggy) layer.  Put it on top of your text layer, then animate the mask on your foreground layer. So in total you have three layers:

V3 - foreground dog (masked)

V2 - text credits

V1 - background dog (and everything else)

(I reckon masking like this is easier in after effects but can be done in Premiere)


FFMpeg and HLS, videos need to load in their entirety before they start playing I am using ffmpeg to generate a segmented list of files in order to stream them to an iOS app. The list of files is generated fine but when it comes time to play them, the video needs to be downloaded in its entirety before playback starts. This behaviour seems to be the case on iOS, Safari and VLC.

Does anybody know why this is happening and how I can improve the performance of playback? I have complete control over how the files are recorded in iOS, as well as how they are processed. Here is a sample stream:

http://www.bytesizecreations.com/storie-test/hls.m3u8

Here are my ffmpeg commands to generate the segments from the file:

ffmpeg -i joined.ts -flags -global_header -vcodec copy -acodec copy -map 0 -f segment -segment_time 2 -segment_list hls.m3u8 -segment_list_size 999999 -segment_format mpegts out%03d.ts
Here is the output of ffprobe on the file:

  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, mpegts, from 'joined.ts':
  Duration: 00:00:07.96, start: 1.441667, bitrate: 3899 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720, 24 fps, 24 tbr, 90k tbn, 180k tbc
    Stream #0:1[0x101](und): Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, f

So it turns out after a lot of research that this is the desired behaviour for Apple's AVPlayer component. Basically, my Internet is so slow here where I live, the component waits until the video has fully downloaded before it starts playing. The best and recommended way around this, is to generate alternate streams for the video before trying to play it. Here is documentation on the m3u8 format and HLS streaming guidelines:

https://developer.apple.com/library/ios/documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html

I followed the above and generated two extra streams from the original: a 200kbps, 400kbps, and playback now starts almost immediately. Your mileage may vary depending on the speed of your Internet connection.

Alternatively, if you don't have to use something like HLS, you can use plain mp4 files. Make sure that they have -faststart enabled if you are processing the file with ffmpeg.

Update: To simplify this for other developers, I have released an SDK that is able to upload your mov or mp4 files to a cloud service and convert the file to an HLS compatible stream. The SDK can be installed via Cocoapods and you can access documentation and the framework here:

https://github.com/Storie/StorieCloudSDK


How to set up streaming from two webcams or stereo camera (2x lens) to VR headset with minimal latency? I have watched Barbie doll illusion on youtube and wanted to set this up myself.

I already have tried doing it with 1080GTX + Samsung S8+ + GEAR VR + WebCam + RiftCat + SteamVR + Oculus + OVRdrop over 5G Archer C7 wifi. However, the lag is at least half a second and experience just does not work.

I am ok with buying additional equipment (different VR headset, camera, etc), but before investing in equipment I would really like someone to have already tried it.

How to set up streaming from two web cameras or stereo (dual lens) to VR headset without (or minimal) latency?

Wireless will always give you some latency (if you're not spending a fortune). I would recommend you try using sdi cables. In video-production, sdi is often used for immediate feedback to the directors monitor etc. - so you should have less of a problem with latency there.


ffmpeg add a intro photo before video I currently have a line that makes my video have a watermark in the bottom right corner.

ffmpeg -i video.mp4 -vf drawtext=text=WATERMARKTEXT:x=w-tw-10:y=h-th-10:fontfile=\\Windows\\Fonts\\Montserrat-Regular.ttf:fontsize=32:fontcolor=white -vcodec libx264 -crf 20 -acodec copy output.mp4;

What I want to do is add an image file .png or .jpg doesn't really matter and display that before the video starts for 5 seconds.

Is this possible all I could find and understand did something with combining the video and the image but if I do like that I will have to encode it with watermark first then combind it with the other one.

Use the concat filter to join the image to the video:

ffmpeg -framerate 25 -loop 1 -t 5 -i image.png -t 5 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -i video.mp4 -filter_complex "[2:v]drawtext=text='foo'[main];[0][1][main][2:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4

The image should be the same width and height of the video, so you may have to add the scale, scale2ref, crop, and/or pad filters before concatenation.
If the main video has audio then the image needs have audio as well. Generating silent audio with anullsrc as shown in the example can suffice. Make sure to match the channel layout and sample rate of the main input.


Can I charge to view videos of other people performing? I want to start out by saying I am not doing this now or in the very near future. however, it is something I would like to do and wish to do.
I tried google but found nothing.

Can I video record other people performing musical sets at competitions and charge to let people stream those videos online?
The subject are Pipe Band competitions. The BBC records & shows the World championships every year, however this is in corrolation with the RSPBA (Royal Scottish Pipe Band Assosciation) who organise and run these events. The RSPBA also make a yearly DVD of the "Worlds" which they sell.
However, the "Worlds" is one of 5 yearly major championships and (bad quality) videos from those other 4 (and the worlds) get good views. I thought about perhaps videoing the bands perform and charging for a pass to a website where people can watch the videos.

Although I think that it may be illegal to sell videos of other people performing? Especially if the event is organised by the RSPBA who may own rights by default?
Lastly, I'd like to add that I am in the UK.

Disclaimer: I am not a lawyer, this is not legal advice, just my understanding of common application of copyright law. Copyright law varies between countries and even within countries, so you should consult a lawyer who is familiar with the copyright law in any relevant jurisdictions before proceeding.

You would need permission from the performers and may also need to pay a fee for reproduction of the music or any other copyright aspects of the performance (this can include lighting effects, dance moves, or any other creative aspects of the performance).

The performance itself would be copyright by the performing group, whoever is paying them to perform, or whoever organised the event, so you would first need their permission to reproduce the performance. This of course may involve a licensing agreement.

The music they are playing might also be subject to copyright, depending on how old it is, so you may need to pay the owner of said rights to reproduce it (yes, even though its someone else performing).

Other aspects of a performance can also be copyright; things like dance moves, lighting effects, any other video/music playing that might be visible, costumes, props, any artworks or even advertisements visible in the video. That said, may all be owned by the event organiser/producer so that may simplify things. But it can be harder in a public space to get permission from all relevant parties.


GoPro Footage with Adobe Premiere is stuttering Okay.

I searched many internet sites but i can't handle this problem.

My PC:

6 GB RAM
4* 2.4 GHz CPU
1 GB Radeon GPU
SSD for System and Program
HDD for Video footage
Software: Adobe Premiere Pro CS6 with TotalCode Package.

Video footage:

Captured with GoPro
1920*1080
29,97 fps
MP4 Format
data-rate 35140 kBit/s
Clip 28s, 123 MB.

When i open this Clip within Adobe Premiere, create a sequence from the clip and try the preview the first 2 sec will play smooth and after that the video is jumping and stuttering or after running 2 sec the preview freezes. No effects applied. (CPU Usage ~50%, all cores)

So my Sequence settings are: Rovi TotalCode AVC-Intra 100, 1920*1080 30 fps Non-Drop-Frame-Timecode. No matter if i choose the TotalCode renderer or the Mecury Renderer. Video preview is set to AVC Intra-Class 100 1080 24p (or 30p or 60i - no difference).
Video preview format makes no difference between full, 1/2 or 1/4.

I think because i created the sequence from the clip, there is no red/yellow/gren bar over the clip in the cutting window.

I get better results if i create a 720p sequence (for example: For editing 1280x720 AVCHD type video. Widescreen NTSC video (16:9 progressive). 29.97 fps 48kHz (16 bit) audio.). When i insert a clip and preview it the video stutters and jumps. But now i have the yellow bar. If i render the whole working area the preview plays smooth.

Okay - now i would say: its my fault, my PC has not enough power.

BUT:

if i convert the MP4 via GoPro Studio to avi (Medium resolution) with the same specs (1920*1080*29,97) i got a 520 MB file (so roughly 4x the size of the original video).

When i use this clip instead of the MP4 the preview will play smooth (or nearly smooth) (CPU usage ~50%, all cores).

So Adobe Premiere has a problem with a data-rate of 35140 kBit/s but not with 151182 kBit/s on my PC? Hard to understand that this should be a performance issue...

I also tried to copy the clip to my SSD and start playing it, but nothing happens. Also tried to safe my project files on my SSD, not working.

I also tried to change the optimize rendern setting between Memory and Performance - nothing changed.

I saw this question:
Adobe premiere is lagging in preview window -> Because of the mentioned AVI i don't think it has something to do with the data size.

Editing 1440p @ 47 FPS in Premiere Pro CS6 -> Much higher data-rate and video quality.

Adobe Premiere preview video lagging -> also talks about data rate (think this doesn't apply because of described avi/mp4 behavior)

Does anyone have some more ideas? Of course i could just convert 20 GB from mp4 to avi, but i'd like to safe this additional space on my hdd.

The reason Premiere runs just fine with a massive file but struggles with a smaller file is the issue of data compression. Many people (logically) believe that the two tradeoffs between high and low compression codecs is information vs. space, and that codecs with more information will take more processing power to process. This is actually not the case. While more compression will cause a loss of visual information, it also makes the data more difficult to process because the CPU (or the GPU in the case of accelerated hardware) has to decompress the codec information before it can be displayed. This means that codecs like h.264 and VP9 are more difficult to process than DNxHR and Prores.

If you can give more information about your CPU and GPU, I can adjust this to be more useful to you. The main issue I see in your specs is a mediocre CPU and GPU. The all-intra bit encoding (all-intra isn't technically a codec, just a means of storing data within h.264) uses single-frame compression. This helps retain more information and improves scrubbing performance within a video editor, but it makes playback more difficult than a normal h.264 encoding. While I'm no expert on the subject, I imagine that any hardware h.264 acceleration your computer has may not be able to process all-intra.

My personal recommendation would be to upgrade your GPU to something like a GTX 950 or a GTX 960, or simply convert your files to a visually lossless format such as DNxHR before you begin editing.


How to encode 60p MP4 video to play on TVs? I have 60fps MP4 videos shot with a Canon G7x camera.  They playback find on my laptop, however I would like for the videos to be playable on TVs that have video file playback capability (such as my Samsung Smart LED TV.) I have tried converting to .MOV using QuickTime, but that format also does not work.

Is there a way to prepare such videos to allow them to play directly on TVs?

Unfortunately, smart TVs are still a relatively young market and the ability to play back video files is not yet uniform.  Each TV may support or not support a variety of formats, resolutions and frame rates.  Your best bet is likely to stick to formats used by popular services such as youtube and NetFlix as these platforms increase the likelihood that a manufacturer will support that specific format.

Alternately, if you know what model TV you are targeting, you can look at the documentation for the TV for the specific codecs and frameratest that are supported by the TV and pick one of them to match.


Setup for including commentators in live stream (including monitoring) I'm currently planning a live stream setup which has to include two commentators. This is a bit of a make shift / low budget production. Our setup will be

Panasonic Mixer with 4 SD Inputs to pre-mix four cameras. The PGM will go into
Blackmagic TV Studio, for additional 2 Cameras + Titles

The resulting PGM will go into the encoder to be streamed.

Now those commentators need to hear the program audio, but not themselves. My first idea was to plug a de-embedder into the PGM output of the TV Studio, feed this audio to the commentators AND into an audio mixer to include the two microphones. The resulting audio will got to the encoder. But I'm pretty sure this will cause a delay through the mixers latency and audio will be out of sync, right?

What is the best way to include the commentators AND get the "clean" audio for them? Remember the BM TV Studio has NO audio output. Only an audio input where I could feed the mics. But then I have no "clean" sound ...

Can anyone offer advice?

Thanks!
thomas

When I first started doing this, I always thought it was better to give them "clean" audio as well. I've since figured out that they want to hear themselves. Also they want to hear each other, so really you do not want a separate feed for them.

Depending on what you are broadcasting, you may not even need the sound from the event.

The only issue you're going to run in with a delay in the video to them commentating is if they are only using the video feed to do it, not the live event going on right there.


Adobe premiere pro video overexposed after import I'm importing Samsung Galaxy Note 10 plus recorded videos with following codec information to the premiere pro CC v13 (windows) and the imported video looks over-exposed with incorrect gamma.

  Codec: MPEG-H Part2/HEVC (H.265) (hvc1),
  Video resolution: 1920x1080,
  Buffer dimensions: 1920x1088,
  Frame rate: 29.993225,
  Color primaries: ITU-R BT.2020,
  Color transfer function: SMPTE ST2084,
  Color space: ITU-R BT.2020 Range,
  Max. luminance: 1000.0000 cd/m²,
  Min. luminance: 0.0050 cd/m²,
  Primary R: x=0.1500 y=0.0600,
  Primary G: x=0.6800 y=0.3200,
  Primary B: x=0.2650 y=0.6900,
  White point: x=0.3127 y=0.3290

Video looks normally when playing on VLC media player or on the phone. I have installed kLite Mega codec pack 14.4.5 on my computer. Video become somewhat normal when exposure is reduced in between (-2)-(-3).

If you have any clue on this or a solution appreciates a lot. Thank you.

This happened due to the display's inability to handle HDR videos. Color space: ITU-R BT.2020 defines a HDR video. As a solution I used 'confirm SDR' effect in premiere pro which converts the video into HDR color range.


Batch Processing Moved Assets in Premiere I know how to reconnect to an image or audio file that has been moved or renamed. But suppose I move or rename a folder with 50 images. Do I have to open Premiere and reconnect with each asset, one at a time? Or is there a way to expedite the process?

You should only have to relink one of the assets per moved/renamed folder, Premiere will then automatically check for any other offline assets in that directory and relink them. Depending on your version of Premiere Pro there will be a checkbox in the Missing Media dialogue that will allow you to toggle that behaviour:

Premiere has also been made smarter successively. For example, the CC version will remember the last 10 locations of your assets and check those automatically in case of offline media. It might also relink all your assets in different folders if the overall folder structure of the project and/or the relative path from the project file to the media file haven't changed, but I'm not sure about that.