text:
Make video look like it was shot in a dark room
So I'm working on a video that I want to look a bit cooler. It was shot in a normally illuminated room (no special equipment, only normal light bulbs), it looks like this:

With a person sitting in front of the laptop. There are also over-the-shoulder shots with the laptop display being shown.
So, I want to make the video a bit darker and surreal. It does not have to look like it was actually shot in the dark, it would even benefit from looking a bit unnatural and obviously edited. To be more specific, I want the person sitting in front of the laptop (as well as the laptop itself) to be clearly visible, whilst the table, the chair, and everything in the background gets darker and unobstrusive.
I'm using the current version of Premiere Pro. What is the best approach to get that kind of effect?
And please, no lecture on good preparation and such. The recording was done in a rush and the whole video is kind of a last-minute thing. It doesn't have to look perfect, I'm open for suggestions ...

You are lucky that you don't have extreme lighting conditions in your shot, also you're indoors. So it should definitely be possible to get the footage a bit darker looking without making it look weird.
I can recommend working in After Effects rather than Premiere, its far more suited for advanced lighting correction.
I would start by masking the already dark areas of your footage and make them even darker. Try to create a more focused looking light that's coming from the light bulb/screen or whatever light source you want to have. If you want to create new light sources you will also have to make some masks to emulate the way the light would shine on the surrounding objects.
The whole part behind the chair should be a lot darker.
Generally make everything that is already in a shadowy area even darker and lower the brightness of the image overall to a point that feels good.
Also something that should help is this (bit dated) tutorial by Andrem Kramer. Its not perfect but definitely a good help to figure out the workflow:
http://www.videocopilot.net/tutorial/day_to_night_conversion/

Nice Tutorial, thanks for sharing! Tried it yesterday, got decent results from a minimum amount of work, perfect °ω°

It's not that bad to convert from day to night if you just need to bring the overall levels down and you don't have any strong shadows or blown portions of the image.
Unfortunately however, you are trying to do something much more complicated than that.  You need to actually alter not only the overall lighting of the scene, but make it seem like it had extra lighting on the area in front of the laptop that wasn't originally there.
This complicates things considerably.  If it is a fixed shot and there is nobody in front of the light, then it might not be that bad, however, since you want the light to emit from the screen, you will need to make sure you track any motion of the screen in 3d (a tool like After Effects is probably best for this).
You then need to know the geometry of the scene around the laptop, including any actors.  This is because a laptop screen isn't just going to make light, but it is also going to make shadows on anything that is in line with it.  You need to be able to track these objects and update where the shadows should fall and try to simulate how the light should fall on them.
In short, this is a massively time consuming and technically challenging process to do correctly.  Despite the fact you said not to lecture about good preparation, you are getting the lecture anyway.  Handling lighting in post is a major pain in the butt.  It interacts in complex ways that you can't replicate from a 2d image without major, extensive effort on a frame to frame basis.
If you are really in a jam, you can try just doing the motion tracking on the laptop and use a mask with faded edges to reduce the drop off in brightness of the shot to make an extremely primitive lighting effect, but the result is going to look more like a highlighter on your video than light coming from the laptop.

But I said no lecture °д° :D
As you assumed, that would be way to much work. Luckily, all the shots had fixed camera positions, so I got it to look somewhat ok ... I'll keep your remarks in mind in case I ever want to do something similar and have more time and enthusiasm >///<


text:
Is it possible to automatically generate highlights from video?
Given a video of a soccer/futbol match recorded from a single camcorder. Is there any way to create a highlights video that would only show the goals?
Since the view is static, is it possible to say something like "every time the ball is in either one of the goals, go back three 3 seconds create a clip of the goal". Do it for every goal scored and then merge those goal clips to create the goal highlights.
Any ideas?
Thanks.

Theoretically, sure, it is probably possible to devise a computer program that could recognize the ball entering the goal and cut video around it, however this would have to be custom computer vision code and not something that would be generally available to the public.
It probably isn't as simple as just a motion trigger either since it needs to be something just the right size moving.  It would also be exceptionally hard to tell a goal attempt apart from a goal, though perhaps you could have it watch the net for movement using security camera software or something related assuming that the net is otherwise pretty static (and depending on your angle).
Overall, I wouldn't expect the greatest of results from such a system though.  It sounds problematic at best, even if you can get it working in the first place.
If you can synchronize a clock with the start of the recording, your better bet may be to hit a button during the game to take note of the time each time a goal is made and then try feeding the list of times in to a scripting based video editor that can cut 15 seconds before the goal and a few seconds after from the video and put them all together.  It's probably less work to get configured and more reliable, but it still would be a fair bit of work to do.

Thanks for reading my mind and answering my follow up question regarding recording goal times.

Well, theoretically yes. You can do that with OpenCV but its not an easy task and as long as this isn't a commercial project that promises to give you a substantial amount of money, it's absolutely not worth the time effort.
There is no video editor that would let you do this in a short amount of time in a GUI.

source: Stack Exchange

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

sort: votes


text:
Crop video in ffmpeg without re-encoding
I have videos I want to split across multiple screens, so the solution I've found so far is to just crop the input video 4 times with ffmpeg (is this optimal? Is there some other way so I only need to use one command?)
Anyways, in ffmpeg crop is a video filter, and it seems that I can't specify the video codec as copy when using a video filter. Why is this the case? It seems like nothing should change if I just remove some of the video. I should be perfectly capable of just copying the same video over, with just part of it removed.
Is there any way for me to do a crop in ffmpeg without having to do a re-encode? The extra encoding time makes my processing times really long and the new bitrates caused by the re-encode makes the video parts out of sync and unable to be played properly.
Thanks

Old question, but depending on your exact situation, there are some possibilities for lossless cropping described here: https://stackoverflow.com/a/33422359/931860

A videofilter in ffmpeg always has to modify pixel information hence the reason why you need to re-encode.
It seems logical at first that you wouldn't have to do this when cropping but the way lossy video codecs work makes this pretty impossible without re-encoding everything.
They usually don't see an array of pixel information but a much more complex representation of pixel blobs that are described in a way that takes up less space than the original pixel blob, you can't really "crop" that encoding, to do a crop you would first need to decode the information to know what you are dealing with but then you need to re-encode to have it compressed again. Thats the main stepping stone.
Then they also use things like motion estimation that depends on information before and after certain frames, if that information changes all of the sudden the whole thing is screwed up and you end up with tons of artifacts when decoding the video during playback.
tldr; no its not possible to crop without re-encoding in any tool.
Unless you deal with some very specific lossless non-consumer intermediate codecs that would enable it but in that case transcoding wouldn't be an issue.

Interesting bit of trivia: the way QuickTime movies work (.mov, at least pre-QuickTime X) actually did let you define and store crop, resize, minor edits, and even masks as metadata alongside the video stream; the player would just apply them on the fly.

Interesting feature but sounds like a feature that probably has caused a lot confusions when a small resolution video is taking up huge amount of space because it was heavily cropped and you don't know why.

The only thing I would add is that some formats might support splitting along group of pixel boundaries, but this would only work in very specific formats using particular settings, so there is a slight caveat, but effectively, it isn't possible in most cases and isn't worth doing in most of the situations where it might even be technically possible.

True that might be a workaround but probably very hard to actually implement practiacally.

Unless maybe you're using some kind of really raw pixel format?

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

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


text:
What Boom mic is compatible with a smartphone?
I want to connect to my smartphone to cut down on the video production cost for my short films. The videos will be shot outside and inside.
I have an android smartphone. Is there any boom mic used in video production compatible with a smartphone?

Most mics that are designed for DSLRs (such as many of those made by Rode) should be able to work with a smart phone as well (through the use of some adapters).  They just work on a standard line input like you have for a PC and through a splitter cable, most cellphones support the same kind of line input as a PC or DSLR has.
It is actually even possible to plug a full blown ASIO audio interface in to many android handsets and do recording from phantom powered XLR booms, but that probably defeats the point of using your phone for recording.


text:
Streaming live to co-hosts
I've recently started livestreaming, and during the test stream feedback was received that I tended to concentrate a fair amount on the game I was streaming, and not able to respond to commenters on the stream, despite my moderators' having a system to flag posts for my attention.
To resolve this, I started a Skype call with said moderators so they could participate in the stream too. However it was quickly noticed that their participation was limited to responding to comments and talking about the site that the stream was being hosted on (it's a YouTube stream embedded in my game site), because the stream output lags by about a minute.
To fix that, I started sharing my screen on Skype, thus allowing the moderators on call to see my screen and therefore the stream with much less delay. However, this started causing problems because it made the video stream lag for the viewers, and I had to stop the Skype video.
I'm using XSplit Broadcaster, and during real streams I will be streaming to YouTube as well as to a local recording. XSplit is perfectly capable of broadcasting to multiple sources (and my bandwidth easily allows it - I get a minimum of 16Mbit upload and the stream quality I'm sending is 4.5Mbit), however I'm wondering if there's any way I can provide a live stream to my moderators, so they can see what I'm seeing and participate properly in real(-ish)time.
Any advice on this would be much appreciated!

You need your own stream server.  The problem with services like YouTube and Twitch.TV is that your stream has to go through a lot of processing and content distribution on their end before it goes out to viewers.  That processing takes time and results in lag.  You can send the exact same stream to your own stream server and have it directly related with far FAR less delay (sub-second to a couple seconds), but are limited to the capabilities of your stream server to meet demand.
I've only done this kind of thing with Windows Expression Encoder in the past using a Windows Media Streaming server which is pretty easy to use, but only works on WMV files and thus isn't really all that good of a modern solution for h.264 video in cross platform streams.  RED5 should theoretically be capable of relaying a stream for you and you could either set it up locally or preferably throw it up on a VPS somewhere that can do the relaying for you (as 16mbit will get consumed really fast sending a 4.5mbps stream to multiple people).
Streaming is unfortunately not particularly easy to get setup and going for yourself though and that is a big part of why services that simplify it, like Youtube and Twitch.TV, are so popular despite their massive lag times.

Well, the server that I host my game on has 1Gbit upward connection speeds, so I could probably upload the stream to it and provide access to moderators only - at most this will be about six to eight people, so the HD streams would add up to around 30Mbit, well within the capabilities of the server. I'll talk to my sysadmin about this. Thanks for the pointer.

Oh, yeah, if you have a server already, then yes, setup a RED5 instance or something similar and replicate out that way.  Throw up a RTMP viewer somewhere for the co-hosts or just have them use a stream viewer client to hook directly into the stream.  Stream replication itself isn't that much of a server hit, just bandwidth and it sounds like you have that in spades.  If you have a moderate budget, there are also some commercial stream servers that are easier to setup and maintain.


text:
Overlaying Images on top of each other so they both show
I would like to show an animation of an transparent image being overlaid on top of another image, But have both images show on the screen at the same time.
The first image would be on the screen then the second image would come from the top of the screen and fit like a hand and a glove on top of the existing image.
At the moment the top image just covers up the bottom image, is there a way to overlay the top image on the bottom image so the to graph is transparent and they seamlessly fit together? PS: the image isn't to scale but hopefully you get the idea.
Image 1 is already on screen

Image 2 comes down from top and is transparent and overlays on top of image 1

Image 3 example of image 2 coming down from top of screen and overlaying on top of image 1

PS: I'm using kdenlive and using Ubuntu,  However I can use any opensource app and I'm willing to learn it.
Is this the right group for this question?  If not which one should I post it to?
Thanks

It sounds like the image isn't actually transparent.  I am not familiar with kdenlive, but any decent NLE should allow for transparent layers.  As long as the images actually have transparent backgrounds, it should just work to animate one layer coming in on the other.  I would try using GIMP to make sure to remove everything but the line itself from the second image and place the line in a transparency supporting image format (such as 32 bit TGA), then try again.  If it still doesn't work, maybe kdenlive doesn't work and you could try one of the other editors on the open-source video editors question.


text:
Video mixer from multiple sources into one
I want to take two video inputs say one from camera through hdmi/dvi etc and one through laptop(some presentation running in it). One, I want to mix these two video streams and take it out as a single video with both the videos running parallely. Videos running side by side or picture in picture format. Secondly how can I webcast this video?

Your best bet for this is to use streaming software.  Open Broadcaster Software for example is able to take a video capture device input (such as using an HDMI capture device and an HDMI camera, or simply using a high end web cam) and combine it with a screen capture (built in feature) and turn it in to a video stream on the fly.  It can then relay this stream to a stream service of your choice, such as YouTube or you can use your own media server such as a RED 5 instance (though running your own server is far more complicated.)

@ AJ Henderson. Thanks I will explore the option suggested by you. Let me elaborate the requirement little more here. A convention need to be captured and streamed through webcasting. Now the person at the far end who would be watching this stream should be seeing two videos merged into one. One would be the screen of the laptop through which the convener is giving the presentation(Audio/Audio+Video) and the video of the whole event captured by a camera. How can we achieve this? One part is to combine the two media streams and second is to webcast the output. 1st part is more important.

OBS will do both at the same time.

You mean OBS can combine Audio/Video from a camera and mic and the audio/video of the presentation in the laptop and stream it also through webcast!

Yes, that's the entire point of the software.  You take different sources, lay them out on a stage (which lets you do the picture in picture or side by side, which ever you prefer) and it encodes the final combined video and sends it out as a stream.

ffmpeg will do everything you request. It can capture both the screen and the video input, compose that to a single image, and stream it... You should look at it... Its a command line utility, but very well documented


text:
Live stream from GoPro to YouTube or another video service
Here is what I would like to do.
Get the cheapest GoPro camera(s) that will live stream events to YouTube without any other equipment. I would like to record the event to YouTube as it is happening.
The bandwidth is not great but I do not care about the quality of the livestream. I'm more concerned about highest quality video recording.
Here are my questions:
1) Which GoPro camera is appropriate for this job?
2) Is it possible to select some stream settings that will sacrifice the quality of the live stream for better quality recording?
Thanks..

You will not be able to do it without additional equipment

Do I need additional equipment like these ones? http://www.bhphotovideo.com/c/product/870452-REG/Cerevo_USA_CDP_LS01_LiveShell_USTREAM_Compatible_Device.html or https://new.livestream.com/broadcaster

Yes, you will need a device that can encode the HDMI bitstream and start a web stream with a protocol compatible with YouTube. F.e. the one you linked.

No GoPro is appropriate for the job by itself.  Any of them (or even a basic webcam) could work as a camera, your problem is that you need something that can encode and send a stream by itself.  That is a specialized device and not something a GoPro can do.  You would want a either a device built for doing a direct stream (such as an IP camera) or you would want to have a camera with a clean HDMI (or other) output that can be fed in to a stand alone streaming device.
For the second half, recording quality and stream quality are completely and 100% independent of each other.  They are both two different captures of the same visual information, but the sensor is going to pick up maximum quality regardless of if you are recording in some low bandwidth format or not and the steam is going to run off the output which should be the high quality format regardless of what quality you are streaming at.

Thanks AJ. What do you think about wifi camcorders like this one? http://www.amazon.com/Panasonic-HC-V250K-Wi-Fi-Enabled-Camcorder/dp/B00HXE4H28/ref=sr_1_1?s=photo&ie=UTF8&qid=1412142354&sr=1-1&keywords=wifi+camcorder The first comment talks about live streaming using camcorder alone.

@Alper - as long as they meet your quality needs and can record while streaming (I would expect them too, but I'd confirm it before buying.)  then they would be part of the first class of device I described.  I don't see any reason they shouldn't work well for basic needs.


text:
Defining animation once, then repeating across a selection of shapes in a cascading manner?
I have a comp with 20 windows (for a building), that I want to animate in a cascading manner (i.e. windows 1 though 20) with half a second in between each window animates in.
Is there a way for me to define the animation once (i.e. scale from 0 to 100 and increase opacity from 0 to 100), then to apply it to all shapes with a defined space between each animation starting?
Thanks,
Andy.

Assuming the same thing happens in each window...
Make the action that will be inside the first window in its own comp.
Then duplicate the comp 19 times, and use something like the brilliant pt_shiftlayers script to stagger each of the layers half second after the previous one.

another trick to sequence layers a custom amount is to hit "[" with them all selected to line them up to the same start point, then set their end point to the amount of offset you want between each one (move the playhead to that point and hit alt/option-"]"). Then from the menu or right-click choose Animation>Animation Assistant>Sequence Layers. Choose no overlap and they will sequence one after another. Now go to the end of the comp and hit "]" to extend them all to the end again. Sounds complicated but only involves three or four keystrokes and a couple of mouse clicks.


text:
Looking for a name of a flickering problem
i'm looking for a name of a certain video problem/artifact. it might be a child of the "rolling shutter" class, but something in my brain says there is a dedicated name for it.
how the create the effect: set up a strobe and film the area around it with a mobilephone. on the screen there will be now the area with rolling black stripes on it (movement of stripes is related to frequency of strobe). it looks the same if you try to film an old CRT with an inappropriate shutter setting.
my question is: how is this problem named?

It is specifically a rolling shutter artifact combined with a wagon wheel effect.  It is simply that the scene is only illuminated for a portion of the frame read.  You can actually observe the same thing in still photography when you take a flash photo above the sync speed of the camera (because the flash is not long enough to cover the full exposure and there is no time the shutter is fully open).
With a rolling shutter, the image is captured sequentially, line by line, rather than all at the same time.  If you had a global shutter, you would instead get a blinking due to some frames being completely unexposed and others being exposed.  With a rolling shutter, you get partially exposed frames instead.
Since this occurs at an offset from the frame rate and the rate of the strobe and the shutter are different, the position of the line will shift slightly over time.  This is known as the wagon wheel effect.  If the rate of the strobe is slightly faster, the lines will move opposite the direction of the sensor reading as the light will go on or off slightly before the camera gets to scanning the line from the previous time around.  If the frame rate is slightly faster, then it will move in the same direction as the scan as the lighting conditions will change on a slightly later read.  If you get them in sync (or sync with a multiple) then it will hold position.
The wagon wheel effect is the exact same effect that can make plane and helicopter propellers appear to change speed and direction while they are spinning up.  It is also the same effect used with a strobe for setting a timing belt on a car properly (by making a line on it stop moving up or down.)


text:
Split video into equal duration segments
I am currently using ffmpeg to split videos into 10 seconds segments. I have taken two approaches but neither seems to yield the desired results. Approach number one is using basic cutting with the -t and -ss options to get the segments. This gives close to accurate segments but  it has some issues with the frames in the ending of some videos. The second option is using segment: great and fast but it gives segments of not equal duration. Any idea how to get segments of the same duration and no issues in the frames? In other words if I play them in a list it should play smoothly
General way
ffmpeg – i input.mp4  -ss <start> -t <duration> -vcodec copy -acodec copy output%03d.mp4

Using segment
ffmpeg -i input.mp4 -c copy -map 0 -segment_time 8 -f segment output%03d.mp4

Did you find any solution or reason?

the -g 1 parameter will help with frame cutting making sure are just individual frames...this encoding is known as intra encoding....but the video quality will be much worse and the file will be much larger.

The issue with the frames are very likely the results of using h264 and not re-encoding the video. h264 usually doesn't have single frames (unless encoded with an intra profile) but groups of frames (GOPs), ffmpeg will cut at a keyframe position ie. at the end or beginning of a GOP. Or not in the case of your first approach, giving you issues with the affected GOPs.
The issue should be resolved by re-encoding (-vcodec libx264 -preset slow) or if that also yields errors transcode to a lossless codec like jpeg2000 (-vcodec libopenjpeg) cut your video and then encode into h264 again (or any other codec you may prefer).

What about using -g parameter?! (set GOP size)

That wouldn't help you with frame accurate cutting. The issue is that there are GOPs. if you split a video within a GOP you will destroy frames at the end of your clip.

What do you mean by "you will destroy frames at the end of your clip" ?!

Frames inside a GOP need all the other frames in the GOP, so if you cut a GOP the frames that are left don't have all the needed information. Technically you could re-encode just the last GOP but I don't think there is a tool that would do this for you.

See: https://en.wikipedia.org/wiki/Group_of_pictures


text:
How to make the smoke become a mask layer?
Im a beginner in video editing industry, so I got one main question and few sub questions based on this video:
Main question - The intro title cover by smoke effect, when the smoke effect pass by then it reveal the text, after that it become a shape. How are those done?
Sub question

how the background been made? it is like a curtain and keep moving, is that made by After Effect or others software?
at 0:04 when the food shown up, how is the small sparkling effect that surrounding the food?

Grab a pre-keyed smoke element from somewhere. Mask the smoke element as desired.
Copy that mask onto the text or you can parent the mask as an adjustment layer. Keyframe opacity of text, linear wipe with feather in a gradient/ramp solid for the background.
The "sparkling" effects are lens flares (see JJ Abrams)
The curtain moving effect could be just another preset with the layer style set to overlay. Or you can generate your own layer like that using fractal noise.


text:
Display Contents Outside of Composition Boundary?
I have an icon I'm animating within it's own composition. I want the comp size to be comparable to the final size of the icon, so when I lay it down in other projects, I have a good understanding of where the icon will end up.
As the icon animates in, it extends beyond the size of its composition. Can I set the composition to render display elements outside of its boundary box?
Thanks,
Andy.

Make the layers in the initial composition 3D layers. Then nest it in the other comp and make the layer it creates 3D, and turn on continuous rasterisation (the sun icon) for that layer. Now elements protruding beyond the edge of the nested comp will appear.
This will not create any problems if your comp is 2D, but it might create problems if you're using 3D layers in either the nested comp or the final one. The other problem is that the bounding box shown in the comp window is dynamic for a continuously rasterised layer, so it will grow to suit the size of all the visible layers.
A less kludgy way of achieving this result would be to make the nested comp big enough to fit all the action, and to add a layer to act as guide to show the size of the final frame. You could create a solid, or a shape layer with an outline or whatever you want. Unfortunately you could not use a proper guide layer, as they do not show up in nested compositions, only in the composition in which they reside. So you'd have to turn off the pseudo-guide layer before rendering.

Thanks. If I set a guide layer in a pre-comp, can I jump back into the main composition and expose the guide layer there also?

You know what, I've just found out that guide layers don't show up in nested comps. You'd have to make it a normal layer and turn it off before render time. I'll edit my answer.


text:
Repeat/loop Input Video with ffmpeg?
I just want to loop a mp4 video with ffmpeg and keep the current settings and codec.
For example if input.mp4 is 0:10 long, and I would want to loop it 4 times so output.mp4 is 0:40 long, how could I change the following command line to do that?
ffmpeg -i input.mp4 -c copy output.mp4

I tried...
ffmpeg -loop 4 -i input.mp4 -c copy output.mp4

...but I get the error "Option loop not found."

Use quicktime 7 pro and mov container. So you won't get a bigger file size, than with opensource one.

-stream_loop option
ffmpeg -stream_loop 3 -i input.mp4 -c copy output.mp4

This can avoid re-encoding because it can use stream copy.
0 means no loop, -1 means infinite loop.
This may not work with anything older than FFmpeg 4.0.

concat demuxer
The concat demuxer allows you to loop an input without needing to re-encode because it can use stream copy.

Make a text file. Contents of an example text file to repeat 4 times.
 file 'input.mp4'
 file 'input.mp4'
 file 'input.mp4'
 file 'input.mp4'

Then run ffmpeg:
 ffmpeg -f concat -i list.txt -c copy output.mp4

If you want to add additional inputs make sure they all have the same attributes.
Automatically make list.txt in Linux/macOS
This example is the same as above but you don't have to manually make list.txt:
for i in {1..4}; do printf "file '%s'\n" input.mp4 >> list.txt; done
ffmpeg -f concat -i list.txt -c copy output.mp4

With most commonly-used modern shells, you can even avoid the creation of the list.txt file entirely. For example, with bash:
ffmpeg -f concat -i <(for i in {1..4}; do printf "file '%s'\n" input.mp4; done) -c copy output.mp4

Also see:

FFmpeg concat demuxer documentation
FFmpeg Wiki: Concatenate

loop filter
Example using the loop filter to loop 4 times, each loop is 75 frames, each loop skips the first 25 frames of the input:
ffmpeg -i input.mp4 -filter_complex "loop=loop=3:size=75:start=25" output.mp4

Or use the shorthand: loop=3:75:25
Filtering requires re-encoding.
This filter places all frames into memory.
Using loop=3 will loop 4 times.
To loop infinitely use -1.
You must list the number of frames to loop (shown as 75 in the example above). Max value is 32767.
Also see ffmpeg -h filter=loop.

movie filter
The movie and amovie filters have a loop option:
ffmpeg -f lavfi -i "movie=filename=input.mp4:loop=4,setpts=N/FRAME_RATE/TB" -f lavfi -i "amovie=filename=input.mp4:loop=4,asetpts=N/SR/TB" output.mp4

Filtering requires re-encoding.
1 means no loop, 0 means infinite loop.

-loop option
The -loop option is specific to the image file demuxer and gif muxer, so it can't be used for typical video files. But it can be used to infinitely loop a single image or a series of images.
single image
This example will loop a single image over and over but the -t 30 will limit the output duration to 30 seconds:
ffmpeg -loop 1 -i input.png -t 30 -vf format=yuv420p output.mp4

-vf format=yuv420p is for compatibility reasons.
series of images
ffmpeg -loop 1 -i %03d.jpg -t 30 -vf format=yuv420p output.mp4

GIF output
Or to loop a GIF:
ffmpeg -i input -loop 3 output.gif

For GIF output also see How do I convert a video to GIF using ffmpeg, with reasonable quality?

Does this work fine with mp4 files?

I get this error > <(for i in {1..4}; do printf "file '%s'\n" input.mp4; done) -bash: /dev/fd/63: Permission denied

@jamesfzhang - I think that's because you need an absolute path to the file (as explained here: https://trac.ffmpeg.org/wiki/Concatenate). To fulfill that, you could write:
ffmpeg -safe 0 -f concat -i <(for i in {1..4}; do printf "file '$PWD'/'%s'\n" input.mp4; done) -c copy output.mp4

As for me this works to repeat full time video without skipping fames for 4 times ffmpeg -i video.mp4 -filter_complex "loop=4:32767" output.mp4

This issue is 4 years old and noone noticed that the link to the second issue in the -stream_loop section is pointing to the same ticket as the first one...

When working on images, is there any difference between -i %03d.png -t 30 and -t 30 -i %03d.png? I know that when working on video, you usually want -t (and -ss) before the input to save on decode time, but does this matter for images? I've recently run some commands with -t before the input and it worked fine.

@DigiVisionMedia Shouldn't make a difference.

Does the looped parts occupy extra size on output video? For example if the original video size is 1MB loop=loop=3 equals 3MB?

Thanks! Only place where I got clarification for difference between -stream_loop and -loop. I was wondering why the ffmpeg manpage doesn't show the -loop option. Now I understand it's because that doesn't give the options for filters or muxers.

With ffmpeg 2.8.4, the following command creates output.mp4 that is a repeating copy of input.mp4 until the ffmpeg process is stopped:
ffmpeg -stream_loop -1 -i input.mp4 -c copy output.mp4

This command won't terminate on its own, and the output file will grow infinitely.

Seems to be the fastest method

Fastest method is an understatement, this method ramps up to multi-hour videos in a matter of seconds.

This is a great convenient method, because there is no need to create a file with repeating lines.

People need to change the value for -stream_loop parameter from -1 some positive integer according to theirs requirement. Otherwise, the file grows and the system throws No space left on device error.

This should be best answer works from first try .

If you want to specify a time, add -t 30 this will generate a looped video with 30 sec

At least on FFmpeg 2.8.x (but oldie should works too) you can use lavfi as input format and complex filter graph using movie and setpts filters as a argument for -i option.
Next command doing this work for you:
ffmpeg -re -f lavfi -i "movie=filename=input.mp4:loop=0, setpts=N/(FRAME_RATE*TB)" output.mp4

Zero loop= arguments means infinity loop. Values greater zero sets repeat counts. setpts filters required for PTS adjusting for second and later repeats, otherwise most output muxers will fails with non-monotonic PTS increasing: loop does not recalc PTS.
Note, that using filters assuming that bypass frames without decoding/encoding is impossible: by design filters deals with decoded frames only.
At the FFmpeg 2.8.2 new input option -stream_loop inroduced. I first look it works more simple and allows copy content without transcoding:
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -y output.mp4

But it does not recalculate PTS and output file is wrong. If you add filter to fix PTS (see setpts) you must remove -c copy too. Only bitstream filters can deals with encoded packets, but there is no any bitstream filters to fix PTS (see: https://ffmpeg.org/ffmpeg-bitstream-filters.html)
In any case ffmpeg on second pass fails with error:
input.mp4: Resource temporarily unavailable

Known work around for me: use container for input file without PTS limits (streaming container). One of them, known me, is MPEG-TS. So, you can simple convert your MP4 file to the MPEG-TS:
ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input.ts

And use next command to compose infinity file:
ffmpeg -re -stream_loop -1 -i input.ts -c copy -strict -2 -bsf:a aac_adtstoasc -y output.mp4

(bitstream filters should be used only if needed, on my samples it is required)
FFmpeg >= 2.8.2 is required in this case.

Running that command gives me error : "[mp4 @ 00000000053fa1a0] Could not find tag for codec rawvideo in stream #0, codec not currently supported in container". If I add -vcodec h264 before the input, that error disappears, but the encoder doesn't exit. Supplying a non-zero loop count produces a lot of errors but does exit. The file is not a valid output.

The documentation for stream_loop says "Loop 0 means no loop, loop -1 means infinite loop."

Seems incorrect input files. Could you pleas share it? "Loop 0 means no loop, loop -1 means infinite loop." - seems I see old docs :-)

Mine were valid MP4s but can't share the ones I used .You can generate one using ffmpeg and then use that. Paste the console output if it works.

I forgot: filters assuming transcoding (decode/encode). By design. So you must remove -c copy. Answer fixed.

Nice to know, but that's a significant limitation if you have a large loop to generate.

Add info about stream_loop and WA to fix PTS issue without re-encode. FFmpeg >= 2.8.2 is required.

@MonahTuk I find the loop filter works much  better than stream_loop (which causes a brief pause for any file I tried), with one exception: the moment I add the loop filter the audio disappears?

@MikeVersteeg, you should check files. Time to time different tracks in file has a little bit different length or offset it can affect muxing. Issues in never versions of FFmpeg also can be occured. Also, most working case - use MPEG TS container as input and output.

If you have MP4 files, these could be losslessly concatenated by first re-wrapping them to MPEG-2 transport streams. With H.264 video and AAC audio, the following can be used:
ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate.ts
ffmpeg -i "concat:intermediate.ts|intermediate.ts|intermediate.ts|intermediate.ts" -c copy -bsf:a aac_adtstoasc output.mp4

@echo off

setlocal ENABLEDELAYEDEXPANSION

REM When not there gives file not found message
for /f "tokens=*" %%I in ('dir /b "*.mkv"') do (
    if exist "%%~nI.nl.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
    if exist "%%~nI.en.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
)
for /f "tokens=*" %%I in ('dir /b "*.mp4"') do (
    if exist "%%~nI.nl.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
    if exist "%%~nI.en.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
)
for /f "tokens=*" %%I in ('dir /b "*.webm"') do (
    if exist "%%~nI.nl.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
    if exist "%%~nI.en.srt" (
        call :BURN_FILE "%%~nI" "%%I"
    )
)

pause

if not exist ORIGINAL mkdir ORIGINAL
move "%%I" ORIGINAL >NUL
move "%%~nI.*" ORIGINAL >NUL

exit /b

:BURN_FILE

    set hoppa=%1
    set input=%2
    echo hoppa=!hoppa!
    echo input=!input!

    ffprobe.exe -v error -select_streams v:0 -show_entries format=bit_rate -of default=nw=1 !input! > bit_rate2.txt
    ffprobe.exe -v error -show_entries format=duration -of default=nw=1 !input! > duration2.txt
    ffprobe.exe -v error -show_entries format=duration -of default=nw=1 intro.wav > duration_intro.txt

    for /F "tokens=*" %%R in (bit_rate2.txt) do (
        for /f "tokens=1,2 delims==" %%a in ("%%R") do set NAME=%%a & set bit_rate=%%b
    )
    for /F "tokens=*" %%R in (duration2.txt) do (
        for /f "tokens=1,2 delims==" %%a in ("%%R") do set NAME=%%a & set duration=%%b
    )
    for /F "tokens=*" %%R in (duration_intro.txt) do (
        for /f "tokens=1,2 delims==" %%a in ("%%R") do set NAME=%%a & set duration_intro=%%b
    )
    for /f "tokens=1 delims=." %%a in ('echo !duration!') do set /a number=%%a
    for /f "tokens=1 delims=." %%a in ('echo !duration_intro!') do set /a number_intro=%%a

    set /A number_offset = !number! - !number_intro! - 1
    set /A number_offset = !number_offset! * 1000

    sof.exe "!hoppa!.nl.srt"

    if not exist DUTCH mkdir DUTCH

    for %%x in ("!hoppa!.nl.srt.fixed") do (
        if not %%~zx == 0 (
            if not  exist "DUTCH/!hoppa!.nl.mp4" (

            ffmpeg -y -hide_banner -i !input! -i intro.wav -i intro.wav -i pacman2.mp4 -loop 20 -filter_complex "[1]adelay=500|500[s1];[1]adelay=!number_offset!|!number_offset![s2];[0][s1][s2]amix=inputs=3;[0:v]scale=1920:1080[j];[3:v]split[m][a];[a]geq='lum(X,Y)',hue=s=0[al];[m][al]alphamerge[ovr];[ovr]scale=150:-1[sml];[j][sml]overlay=main_w-overlay_w-2:main_h-overlay_h-2[l];[l]subtitles='!hoppa!.nl.srt.fixed':force_style='FontName=Mada Black,FontSize=32,BackColour=&HA0000000,BorderStyle=4'[k]" -map "[k]" -map 0:a -strict -2 -c:v h264_nvenc -pix_fmt yuv420p -rc-lookahead 32 -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac -shortest "DUTCH/!hoppa!.nl.PART.mp4"

rem             ffmpeg -y -hide_banner -i !input! -filter_complex "[0:v]scale=1920:1080[j];[j]subtitles='!hoppa!.nl.srt.fixed':force_style='FontName=Mada Black,FontSize=32'[k]" -map "[k]" -map 0:a -strict -2 -c:v h264_nvenc -pix_fmt yuv420p -rc-lookahead 32 -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac "DUTCH/!hoppa!.nl.PART.mp4"
rem             ffmpeg -y -hide_banner -i !input! -filter_complex "[0:v]scale=1920:1080[j];[j]subtitles='!hoppa!.nl.srt.fixed'[k]" -map "[k]" -map 0:a -strict -2 -c:v h264_nvenc -pix_fmt yuv420p -rc-lookahead 32 -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac "DUTCH/!hoppa!.nl.PART.mp4"
rem             ffmpeg -y -hide_banner -i !input! -filter_complex "[0:v]scale=1920:1080[j];[j]subtitles='!hoppa!.nl.srt.fixed'[k]" -map "[k]" -map 0:a -strict -2 -c:v libx264 -preset slow -crf 23 -pix_fmt yuv420p -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac "DUTCH/!hoppa!.nl.PART.mp4"

            ) else (
                echo Already exists: "DUTCH/!hoppa!.nl.mp4"
            )
        ) else (
            echo Subtitle file empty: !hoppa!.nl.srt.fixed
        )
    )

    if exist "DUTCH/!hoppa!.nl.PART.mp4" rename "DUTCH\!hoppa!.nl.PART.mp4" "!hoppa!.nl.mp4"

rem if not exist SUBTITLES mkdir SUBTITLES
rem if exist "!hoppa!.nl.srt.fixed" move "!hoppa!.nl.srt.fixed" SUBTITLES
rem if exist "!hoppa!.nl.srt" move "!hoppa!.nl.srt" SUBTITLES

rem remark (rem) goto for making second language
goto :ENDING

sof.exe "!hoppa!.en.srt"

if not exist ENGLISH mkdir ENGLISH

for %%x in ("!hoppa!.en.srt.fixed") do (
    if not %%~zx == 0 (
        if not  exist "ENGLISH/!hoppa!.en.mp4" (
            ffmpeg -y -hide_banner -i !input! -filter_complex "[0:v]scale=1920:1080[j];[j]subtitles='!hoppa!.en.srt.fixed'[k]" -map "[k]" -map 0:a -strict -2 -c:v h264_nvenc -pix_fmt yuv420p -rc-lookahead 32 -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac "ENGLISH/!hoppa!.en.PART.mp4"
rem                 ffmpeg -y -hide_banner -i !input! -filter_complex "[0:v]scale=1920:1080[j];[j]subtitles='!hoppa!.en.srt.fixed'[k]" -map "[k]" -map 0:a -strict -2 -c:v libx264 -preset slow -crf 23 -pix_fmt yuv420p -b:v !bit_rate! -ac 2 -ar 44100 -acodec aac "ENGLISH/!hoppa!.en.PART.mp4"
        ) else (
            echo Already exists: "DUTCH/!hoppa!.en.mp4"
        )
    ) else (
        echo Subtitle file empty: !hoppa!.en.srt.fixed
    )
)

if exist "ENGLISH/!hoppa!.en.PART.mp4" rename "ENGLISH\!hoppa!.en.PART.mp4" "!hoppa!.en.mp4"

rem     if exist "!hoppa!.en.srt.fixed" move "!hoppa!.en.srt.fixed" SUBTITLES >NUL
rem     if exist "!hoppa!.en.srt" move "!hoppa!.en.srt" SUBTITLES >NUL

:ENDING

if not exist ORIGINAL mkdir ORIGINAL
move !input! ORIGINAL >NUL
move "!hoppa!.*" ORIGINAL >NUL

exit /b

The simple method that avoids problems of which Commands work with which version is the 'trivial solution':
ffmpeg -i input.mp4 -i input.mp4 -i input.mp4 -i input.mp4 -c copy output.mp4

See also: https://trac.ffmpeg.org/wiki/Concatenate for many examples.

This does not do any concatenation.  At least one of the concat methods has to be used: protocol, filter or demuxer. In this command, ffmpeg's auto mapping will select one video, one audio and one subtitle stream from among the inputs. Since they're identical,  it's equivalent to the OP's first command.

Thanks for testing that Mulvya, as it differs from the behavior described in the Docs: https://ffmpeg.org/ffmpeg.html#Description - If there's similarity in the File names using "-i -i /tmp/test%d.mp4" (et. al) is also possible.

authors: Дмитрий Мышков


text:
Is it correct to mix tripod and handheld footage?
I want to shot some scenes using a tripod, and some others handheld (with an IS lens).
Can I mix both types of scenes in a short (4 minutes) movie, or is it unprofessional?
From what I've seen:

Many movies are shot handheld: it is barely noticeable, but in most scenes when it looks like the camera is on a tripod (for example a 10 seconds scene of a woman who talks to her husband in a restaurant), the background still moves a little all the time.
Short movies where tripod is used use it consistently: all scenes are shot with either a tripod or a slider. An example: Philip Bloom's Postcard series.

You're asking for an opinion, because there's no rule book to consult here. So, IMO...
'Pro' movies are shot with all manner and mixtures of techniques, including dolly, mount, rig, crane, Steadicam, fixed, zoom, drone etc. I think many people would find a short film that mixed tripod with deliberate "shaky cam" to be a bit jarring without a good cinematic justification, but just mixing IS handheld with tripod should be no sin. Story trumps technique anyway -- if your viewers are watching how the camera moves, your story isn't compelling -- or they're film students. (-:

I agree with the other commenters that it's a stylistic decision.  I just want to mention a great way to transition from tripod to handheld. I can't remember what movie it was in; might have been James Cameron action flick. (Love his camera work!) The camera is static or moving smoothly, until there is an explosion that appears to jostle the camera. The next shot is handheld, as are subsequent shots.
I've seen many movies where the camera work, and the editing, are designed to match what a viewer's eyes would do. They dart to interesting elements in the scene; they look at the person who is talking, or who has the most important emotion or reaction in a conversation. If you use a style like that, you could start increasing the pace of the cuts right before you move to the handheld shots. And to "come out of" the handheld section, you can slow down the shakiness, and use a character's emotional transition from erratic to calm to motivate the camera's transition from handheld to static.
As I've been writing this, I realized that the camerawork (editing pace, tripod vs. dolly vs. handheld, etc.) can match the emotions of a character or the emotions of the scene, if you want. That will make the different camera styles "feel" right to the audience. But just like you don't want your actors to overact, you don't want your camerawork to be overdone either.

There is nothing at all wrong with crossing shots of different types and levels of stabilization.  It depends entirely on the look you are going for.  It is pretty rare for a shot to be truly "hand held" in the professional world though, at least in the way most consumers do it.
At a minimum, most professional camera rigs are setup to be shoulder mounted and pointed using hands.  Alternately, full body steadicam rigs may be used for stabilizing a shot when the cameraman needs to be able to move quickly and fluidly without having it jostle the camera.  Finally, many moving shots are done using a dolly rather than hand holding and thus achieve maximum stability.
There are exceptions to this where the scene or style of a film calls for unsteady shooting.  (Blair Witch Project for example.)  The choice of how steady to make footage should be determined by what you need for the final piece to flow well.  It is generally jarring to go between stable and highly unstable shots, but in some cases, this may be a desirable thing.  If you are just doing a standard shot, you will probably want to heavily stabilize the handheld shot prior to use, but it isn't a one size fits all solution and isn't always what's best.
Use your editorial judgement and do what fits for your film.


text:
How can i create DVD menu with moving scene
I have DVD  its open menu with moving parts of movie (chapters)
each chapter keep moving like 3-5 second from movie
when i click on it , its open part of movie with length 10 min
what is the name of software can do that
Here is the screen shot of my DVD

There are a lot of different software options that can do this for you. I also recommend the two options AJ Henderson suggested. What software are you currently using? How did you get that menu? Or did you grab the screen shot from a different DVD.

You need DVD authoring software.  Any decent DVD authoring software should support this.  It uses video menus and chapter breakpoints to do this.
Adobe Encore (included with Premiere) does this in Adobe's product family.  DVD Studio Pro did this in Apple's product family, though it hasn't been updated since 2009.  There are also a number of over vendors who make DVD Authoring software capable of this functionality.

could you please give me name of free software do the same thing

I couldn't find any full featured open source DVD authoring package with about 20 minutes of searching.  There are a few basic ones, but most of them either have pre-made menus that you can use or are limited to static images.  DVD authoring software is pretty specialized, so it wouldn't surprise me if this is a case of "you get what you pay for."

you right sir , thank you for your help I will buy Adobe Encore i think its the best


text:
Microsoft Movie Maker Not Centering Video on Preview Screen
I have a 2 hour deadline and I'm literally having a mental break down over this piece of crap software.
First of all, it doesn't process MOV files. Why make a video editing software at all?
Now after painstaking converting over 2000 MB of files into avi (over an extremely slow internet connection), the software refuses to center the video.
When I first started it, the video was centered on the preview screen just as it should. I think I clicked on add title, and now the video is pinned to the upper left corner, leaving a black screen in the middle.

Has anyone ever experienced this issue? There seems to be little to no solution to be found online.

You might want to take a look at Lightworks to spare you the hassle with WMM in the future.

Sorry this is a little late but but did you ever figure it out? I wouldn't recommend using windows movie maker for much of anything. The reason it doesn't accept .mov files is because it's windows movie maker, a Microsoft product using microsoft proprietary files .AVI and .WMV... .MOV is quicktime which is Apple.
You mentioned that you converted over 2000MB of files over an extremely slow internet connection so I'm assuming you didn't use software on your machine. I would start by blaming the converted file. It could possibly be that  movie maker can see the file but once you start adding effects everything goes to crap.
windows movie maker has saved me in a last minute pinch when I needed to fix something for a powerpoint presentation and didn't have my studio with me, but other than that I would say purchase the correct software, hire a a pro, or don't take on 2 hour deadlines when you don't have the proper equipment.

.avi is not proprietary its a very simple RIFF based container that can be used by anyone on any system. The part about WMV is true.

@ProfessorSparkles You're correct. My bad. I think I really meant to say .WMV is the proprietary one, But .AVI can be used, and then .MOV is apple. Either way, thanks for catching that.


text:
How to see if a video file is progressive or interlaced?
I can check the resolution of a video by Right Clicking -> Properties -> Details -> Video.
Is there a way to see if the video is progressive or interlaced?

You'll not be able to find it with Windows explorer alone. From my Windows days i remember a tool called GSpot, if it's still around look for it, i'm sure it'll tell you what you need to know about the file.

You should be able to tell just by looking at it.  When you watch for motion and see a comb-like horizontal pattern, the video is interlaced.  You could also try pausing the video at several points and looking for this pattern, but not every frame will look interlaced.  Pause the video at points where there is quick motion, and step forward one frame at a time.  Make sure the video is displayed at %100 zoom. If you find a frame which exhibits this pattern, the whole movie is interlaced.  Once you know what to look for, you'll recognize it instantly.

If not every frame of motion has combing, and the pattern is 3 progressive, 2 interlaced, you probably have a video that was telecined to 30fps from 24fps, with a 3:2 pullup.  Normally 24fps video just gets stored on DVDs as 24fps progressive, and the decoder can telecine if needed (soft telecine).  But sometimes you see video that was hard telecined, and the 30fps TC output was sent to the encoder.  Star Trek DVDs had mostly progressive mode, but their effects shots were done with 30fps NTSC TV equipment, so segments of each show are hard TCed.

How do you differentiate between an interlaced video or a progressive video badly converted from interlaced source material? While helpful, this should not be the accepted answer.

Windows won't help you with this. There are several file info programs available. I use MediaInfo, which I like especially for the context menu entry "MediaInfo" that allows you to quickly open video files and view their meta data in the program.
It shows mostly anything there is to know about the video file. The information you are looking for will be found under "scan type".

Note that the flags in the file don't necessarily reflect what's in the video.  Badly-chosen encoder settings could for example encode progressive content as if it were interlaced.  Output looks the same, but the encoder would be assuming that odd/even lines are from different times.  (small loss in quality per bitrate.).  Or, interlaced content encoded as progressive.  Probably a large impact on quality per bitrate in this case, the encoder would see the combing as detail that it had to preserve the normal way.  (I doubt any encoders auto-detect combing and enable interlaced mode.)

Also, DVDs can switch from soft to hard telecine mid-stream (e.g. the Star Trek DVDs do this, since the effects shots were done with video equipment, but otherwise the show was filmed at 24p.)  If Mediainfo only looks at the beginning of the video stream, it would miss this.

I use VLC Media Player.  It will play most any format and will play DVD straight from the disc. Play the video and slow it way down during a motion sequence using the little double arrows next to the time line. It will clearly show the interlace if it is present.

If you have ffmpeg installed you can use the idet tool. Here is a guide on how to use it: http://www.aktau.be/2013/09/22/detecting-interlaced-video-with-ffmpeg/

Install MediaInfo, right click on video file, click "MediaInfo" and follow below path.
[Video_file] -> MediaInfo -> Options -> Preferences -> Change 'Output Format' to 'Text'.
If 'Scan-type : Interlaced' flag is present, then video is interlaced.

If you want to be able to check it for several files at once, here are the arguments you could use with the "CLI" (command-line) version of Mediainfo, or with ffprobe (which comes with ffmpeg).
mediainfo --Inform='Video;%ScanType%,%ScanOrder%,%ScanType_StoreMethod%' "$Your_File"

Sample output with different files:
Progressive,,
Interlaced,TFF,
Interlaced,TFF,InterleavedFields

Or with ffprobe, with some additional info, and the (not so clear) "field_order" info last:
ffprobe -v quiet -select_streams v -show_entries stream=codec_name,height,width,pix_fmt,field_order -of csv=p=0 "$Your_File"

prores,1920,1080,yuva444p12le,progressive
h264,1920,1080,yuv420p,unknown              # some progressive files show unknown
prores,720,576,yuv422p10le,tb               # tb = interlaced, TFF, interleaved
mpeg2video,1920,1080,yuv422p,tt             # tt = interlaced, TFF
dvvideo,720,576,yuv420p,bt                  # bt = interlaced, BFF

What's the v on the ffprobe line, is it a typo? Doesn't seem to work anyway with 4.3.1, stream= parsed as input filename

@AnttiRytsölä: v is the argument to the -select_streams option to select the video stream. The error you had was because my command was missing the -show_entries option before "stream=...". Thanks for pointing it out. It is corrected now.


text:
Saving disk space, but not quality
I'm pretty new at this...  I captured my analog 8mm video tapes in .avi, planning to edit them with Premier.  But I need to make space in my external hard drive.  I have the Adobe Encoder, but I'm afraid I will loose quality in my videos if I use it!  Also, I see it will change my captured videos from .avi to .mp4.
My idea is to keep these external hard drives as a "master".
Should I use the Encoder to save space, or to get extra hard drives and leave it that way?
Thanks a lot!!!

There isn't a perfect answer to this problem.  AVI and MP4 are just container's for video streams, so without knowing more about the actual streams in the containers, it is impossible to tell how much quality loss there would be, but as a general rule of thumb, it isn't all that atypical for AVI to use far less efficient video compression algorithms than MP4 on average.  That doesn't always hold true, but it often is.
That said, what you plan to do with the files also matters.  If these are a master intended for being a high quality copy you can come back and WATCH, then running a high quality h.264 encoding isn't such a bad thing.  You should likely be able to find a setting that will make the files quite a bit smaller and still be pretty high quality to watch.
The problem with this, however, is that while the compression may work well for watching the video, it doesn't work so well for editing and re-encoding the video later.  If you compress too much, the video will look great to a viewer now, but may look like crap after editing and re-encoding a final video later.  If you plan to edit the videos later, you will need to stick to a much higher file size and higher quality encoding.  This could still be h.264, or any of a number of other formats, but it would need to be a much larger file (such as all I frame h.264).
Personally, I've always elected to keep my masters at their highest available capture resolution and fairly minimally compressed, but I also am in a financial situation where buying large amounts of external storage is not a problem.  (I personally have around 20 TB worth of storage, of which about 14TB is full, though some of that is providing redundancy.  That's primarily for video projects, photo projects and Steam downloads.)
Ultimately, however, it is a personal decision about the trade offs between cost and quality.  Every option has it's costs and only you can decide which costs are best for you.  I'd encourage you to buy more storage if you want to do editing with the videos later, but if you are only worried about playback, I'd recommend encoding it down to a quality that you find high enough by trial and error.  (Also, be sure to check the videos as the level of activity in a video will greatly impact the video quality unless you are using a quality based encoder.)

I would also encourage you to buy more storage space and encode at the best possible quality.  You never know when those videos have a large potential value.  What you do know is that storage space will be cheaper in the future.

If it's video you might want to watch in 30 years, don't skimp on quality if you're going to archive in a lossy format.  Turn up the settings on your encoder so it spends more CPU time to get better quality for the same filesize.  And use higher quality than what just barely looks ok on your current monitor.  Presumably displays will be even bigger in the future.  e.g. x264 with -preset veryslow -crf 16 might be a good choice for archiving (in the very-widely-used h.264 which you'll probably be able to decode on computers forever, even long after the patents expire.)

Hi, A.J., Jason and Peter!  I'm still Transferring my 8 mm videos to .avi
I've used A LOT of space (about 10 TB) and still have another 100 hours to transfer!!  Today I was wondering if it's worth to spend all that money, because I ran out of hard drives, I have to buy some more!!
I googled, and... came back to my 2014 question, and to your answers!! They helped me make my decision then, and now, you help me again!!!
I guess I'll wait for Black Friday and get maybe another 10 TB !!!!
My 20 years of family videos are worth every penny!!
Thanks again guys!!! And again, and again!!

@Doris - how many hours did you get in to that 10TB?  Using something like the DV codec for SD video should yield about 4.7 minute per GB or roughly 50 to 55 hours per TB if my memory serves.  (It's been a while since I did anything in SD resolution.)  If you are using much more than that for storage, you may want to transcode to DV which is still perfectly editable.


text:
Do movie makers shoot video from two different perspectives to create 3D movies?
I understand that 3D video works by showing two different perspectives of a scene to the eyes, separately, and the brain does the rest. Just like looking at a real life scene.
But for shooting 3D movies, I always assumed that they would just take the same picture, or perhaps a wider picture panned left and right for each eye. But I just saw something about shooting 3D being special.
Do movie makers shoot video from two different perspectives to create 3D movies? If not, what's special about it?

Sometimes yes, sometimes no.  If it is shot "for 3d" then yes, they use either two cameras or a splitter to go through two optical assemblies to one camera.  Here are some sample rigs that have actually been used in large films.

There are, however, a number of films that are released in 3d despite having not been shot "for 3d".  In these cases, the films were shot on conventional cameras with only one lens.  They are truly 2d, however, by the process of image analysis, effects artists go in and assign depths do different elements of the scenes.  This depth data is then used to invent two perspectives to be used for making a 3d effect.  It involves a lot of guess work and creating new content to fill in the gaps where actual footage doesn't have a given angle.
Some 3D TV's even have a basic level of this as an automated process where it will analyse the film in real-time and attempt to guess at depth information.  The only difference is that the 3d extraction done professionally is an offline process with more time and effort spent to fine toon the end result and fill in some gaps by hand.  The exact process and effort at each step depends on the individual project and budget, but the results are always sub-standard to actually shooting for 3D.


text:
Encore CS6 "DualLayer: This disc requires a layer break"
I am trying to create a dual-layer 8.5 GB DVD image.
It consists of an MPEG multiplexed video with audio and Encore chapter markers created in Premiere Pro CS6 and does not require transcoding in Encore, occupying about 1.69 GB of space.
I also have ROM content where I have two HD video files, with one of them 5.63 GB in size.
Now when I run Check Project, Encore does not show any warnings, however when I try to build the DVD image, it fails with the message
DualLayer: This disc requires a layer break

I have tried both the Automatic and the Manual layer break setting, and I do not see where and how I could set a manual break in Encore.
So, my question is, how do I make this work, what are my options ?
Is this issue because the 5.63 GB file cannot fit onto one layer (why would this even matter) ?

Could you just put all of your files into premiere onto a timeline, and then export them as an MPEG and then chapter it in Encore? I don't know if it's the best fix but seems like a workaround. I don't have much experience with burning dual layer discs.

Well, there is only one video on the DVD Video portion of the disc, which consists of one MPEG file only. So you mean I should re-encode the video without Encore chapter markers and instead create them in Encore ? Where can I find this info that this may fix the problem ?

It looks like it is not possible to create a DVD DL with a ROM part that exceeds a layer's size.
So I created a 4 GB HD video (which also fits on a FAT32 file system) and created a DL disc with some GBs wasted space.
I tried to put another file onto the ROM part but this always fails as soon as the ROM part exceeds the layer limit, which is strange because DVD-ROM-only DL discs seem to work perfectly.


text:
HDMI Compressed vs Uncompressed mode
What is the difference between HDMI compressed and uncompressed modes? My understanding is that in compressed mode the TV handles the decoding. Is this right?

The TV still has to translate the color information and format, so there is, in effect, still some decoding on the TV.  The difference is that it is uncompressed.  The output from the device matches whatever the source captured, in whatever image format the source uses, but there is no loss of detail from applying compression.
Compressed requires vastly lower data rates and is easier to transfer to the TV, but the quality is substantially lower.  Uncompressed requires a high quality source and a very fast data connection, but also provides the highest possible quality as the signal is not compressed with lossy compression schemes.


text:
Can a camera like Nikon D810 support 4K video with firmware update?
Is it possible to update the firmware of a camera (like Nikon D810) to enable 4K video? Or, such features are built into the hardware?
Thanks, NN

Yes and no.  Any camera with a sensor larger than 8mp (and the correct aspect ratio) is capable of recording 4k video frames.  Firmware can grab frames off the sensor as fast as the sensor can read out.  The ability to record video at a given frame rate is a limitation of the sensor's ability to read fast enough, the processor's ability to encode fast enough and the card reader that can write the data out fast enough.
Practically however, most cameras that don't have 4k are unlikely to have fast enough performance in all these areas to be able to hack 4k resolution in.  It's simply too much data to move and most cameras didn't design that kind of over-engineering to be able to deal with all 3 of those conditions.  Even the Canon 5D Mark iii, which is a high end professional DSLR which can be hacked to shoot RAW video at decent frame rates at 2 to 2.5k ends up having to be dropped down to around 12 or fewer FPS for trying to hack it in to shooting 3k or 4k video.
This is also partly compounded by the fact that most of the real time encoders are built for particular resolutions.  For example, the previously mentioned 5D Mark iii hack works by recording raw frames which takes a huge amount of data rate for storage.
So, in some cases, there may be ways to get some level of 4k support from a third party firmware, but for the most part, you are limited by what hardware was originally put in and often (most of the time) it simply isn't going to be possible to increase to 4k by third party hacks.
As for the Nikon D810 specifically, I'm not aware of any highly developed third party firmwares for Nikon bodies that are similar to Magic Lantern, so I don't think there is anyone really exploring that in depth at this time for Nikon bodies.  That series is similar in spec to the 5D mark iii, so it may be possible to get low framerate 4k video on very fast cards, but that's purely speculation.  I wouldn't count on seeing it any time soon or having it be highly usable though.

Thanks AJ. Although there is a group who has been hacking Nikon cameras, but their web site mentions about increased bit rates with various Nikon cameras (D7100, D800 etc); e.g., they made these cameras to shoot at 56mbps for 1080p. I think you are right about the codecs installed on the sensors, if those are not capable of process huge amount of data, then even firmware is not possible. Thanks again.

Codecs aren't installed on sensors.  But there are encoders installed in the camera bodies or built in to the camera's processor.  It costs more (money and power) to have them be more adjustable, so often their capabilities are limited to just what is needed.  It's more likely if there are other cameras with a similar processing chip that support the resolution you want to record, but the sensor output still has to be fast enough too.

Thanks AJ for correcting me. I got the point. Actually I was planning to buy a full frame camera (my Nikon d90 broke :( ). So this weird question came to my mind...


text:
Producing a time-lapse video over 6 months or more
I have been asked to produce a time-lapse video from a construction site.
Can anyone suggest a setup and recommend equipment for the following requirements? :

Must operate outdoors in Scandinavian weather conditions (mixed precipitation, wind, temperatures below zero)
Should take 1 picture every minute, during working hours (8 hours a day, Mon-Fri)
Electricity will not be available permanently
Camera must not be moved (meaning, charging periodically outside working hours could be an option, but without moving the camera)

I hope you have some good ideas :-)
Sincerely,
Jesper

Finding specific models is outside the scope of this site as the ideal available models will change regularly, but you will probably want to look at a security camera to fill this roll.  Not a lot of cameras are designed to operate reliably in harsh conditions over long periods of time.  Outdoor security cameras are.
The next biggest problem is going to be the lack of power and the cold temperature.  Batteries do not work well at low temperature and if it is below freezing, you are going to see drastic reductions in battery efficiency making it difficult to keep the camera running.
You might also try outdoor hunting webcams.  They tend to be used to take photos at a slower rate and have more battery powered options. These might also work for your purposes.

You obviously know your stuff, AJ!

@BrettFromLA - that and Google and I are friends.  I just know enough to know what to look for.  I had heard of hunting related blind cameras before but didn't remember them until I did some research on harsh environment cameras for this question.

The secrets come out.... ;)

Our client just finished up a project using a similar construction time-lapse camera.
https://cam-do.com/blogs/camdo-blog/how-solar-saved-the-topcon-time-lapse-project

Welcome! Link only answers are discouraged because if the link becomes unavailable, the answer is lost. Can you provide some context to the link, quote the most important part, or summarize the contents of the link?


text:
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 does Facebook do it ?

@AliGajani - not sure what you mean?  While I was an early facebook user, I haven't used it much on the main site since the introduction of apps, so you'll have to clarify a bit more.

Couldn't this also be done with Flash? Pre-render a video with transparency, then put it on top of a dynamically generated background?

@Corey - sure, you would be better off at that point to play the video flat as the back plate and use Flash to place the text though.  But in this day and age Flash video is EXTREMELY limiting.  Most mobile devices don't support it and an increasing number of desktops have it blocked or not installed from security concerns.  The quality also probably wouldn't be quite as good without quite a lot of careful development of the Flash animation.


text:
Blur a face using only one video layer with Premiere CS6?
so with the new built-in masking option of the gaussian blur and similar effects in the CC version of Premiere Pro it's pretty easy to limit effect to a specific area of the video in order to e.g. blur a face. However, I'm searching for an easy and easily comprehensible way to achieve this effect in CS6 without duplicating the clip to a second video layer (video lane?) and using the gaussian blur in combination with a track matte key (which is what I used to do in Premiere Pro CS6).
So, is there a way to blur a face without duplicating the clip to a second video layer in the CS6 version?
(Unfortunately, I only have the current CC version at my disposal right now, so I can't try it out myself at the moment.)
Thanks a lot!

Yes and no, you can do it without duplicating the clip, but not without a second layer.  Instead of using a second copy of the clip, you can use an adjustment layer.  You make a new adjustment layer by creating a New Item in the Project window.  You add that adjustment layer over top of the video you want to adjust and then you apply your masking to the adjustment layer and apply your effects to the adjustment layer.
The effects applied to the adjustment layer are then applied to the sum total of all the layers below the adjustment layer.  Effectively, the adjustment layer is a layer that is composed of a sub-render of everything below it and then has the set of effects applied to it applied to that sub-render.
It technically isn't adding two copies of the sequence, but practically it is still doing the same thing.  I'm not personally aware of any more straightforward technique than that for doing what you describe in CS6 though.  That doesn't necessarily mean much though as I normally do this kind of thing in AE anyway, so my experience doing it in Premiere is limited at best (bordering on non-existent.)

That's a perfectly viable option for me, thanks :) I didn't want to duplicate the clip, because this frequently led to problems with the cross dissolve transition. Also, I find it couterintuitive and rather confusing for beginners to understand why they need to duplicate the clip. So the adjustment layer is a good solution!

Another question, how exactly should I mask the adjustment layer? I tried it a few days ago and had some problems, it either didn't work at all (nothing was blurred or everything was blurred) or the mask was applied not to the gaussian blur, but to the video itself, leaving only black space ...


text:
How is each type of video camera stabilizer different?
What are the kinds of video camera stabilizers I could buy in the market? How are they different? What are the pros and cons of each?

There are a very wide and diverse range of different techniques for stabilization.
At the most basic, you have pure software stabilization.  This uses no specialized hardware, but rather tracks objects within a scene and then clips the video such that it maintains a frame which it can keep more stable.  This has an apparent impact of subjects moving less, but often produces an awkward feeling wavy effect as motion blur is still present in the source footage and occurs while the subject doesn't visibly appear to be moving.  It can also be used in support of other physical techniques.  It can handle minor corrections, but isn't advisable for large scale correction if it can be avoided.  This can be applied either in post or directly during capture on the camera (electronic image stabilization.)
At the next level, we move up to optical image stabilization systems.  There are two main techniques here.  The first utilizes a motion correction element in the lens along with small gyroscopes in the lens to keep the orientation of the corrective element relatively static.  This results in a correction for shake in the lens' orientation, but doesn't correct for lateral movement.  A similar system can be accomplished in camera by moving the sensor itself to correct for movement of the camera.  Gyroscopes feed the data on how to move the sensor.
Moving past that, the next big step up is a hand held gimbal stabilizer.  Gimbal stablizers work using inertia to offset movement rather than gyroscopic forces.  A typical handheld gimbal stabilizer consists of a rod with a free floating gimbal about 1/3 of the way along the length.  The camera is mounted on the top and a series of balancing weights are added to the bottom.  The inertia of the combined and properly balanced system results in orientation changes being absorbed at the gimbal as the inertia keeps the camera rig pointed in the same direction.  These provide far better stabilization for orientation and also provide a fair bit of stabilization for lateral movements, however they are considerably more expensive and more difficult to use well than an optical image stabilization system is.  It can also still be used with the previous mechanisms.
The next step up from this is a steadicam like rig.  Steadicam utilizes a gimbal stabilizer, however, rather than hand hold the gimbal, it is mounted on a spring arm attached to the operator's chest.  The spring arm allows for much better weight support as well as better absorption of lateral movement, thus it is able to deal with situations such as an operator running while operating the camera.
The final upgrade is to move back in to active systems again.  The inertial systems are all passive and thus don't require independent power (the OIS systems are active, but the inertial ones are passive.)  By adding high powered gyroscopes to an inertial system, additional stabilization can be achieved by providing active counter-action to changes in orientation.  The upside is that these hybrids provide the absolute best possible stabilization, but the downside is they are generally heavy, expensive (thousands to tens of thousands of dollars), power hungry and complex.


text:
What setup do I need to record and render at the same time?
I need help figuring out how to record while my computer is rendering.
I am very new to video editing, so this is my current workflow.  First, I record footage using Fraps (30 fps, 1080p, .avi). I usually get several hours worth.  Then I use Adobe Premiere CC and Media Encoder to cut the video into 20 minutes chunks. I queue all the videos up in Media Encoder (h.264, mp4, 1080p, 30fps).
Each video takes about 30 minutes to render (intel 2600k. dual amd 6950s, 16 gb ram). My source video is on a 2 TB HDD and the destination is a separate 1 TB HDD.
Here is my problem.  While rendering, the computer can't be used for much else since my CPU usage is capped.  My GPU doesn't seem to be used at all (as I understand, h.264 encoding is almost all CPU based).
How can I change my setup so that I can record more video while the machine is rendering away? In addition to my PC, I have a NAS available, a Macbook Retina Pro (2012, 16gb ram), and two external HDD cages. I think I need to come up with a setup where I can record on one machine and render with the other, but I don't know if this is viable or which HDD to record video to in that situation (is recording to NAS common? or do I make the other computer's HDD a share drive? record to external drive and move it around?)
There are a lot of unknowns for me here and I would just like to know what a "normal" setup is for using one computer to record and another to render.  I am on a gigabit LAN with my NAS and laptop, but the laptop only has wireless connectivity.
I would just render my videos over-night, but that is when I upload to Youtube, as that takes many hours.

h.264 encoding is almost all CPU based - A CUDA-enabled GPU can greatly ease the load on the CPU, if the encoder supports it. I see CPU go from 100% to 40% when using an nVidia gfx card on my PC.

Interesting! I have AMD cards, but the OpenCL rendering doesn't seem to have any effect unless I load the video up with effects, fades, color shifts, etc.

Don't, just don't.  File access is your primary problem.  You can offset this by using SSDs, but the much more practical solution is to either upgrade to gigabit connectivity between two systems or use high speed external drives to move content captured on one system to the other system and then run the encoding completely distinctly.
Capturing footage on a system running a game is already a very difficult thing to do as both the file capture and the game engine put a lot of demand on the system.  Adding a third major demand of system resources is asking for trouble.  The main reason that files are so large from video game screen captures is that very little compression is applied.  Video games don't use much disk resources (outside of loading levels) but they do use a lot of CPU and GPU.  So screen capture tools for games put off CPU and GPU intensive tasks at a cost of disk utilization.
The problem is that encoding is going to make use of both disk utilization and CPU and GPU resources.  The CPU and GPU utilization will interfere with the game engine and the disk utilization will interfere with capture unless they are on a completely separate pool of resources on a different machine.  It is possible to segment resources off in some cases, but you'd still be substantially impacting the capability of your system and reducing the quality of capture and gameplay it could achieve.

Thanks, this did the trick, specifically, external drives. I ended up using a WD Caviar Black over a USB 3.0 external dock. This is fast enough to write lossless 1080p video to.  Even better, my MacBook Pro has no problems reading from it and rendering it. So my workflow is to record to the external drive and render on the Macbook.

I assume you record video game footage?
Recording and rendering on one machine is something I wouldn't recommend with a regular PC if you play modern games that take a lot of your CPU and GPU resources.
I usually recommend getting an SSD but in this case it seems you are heavily CPU limited.
You could theoretically encode on the GPU but I'm not sure if that will ease the workload all that much to be able to play games as you need your GPU to play games aswell and usually GPU encoding produces worse results than CPU encoding because of the way the codec is implemented for GPU encoding.
What I would do in your case is either render on your MacBook, rendering over the network shouldn't be too bad in this case as your MacBook will be CPU limited aswell.
Or you don't do the final encode of your videos with Premiere/AME but use a different h264 encoder called x264 which is a LOT easier on the CPU and with the right settings could potentially used while you play games. x264 is by far the fastest and most efficient h264 encoder today.
You would first render your cut videos in a lossless codec that doesn't takes very little CPU usage but be sure to not render to the disk that your game runs on, as a lossless codec will be very I/O heavy.
Alternatively if all you do is cut your videos in to 20 min pieces without any other creative decisions other than splitting up your videos at every 20min interval you could automate everything and ditch Premiere all together and just use FFmpeg which also integrates x264 so you can cut your videos automatically there and encode to h264 all at the same time.
You could theoretically also upload automatically after rendering if you are bit into programming and do all at night without supervising anything. That would free your pc up for recording during day. That can of course only work if you don't already need all night to upload the encoded videos.
There might be more viable solutions to your problems but that would need a bit more info from you. What do you record? What are you doing in Premiere exactly to the videos other than cutting? What are the specs of your computer?

Recording 1080p 30fps directX / openGL video with i5 2500k. 3 SSDs and 2 HDDs, no RAID, wireless n.
Now I did end up trying x264 and it is actually quite good, but I ran into problems with both premiere and final cut pro not being able to correctly edit the footage (the colors were strange). I ended up just recording lossless data to an external drive over usb3, it ended up being more than fast enough for 1080p 30fps using whatever codec FRAPS uses.

Blackmagic Design has solutions for this.  One is a live H.264 encoder ( https://www.blackmagicdesign.com/products/h264prorecorder).  This is commercial equipment though, so it's going to get expensive fast.

if you want my experience in what has been working for me ...i use an amd 3970x and i can record render simult and pretty much can do whatever i want. i can push 2 4k live streams to different channels on the same cpu (not rtmp relay multistream) with an amd 3970 x and up you can pretty much do anything you are going to want to do.  but for what you are asking you can get by MAYBE with the latest 12 or 16 core amd cpus


text:
Similar to "levels adjustment" brightness improvement with ffmpeg
I'm composing a video from set of 16bit tiff pictures. The pictures are very dark, and needs to be brightened. Currently I'm applying -vf "mp=eq2=1.0:1.0:0.3:1.0:1.0:1.0:1.0:1.0"
filter to make pictures brighter, as said here, but they becomes too "faded".
I used to rescale their histogram with "levels adjustment" operation in image editor to make them brighter, but now I need to make a video, not a single image file. Also, preffered way of applying such operations to image - is to applying it to each color band separatly, because they have different brightness attributes initialy.
Can I do something similar with ffmpeg?

You could possibly use the curves filter. It has a lighter preset:
ffmpeg -i input -vf curves=preset=lighter -c:a copy output

The red, green, and blue components can be adjusted separately. The following is the same as what the lighter preset uses:
curves=r='0.4/0.5':g='0.4/0.5':b='0.4/0.5'

Additionally you can make your own curves preset in Photoshop, export it as an .acv file, and then the curves filter can utilize it:
curves=psfile=/path/to/ps_curves_file.acv

Awesome, exactly what I needed

Do you know why I get a warning when trying to run the filter with the values that the lighter preset is supposedly using under the hood? Only one point (at (0.100000;0.500000)) is defined, this is unlikely to behave as you expect.


text:
What image formats to use for basic 2d animation?
In order to practice animation (and as a side project with my son) I want to create some basic 2D children animations using Adobe After Effects. The animations will have backgrounds, characters, movement, and speech.
Since my artistic ability is equivalent to that of a peanut, my artist friend will be providing the background and character files while I will be responsible for the animation.
In what format should I instruct the artist to deliver these files? PSD, vector, other? Is there a specific format that works best in After Effects?

That depends on what kind of animations you're planning. I would ask the artist to give you the project files (.psd if he is working in Photoshop, .ai if he is working with Illustrator) so that you are not limited to one final image (of course in that case, you would need said programs on your computer. Consider that if the artist uses CC and you're using CS6 or older versions, project files might not be compatible). If he refuses to send you the project files (which, in my experience, many graphic designers won't do), I would probably ask for high-res .png files (since they support alpha channels) if the artist's work is pixel-based. If the work is vector-based, ask for some vector format like .svg.

If it works with Photoshop or Illustrator, it will probably work fine with AE.  I'd probably go with AI files if your artist friend is up for doing vector art as this will hold quality best when animated, but anything sufficiently high resolution (twice the resolution of whatever space it will take up on screen) and with a transparent background should be fine.


text:
Video player (which can overlay 2 video streams)
Is there a video player that can play 2 or more clips simultaneously overlaying them ontop of each other. (ie just like a video editor does... but as a standalone video player where I dont have to encode the video)
This would be useful for eg... when you have an animated logo or something you want to overlay... but you dont want to create/encode a whole new video.
Thanks.

Yes, many professional sequencing and playback systems can easily handle playing multiple videos with alpha-blending, there are numerous options, but I don't know of any that are free.  There probably are some players that will handle it for free, but I've used commercial software and never had to dig in to it. (Update: There are free options, CasperCG was one quick option I found, but it looks like it has a rather involved list of requirements and setup.)  To help with the keywords, searching something like "layering video player with alpha support" should give you a pretty good set of results with current products.
I recommend using alpha channel blending. While there are some real time chroma and luma key systems that run in software, the quality tends to be quite inferior to alpha blending or post produced keying.
Alternately, you can use two normal playbacks and a video mixer, though video mixers tend to be EXPENSIVE ($1000 for the cheapest HD one I know and $5000+ on average).  They tend to have the best quality and most capability though and can also work reliably over live video.


text:
What artifacts result from image stabilization in iMovie?
I just tried the iMovie image stabilization feature for the first time. It seems to me that it adds some sort of shimmery artifact, but it's not so easy to tell. Most manipulations 'cost' something, what does this this one cost?

What video stabilization usually does is to correct for camera shake by keeping the features in the video stable or moving smoothly. This "transfers" the shake to the video borders, so you should see black bands appear and disappear.
So you lose parts of the frame that are replaced by reciprocal black bands. If you want to remove these artifacts, you can crop but you lose some more of the frame. And you might lose quality if you interpolate to compensate the change in resolution.

clabacchio's answer is generally correct but the major artifact you get other than loosing a part of your frame is that no image stabilization is perfect. Especially iMovie doesn't do the greatest job in tracking the camera movement compared to Premiere, After Effects or Nuke. In order to stabilize a video you need to "find" the movement of the camera and move the video frame in the opposite direction, if the algorithm doesn't do its job very well you will end up with an even weirder camera shaking, especially if you have very high amplitude shakes for a few frames, the software has a hard time to account for those and has to blend movement to make it appear less abrupt, its a quite complicated process as its not possible to remove certain amplitudes of movement without loosing absolutely everything of your frame.
Additionally if you have a lot of tilting going on you will have weird distortions in your video because obviously with a 2D video you can only correctly remove movement on the x and y axis e.g. panning of the camera.
These limitations are responsible for most artifacts in terms of picture distortion.


text:
Lightworks detects aspect ratio incorrectly and clips video from ShadowPlay
I'm using Nvidia's ShadowPlay to record some game footage, and I am trying to edit it in Lightworks. When I import it, it clips off the edges of the content. I have the project set at 1080p 30fps (I presume 16:9), exporting at 720p 30fps Youtube/MP4, and am importing 1366x768 (16:9?) footage. I'm using Lightworks 12.0.1 on 32bit Windows 7 (2/3GB ram but rest is restricted by 32bit). The variable framerate seems to play ok, I just set it to run at 60/30fps instead of 59.9/29.9fps. It exports fine but the edges are clipped. I tried to change the aspect ratio on one of the other clips using the filecard, but I can't get to it now, as the filecard in the bin says that it is 1366x768 PC display, and when I try to get the filecard up in the edit (e.g. right-clicking on the track), nothing happens.
You can see how it's clipped off here, and it's the same in the export:

You can see it in the player name tag at the right of the footage.
My recordings are at several different framerates, the first at 30fps and the last two at 60fps, but I think Lightworks makes them run at 30fps.
Is there any way I could get it to work? Do I need to transcode it in Handbrake or something? If not, I'll just have to use Windows Movie Maker...

I managed to get Shotcut to work, it has all the features I need and took me several hours less to get started with. I don't seem to have any aspect ratio problems with Shotcut, exporting at 16:9... however at 1366x768 - I'll let youtube deal with that.

No clue about Lightworks, but two possible (and possibly related) issues are that 1366x768 is not exactly 16:9, and 1366 is not evenly divisible by 8. Either or both could cause any editing software to use a different internal representation, and require an adjustment to its display.
1368x768 would be byte-aligned, but still not 16:9.

Strange... see my comment on my question for my status, this may still help other people though