text:
What hardware do I need? Multiple audio input devices + BMCC video to Media Express
I'm a non-professional user with a Black Magic Cinema Camera 2.5k (BMCC). I have a number of separate audio outputs that I want to record with the video in Black Magic Media Express so I use multiple audio channels that I can edit in post-production.
The audio outputs are:

Microphone 1 via XLR or 1/4" balanced
Microphone 2 via XLR or 1/4" balanced
SDI audio from the BMCC embedded in video via SDI
line out or S/PDIF from PC

I'm trying to find a product I can use to record these audio channels separately in Media Express. I don't want to mix them in one stereo channel before they go into the camera and embed with the video via Thunderbolt to my PC/Mac, because I want to adjust the audio channels in post-production while not having to sync.
I have found the following products (from expensive to less expensive) via which I can do this, I think:
1. HyperDeck Studio Pro. Can record to SSD and/or via Thunderbolt to Mac/PC, sufficient inputs to maintain the audio channels.
2. UltraStudio 4k. Can record via Thunderbolt to Mac/PC and has inputs needed to maintain all the audio channels + more.
3. DeckLink Studio 4k. Has inputs I need. Can I use inputs at the same time and record with Media Express with multiple audio channels?
4. UltraStudio Express. Can record via Thunderbolt to Mac/PC. Does it have the necessary inputs? Can I use inputs at the same time and record with Media Express with multiple audio channels?
Can anyone answer my questions or tell me if I'm missing something? If there are other solutions for my situation, please let me know. Non Black Magic options are also welcome.
Greets,

The page you want to look at is the "Capture and Playback" page of the Blackmagic Products page.  Any device on that page that says "four analog audio inputs" is a good bet.  Media Express does indeed have the ability to record audio and video from an SDI input, and also audio-only from audio-only inputs, giving you a multichannel media file that you can then edit in post.
However...I strongly suspect that the analog inputs of most (if not all) of these devices are line-level and don't supply phantom power.  Depending on what sorts of microphones you have, that could be one or two reasons per channel you will not get a satisfactory result.  Not to worry...you can buy a pair of microphone preamps that take mic-level inputs, possibly provide phantom power (if your mics require it), and deliver line-level signal to your audio inputs.
However, again...many of the products you listed above are OK for use in a post environment where computers (and their noise) can be sequestered from the operator, but they could be a real nuisance when used on location.  Not only is it an ergonomic pain to try to use a computer along side a camera, but when the computer's noise is recorded via the microphones, it adds injury to insult.  There are good reasons that people buy external recording devices and then marry the sound in post: they have mic-level inputs, they support recording multiple inputs to multiple tracks, they usually have long battery life, so can be used on location easily.
If you absolutely must use your computer with your camera, the BMD products will do a good job (provided you have the right signal levels, which you can get with a preamp).  Otherwise, I suggest looking at the ZOOM field recording devices.
Finally, if you plan to use the audio from the BMCC camera, be advised that it's really only good for sync.  The camera's built-in microphone picks up mostly fan noise, and its audio preamps are terrible.  But for scratch audio, it will tell you where the clapper is, and that's a help.  The headphone out jack can feed audio to the ZOOM, and you can plug your headphones into the ZOOM.
If you go with the external recording device, then you pretty much leave behind the world of Media Express.


text:
Does it make sense to upgrade my set up to 4K from a (Canon) 70D set up?
I'm not very experienced, but I keep hearing, "it's a good time to upgrade to a 4K setup".
This is quite expensive, especially at this stage, but does it make sense from a logistical point of view? I would like to be doing this for quite sometime, but the 70D purchase set me back quite a bit.

Depends entirely on what you are doing with it. IMHO, the Canon EOS 70D is an excellent camera which produces a great image, and Full HD is totally sufficient for most video projects. Unless you absolutely need 4K for some reason, there is no reason to upgrade. But then again, depends on what you are using it for ...

No explicit need. Just a concept, of "future-proofing".

Welll you are using your camera for something. If you don't use it at all, you don't need one °A°

That is indeed true. Could you recommend some not to expensive lenses?

Also, the 70D ist primarily a photo camera imo, even though it shoots great videos as well. Are you using it to take pictures or shoot video primarily?
The lenses question also depends on what you are doing. Portaits, landscapes, architecture ... ?

Video lenses, I'm currently using a standard canon prime lens. I'm hopeful that that is good enough.

Hm that is also an entirely different matter than your original question ... again, without knowing what you are shooting or what look you are going for, one can only give a very generic answer (also I myself don't have a lot of experience shooting video with different lenses, I've mostly used the generic 18-135mm lense that comes with the EOS 70D which is a great allrounder imo). That is, in addition to this standard lense get some prime lenses, like a 50mm ... honestly given that little information, the best answer I can give is to google 'good video lenses' and read up on the topic ...

Here is an article on that topic and here is another one

I just remembered that the 70D does not necessarily come with the 18-135mm zoom lense. If you only have a prime lense, get that zoom lense, as I said it's a good allrounder

I have a 55 - 250mm zoom.

Wel that should suffice for most applications. Maybe get a prime lense for wide angles, something like 24mm or 35mm ... but again, depends on what you are shooting

It all boils down to "Do you need it"
If you are shooting corp promos and your clients keep asking or are insisting on 4K then Yes you can look into it as you can justify the purchase as the work is going to pay for it in the end.
If it is just an odd job here and there that they want 4K then hire one as it will be much cheaper at £££/$$$ for a day or two compared to £££££/$$$$$ plus upgrading cards and all your other kit to compliment the new camera.
I had the same thought but only upgraded to a Canon C100 from my Canon 7D and didnt have to upgrade much else but did get rid of a few obstacles as well.
Put the money back into some decent glass and or upgrade other elements which could make your productions better, ie Audio, Lighting, Tripods, Lenses etc camera bodies you can swap and change but good accessories will last the test of time.

Indeed that makes sense.

@EricERK Glad it makes sense, I tried to write it to be simple and clear, 4K is great if its going to be seen in 4K or you want a bit of wiggle room with adjusting shots or even loads of VFX but your average joe wont know the diff between 1080, 4K, 6K

source: Stack Exchange

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

sort: votes


text:
Which measurements can I take using which programs to exploit the already low quality and save as much space as possible?
This is the best my actioncam can create.

My goal is to take advantage of this low quality and save as much harddrive space as possible so visible quality remains.
Which measurements can I take using which windows programs to exploit the already low quality and save as much space as possible?

There are a few video quality metrics available for you to use, primarily SSIM and also PSNR. You can use ffmpeg to convert the video and then compare the output.
Step 1 Convert the video
ffmpeg -i actioncamfile -c:v libx264 -crf 23 -c:a copy -map 0 compressed.mp4

The CRF value modulates the quality. Lower values produce better quality but larger file sizes. Typical values range from 18 to 28, but absolute range is 0 to 51, but 0 being lossless, which will produce an exact looking file but will be bloated.
If you want to test with only a small section, say 20 seconds of the source starting from 15 seconds into the file, you can use
ffmpeg -ss 15 -i actioncamfile -t 20 -c:v libx264 -crf 23 -c:a copy -map 0 compressed.mp4

Step 2 Measure the quality of the conversion
Run
ffmpeg -i compressed.mp4 -i actioncamfile -lavfi "ssim;[0:v][1:v]psnr" -f null -

This command output, at its end, will display lines like this
[Parsed_ssim_0 @ 000000000039ad80] SSIM Y:0.984483 U:0.980458 V:0.980921 All:0.983219 (17.751712)
[Parsed_psnr_1 @ 0000000000398320] PSNR y:42.63 u:43.19 v:44.09 average:42.90 min:42.07 max:46.16

You can aim for a SSIM All value to be at least 0.99, or set your own benchmark, based on what's acceptable.

For some reason, All: stays at 0.7 no matter what crf is like between 18 and 37. My commands: http://pastebin.com/asQrmmq0

Try without -ss

If you are just looking at SSIM to be over 0.99, do you need to include ;[0:v][1:v]psnr in the command?

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:
How to compromise between byte rate, resolution and fps
I want to stream a video on a device full screen (therefore, the dimensions of the display are fixed)
What should I focus on to offer the best experience for a given bandwidth? Should I have other concerns than bandwidth (GPU...)?
Here is my understanding so far:

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

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

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

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

(I'm using ffmpeg h264 encoder)

Since bandwidth is fixed, first step to maximize quality is to full use that bandwidth so bitrate should be set to that number.
Frame rate will make a modest difference, once a fixed bitrate is specified, since typically x264 places keyframes 250 frames apart and so all or most frames in a random second are delta frames, so leave that between 24 to 30.
For keeping a given quality, size increases, but not linearly, with resolution. So 1080p, with 2.25 times the no. of pixels as 720p, takes around, say, 1.5 to 1.8 times to keep the same quality. This choice depends entirely on the nature of content. For live-action material, 480p is good enough. Remember, till the advent of HD a decade ago, American television audiences had been watching 480i feeds for decades. For 2D animation, with sharp edges, 720p may be a better choice.

And, for a fixed byte rate, what's the difference between reducing resolution vs leaving it untouched and letting the codec decide how to compress the image best?

What's the source resolution and the display resolution?

Source varies from 1080p to 4k. I'm targeting mobile, so height of 1000+px. Also, to make things more complicated, I'm working on 360 videos so what is shown on the screen is only part of the video that is streamed

The encoder doesn't decide whether to reduce resolution. It works with the raw uncompressed frames it's given and does the best it can given the constraints you set. So, for a given bitrate, pick the lowest resolution that looks good on the display you're streaming to.


text:
Adding many sounds to a video file at specific frames
I have a video of a TAS I've created that unfortunately does not contain sound. I would like to add sound to the video before releasing it, but I obviously don't want to have to go through and place hundreds or thousands of sounds manually.
An example of a finished product, with all sounds that are present having been added manually, can be seen here:

I can modify the source code of the game, so a list of exact frames that sounds are played on is trivial to create. I'm currently using Adobe Premiere Pro CC 2015, but I'm happy to switch to different software if it provides the functionality I want.
FFmpeg looks like it might be able to do what I want, but I don't know enough about using it and haven't been able to find any examples of using it for what I want to do. I'd also rather not create a plugin (and haven't been able to find any information on scripting) for Premiere or anything like that, though I'd prefer that to doing it manually.
Thanks in advance!

How many different sounds? And can you generate separate frame index for each unique sound?

I would say probably 8-12 sounds that I want to add. A separate frame index is definitely possible.

Alright, more googling found that ffmpeg is definitely the solution to my issue!
ffmpeg -i inputvideo.mp4 -i inputsound.wav -filter_complex "[1:0]adelay=leftchanneldelay|rightchanneldelay[delayed];[0:1][delayed]amix[mixout]" -map 0:v -map [mixout] -c:v copy -c:a aac outputvideo.mp4

This line allows me to easily determine where in the video (down to the millisecond, which is more than precise enough with each frame equaling 20 milliseconds) I wish to place the sound; wrap it in a loop inside a batch file (or whichever method you prefer) and off you go!
Edit: A more fully-featured solution written in Java, which only creates the audio file (to allow you to add it manually):
package javaapplication4;

import java.io.IOException;

public class JavaApplication4 {
static String delay;

public static void main(String[] args) throws IOException, InterruptedException {
    String a = "0";
    String c = "1";
    String temp = "";
    String basePath = "C:\\Users\\Desktop\\Stuff\\FFMpeg\\";
    String fileIn = "blockbreak";
    int[] delays = {2740,5760,51381,61040,84520,109600,113660,156640,311260,312820,314100,443800,735120,740540};
    Runtime.getRuntime().exec(basePath + "ffmpeg.exe -y -i " + basePath + fileIn +".flac -filter_complex \"[0:0]adelay=" + delays[0] + "[mixout]\" -map [mixout] -c:a flac " + basePath + "output0.flac").waitFor();
    for (int i = 1; i <= delays.length - 1; i++) {
        delay = "" + delays[i];
        System.out.println("" + (i) + "/" + (delays.length - 1));
        Runtime.getRuntime().exec(basePath + "ffmpeg.exe -y -i " + basePath + "output" + a + ".flac -i " + basePath + fileIn +".flac -filter_complex \"[1:0]adelay=" + delay + "[delayed];[delayed][0:0]amix=inputs=2:duration=longest[mixin];[mixin]volume=6.0201dB[mixout]\" -map [mixout] -c:a flac " + basePath + "output" + c + ".flac").waitFor();
        temp = a;
        a = c;
        c = temp;
    }

}

}

I increase the volume of the sound by 6.021db each time as ffmpeg seems to lower the volume when encoding; this isn't a perfect number, but it's close enough that the difference in volume between the first and last sounds in a file that's a few thousand sounds long ends up being around 1 db.

It will be quicker to construct the audio track first and then mix it with the video. With your command, you will be spending much more time rewrapping the video.


text:
Adding screen flash (Hitfilm 3 Express)
I want to use some kind of effect, to make the video flash for a short time, when something happens. (Example for a gaming video, when you get a kill the screen should flash for like a half a second)
I am using Hitfilm 3 Express. So far i found an effect, which looks pretty good, but i have no idea how to make it look a little more smooth. Is there a way to use effects over time in Hitfilm 3 Express?

You need to switch to the compositing timeline in HitFilm so that you can animate your effect (using keyframes). There are 2 timelines in HitFilm - one for editing your footage and another for layered animation work.
It's worth watching the tutorials on the HitFilm YouTube channel here > https://www.youtube.com/user/FXhomeHitFilm
This specific tutorial explains the difference between the two timelines > https://youtu.be/bawBXIhMxsM
This video explains animating with keyframes > https://youtu.be/jEPm2FPMZI8
I hope that helps! :D


text:
Final Cut Pro X crashing
I'm trying to open up a library in Final Cut Pro , it used to work fine and now everytime i open it up it crashes the entire application ,
I have a Mac Pro running Yosemite , i tried multiple solutions as restoring it from a back up everytime i load it crashes i even tried going back 6 months ago and still it crashes ,
when i open a new library from scratch it works fine
the only thing i didnt try is to remove the application and reinstall it , but i dont think doing that will help , please assist
Thanks !!!

See my answer on this question:  http://video.stackexchange.com/questions/12898/fcpx-crashes-again-and-again/12907#12907

Apple have released a recent update to FCPX, 10.2.3 which fixes lots of issues like this. I would recommended this update first as it has solved crashing issues for me.
https://support.apple.com/en-gb/HT201237
Sometimes FCPX doesn't like it when your library is saved separately to user/movies/ perhaps try moving the library there and see if it helps.
Also media from multiple drives can cause issues if FCP get's stuck trying to link some. If any media is stored on external drives, are they fast drives i.e. thunderbolt, USB3, firewire 800? Potentially FCPX is getting stuck trying to locate the media and can't connect to everything properly. Perhaps try moving media to a reliable drive to try it out like your system drive.
Hope that helps.

This could be caused by a 3rd party plugin, something library specific such as a very large resolution images or corrupt file, or corrupted preference file.
Try opening FCPX while holding the option key to eliminate the possibility there is a corrupted preference file.
If that doesn't work, please let us know the your version of FCPX and what kind of media is in your library and see if we can get some more clues.

I'm running Final Cut Pro 10.2.2 (269216) , Application Specific Information:
*** setObjectForKey: object cannot be nil (key: 5C83DF82-CD3B-499C-A92A-E450CB80B0D5)
abort() called , i tried opening up with holding option it does open up the library but when choosing any project it crashes

Are there any large images or video files in the project, or any unusual media? And by large I mean larger than 4k.


text:
Adobe Premiere clip duration lag
Sort of a strange issue with Premiere. As you are aware you can change a clips duration by sliding the clip from the end back or fourth. For some reason, in a particular project this takes at least 3 seconds to move in or out (almost like lag). I've confirmed that in other projects this doesn't happen, so it wasn't something I changed in the settings. Have any of you ever experienced this or have any suggestions?
I already did a lot of work in the project, and I would hate to do that over again.

Does this happen with all clips in this project? Do these clips, when used in another project, still show the same behaviour?

When you say "move in and out" do you mean playing through the clip or dragging the playhead.. What wrapper/codec (format) are your clips?  How many layers of video do you have overlapping? Any effects or transitions on the clip? How much RAM on your computer? What speed is your cpu?

It was an issue emic to this project, trial-and-error, I was able to figure it out. Computer specs wouldn't factor into it as I've said, it was fine before in similar situations.

Computer specs could well be a factor. It sounds like a real-time memory or cpu use issue with the plugin. More information in the question would have been helpful.

Solved: issue was audio effect on the master that was causing the clip duration change lag. iZotope RX was the plugin causing this if anyone is interested!

This smells of disk I/O problems.
When you resize a clip in the timeline as you described, two things are happening:
1) The project data and clip metadata are modified
2) The video file itself is reloaded to refresh any thumbnails, etc.
Thus, two things I would try to troubleshoot your situation:
For problems with (1), I would save/export another copy of the project file.  See if openings this copy shows any improvement.
For problems with (2), make a copy of the source clip on disk, import that copy into the project and try using the new file instead.
I don't have access to Adobe Premiere source code, so I can't tell for certain what the issue is, but the above is what I would try in an attempt to troubleshoot.
Let me know how it goes.  Good luck!


text:
Sennheiser G3 event audio
So I work a lot filming events making aftermovies. Often my job requires me to get a master out from the mixer or the sound tech and I am at the will of them so to speak with regards to my audio. Rode Video Mics, Shotguns close to the stage .etc. all provide too much echo/reverb and overall bad audio. When I get master out I rarely have a problem, and usually get pretty good audio.
However, I have noticed that 99% of the in-house audio is transmitted wirelessly via Sennheiser G3's. Usually the receiver is this Sennheiser rack mount device. All in all something like this. My question is, if I get a G3 receiver couldn't I just get the frequency of the transmitter and 'tap' into the speakers transmitters, and secondly, would this cause an issue for the soundbooth guys?

This is commonly done.
I suppose with modern digital systems it might be more complicated, but with standard analog systems it should work fine. You'll just need the frequency from the FOH team.

And it wouldnt cause any interference with their pickup?

No, it's just a receiver.

Is there only one wireless mic in use during the whole event ? Can you check in advance that your receiver will be on the same frequency range that the wireless mic ? What if the wireless gets into trouble and that the sound tech switch to a cabled mic ? Aren't there other sound sources during the event (movies/presentation) ?

An alternate method is to get a direct out from the board for only that channel, if he's using an analog console, this is usually pretty straightforward.

@audionuma I don't really care to pick up presentation audio from videos .etc. its just their voices im interested in. Rarely at these types of events you have speakers at a podium, thats why they mic them up with G3's.


text:
Run webinar with more than one webcam
I'm trying to create a little home office webinar setup. I'd love to use more than one camera. One to point at my face, and another to point at a drawing, or diagram I'm making.
I will likely be using webrtc as a platform, but would love it if I could set it up to work with Skype and Google hangouts and such.
Is there a way to have two usb webcams plug into a switcher, and then just click a button or hit a switch and change which camera feeds into my webinar program? Ideally there would be black screen while switching.

Webcams live in the universe of being devices plugged into computers, and switchers live in the universe of standard video sources being plugged into them.  These two universes only talk to each other via specialized interfaces (if at all).
Happily, there exists software that gives you switcher-like functionality as a software package for your computer.  One such package is manycam.  There are others you can find.
Trying to get webcam video out of your computer as video, into a switcher, then back into your computer so that it can be webcast is about 3x more difficult than it needs to be.  And it requires a lot more space on a physical desktop.

"Trying to get webcam video out of your computer as video, into a switcher, then back into your computer so that it can be webcast is about 3x more difficult than it needs to be." ----- So, what if I used normal video and audio capture through a normal switcher, and then fed that into my computer for Skype or Hangouts? Is it still really difficult to do?

If you can feed live video to a video (not USB!) interface and broadcast that via Skype or Hangouts, then yes, it's trivial to put 2-3 (or more) cameras into a switcher and feed the output of that switcher to the same video interface you used when you verified that it worked for a single video camera.

So I'd be looking for a video interface. If I want it to work on my OS (Ubuntu) and in multiple web conferencing apps (skype, hangouts, webrtc) what do I need to look for? What are the right questions to ask?


text:
Add Black background to a vertical video
I have several vertical videos which I would like to display in the 16/9 or 4/3 format.
I would like to have the video centered and have a black Background.
I normally use Handbrake to compress my videos but did not find an option to do that.
Is there another Video compressor (open source) who allows to do that? Other wise I have to compress it with handbrake and add the background with Premiere, which takes ages.
Really would like an easier solution.
Thanks in advance for any response.

You can use ffmpeg*, a command-line tool, to do this.
Let's say your source video is 360x640, then to make it 4:3, use
ffmpeg -i input.mp4 -vf pad=854:640:247:0 -c:v libx264 -crf 20 -c:a copy output.mp4

where 854 is used because it's 4/3 of 640, and 247 places the video in the center of the padded canvas. See details for the pad filter here.
Similarly for 16:9, use
ffmpeg -i input.mp4 -vf pad=1138:640:389:0 -c:v libx264 -crf 20 -c:a copy output.mp4

where 1138 is used because it's 16/9 of 640, and 389 for centering.
The width value you specify should be an even integer, so you may have to round up/down your calculated width.
*get the latest nightly or snapshot binary for your platform.

@Mulvya Thanks for the reply. I will try that later on and accept the answer once I did it :)

I tried it out. didn't have success yet, but I guess this is the way to do it.


text:
How to compile FFmpeg with libfdkaac into a single static binary?
My target is to build a single static FFmpeg binary with libfdkaac and x264 support for OSX and Linux. First, I tried to build one on OSX, I follow the instruction on FFmpeg web:
https://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX
Here is the configuration settings I applied to build a static binary:
./configure pkg_config='pkg-config --static' --prefix=/usr/local --extra-version=ntd_20150126 --disable-shared --enable-static --enable-gpl --enable-pthreads --enable-nonfree --enable-fontconfig --enable-libfreetype --enable-libass --enable-libfdk-aac  --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-filters --enable-runtime-cpudetect

After build process, FFmpeg is around 14Mb, which means that it doesn't include the third party libraries. In fact, it requires to link to dynamic libraries located at /usr/local/lib. If I removed those dynamic libs, the FFmpeg will show an error like:
dyld: Library not loaded: /usr/local/lib/libSDL-1.2.0.dylib
Referenced from: /usr/local/bin/ffmpeg
Reason: image not found
Trace/BPT trap: 5

Is it the right way to make all external libraries into single static binary?
I would be really appreciate for your help!

I finally figured it out. The reason that dynamic libraries are still linked is because ffmepg build process take higher priority to use dynamic library. Actually I built both dynamic and static libraries in the prefix folder, and Once I removed all *.dylib files from prefix folder, the build process took static library and built single binary successfully.

Consider answering your own question for others who are having the same problem.

Doesn't OS X have the ldd command, to show the dynamic library dependencies of a binary?  Or just a file command with output that includes whether a binary was statically or dynamically linked?

Also, yes --disable-shared --enable-static should make a static binary.  I think it does on Linux, or when cross-compiling for windows.  So it sounds like a bug in the ffmpeg build scripts on OS X

Oops, was just updating my own FFmpeg (on GNU/Linux), and --enable-static doesn't make static binaries.  It makes the libav* libraries built by ffmpeg (and used by the binaries) static or not.  It doesn't make ffmpeg use static versions of external libraries.  So what you're seeing is the standard behaviour for ffmpeg.

Peter, thanks for your sharing and testing on Linux.

I'm voting to close this question as off-topic because it is about compilation, not use.

In my CentOS 5.11 and FFmpeg 3.0, I have to use options
--pkg-config-flags="--static"
--extra-cflags="-I$HOME/ffmpeg/include -static"
--extra-ldflags="-L$HOME/ffmpeg/lib -static"

--enable-static tell a complier to create the "static libraries" (libav*.a). We can be combine FFmpeg API in the other standalone (static) application.
--disable-shared tell a complier not to create the "dynamically linked shared object libraries" (libav*.so). These type of libraries can be load and use FFmpeg API by the other application.
These 2 options doesn't complie FFmpeg as standalone static executable.

Thanks for stib's suggestion. I leave my answer here.
FFmepg build process take higher priority to use dynamic library even if static libraries are ready. Therefore, I first removed some external libraries support from build configuration and make sure all external libraries are only static (remove *.dylib from prefix /usr/local/lib). Then rebuild it with the following command:
./configure --pkg-config-flags="--static" --libdir=/usr/local/lib --extra-version=ntd_20150128 --disable-shared --enable-static --enable-gpl --enable-pthreads --enable-nonfree  --enable-libass --enable-libfdk-aac  --enable-libmp3lame  --enable-libx264 --enable-filters --enable-runtime-cpudetect

Remember to define --pkg-config-flags="--static", asking build process to use static library. Then, we will get a single executable FFmpeg binary!
P.S.: I removed the libass support from the configuration, because libass depends on Fontconfig lib which I only have dynamic library available. I'll put the libass support back once I figured out how to make a static library of fontconfig.
Thanks.

So "--enable-static" is not necessary?!

I think --enable-static is still required

Omg, you've saved my life, I was working on this issue for almost 2 weeks, crawling the web for a solution. And this is it. Thank you !

authors: Анастасия Егорова


text:
Delete background, change color of video
Is it possible to take, for example, this video

 and somehow make dr. Manhattan's skin yellow/white? instead of blue? Is it possible to take out his figure/delete the surroundings? If yes, then how?

Since there is heavy animated glowing around him going on, I don't think that this is possible (in this case).

One way to achieve cutting out the background is by using after effects and rotoscoping Dr. Manhattan out - there are many tutorials online on how to rotoscope. Adobe After Effects CS5- Rotoscope with Rotobrush
Once you've done this, grade Dr. Manhattan to your liking by using a colour correction tool such as levels, and hue/saturation. You may have to rotoscope in/out the colours you want to keep.
Hope this is helpful.

You can also use DaVinci Resolve.
First node: You can use a qualifier to get the basic outline of Dr. Manhattan (not the glow around him, but the darker blue parts).
Second node: You can feed one output from that first node through hue vs. hue to convert blue to yellow.
Third node: You can feed another output from the first node to a mask.
Fourth node: You can then then blur the mask (outside only, not inside and outside) and tint it to make your yellow glow.
Fifth node: you can use the mask of the 3rd node to select the output of the second node and composite that with the output of the fourth node to get a yellow body with a yellow glow, and no background.


text:
DSLR vs CamCorders for video tutorials?
I'm planning to record video tutorials for a project of mine without compromising on the quality and I would like to know the best option to shoot them

This question is a bit broad. You might want to give us more details. What kind of tutorials do you want to make, what specifically do you need help with deciding in producing your tutorials? There are many factors in shooting videos. Asking for the best option is similar to asking "What is the best option to make music".

DSLRs tend to have much larger image sensors than camcorders, which tends to mean much less depth of field (DOF) for a given field of view.  Shallow DOF is great for isolating subjects from their background, but it's a nightmare when you actually want the subject and its context to be in focus together.
Most DLSR lenses have a limited zoom ratio and/or limited maximum aperture compared with camcorder zooms.  A typical DSLR kit (EOS 80D with 18-135mm f3.5-f5.6 zoom), can be equated to a 35mm equivalent of 29-216mm f3.5-f5.6 zoom lens.  A Canon Vixia G40 camcorder has a 35mm equivalent of a 26.8 - 576 f1.8-f2.8 zoom lens.  That's more than 2x longer at the long end with 2 f-stops more light-gathering ability.
Combine longer range, wider aperture, and more depth of field, and you can see why news organizations tend to send camcorders into the field.
On the other hand, depending on your subject and your aesthetic, you may prefer the shallow DOF look, such as this short video demonstrates: https://vimeo.com/100437145

Another factor to consider in deciding between DSLR and Camcorder is the ergonomics. While the pictures from a DSLR have a nice cinematic look, they are harder to use.
As mentioned by Michael, the larger sensor gives you shorter depth of field, so anything other than static subjects can be challenging to keep in focus - and this is coupled with the fact that the displays are generally too low resolution to judge critical focus on-the-fly. So most people end up bolting on an external monitor.
The lenses are something else to consider: stills lenses often have the focus distances marked like "1ft—2ft—infinity". So a follow focus rig is a useful addition, meaning that you'll want rails to mount it all on. Most stills lenses also change speed as you zoom, so a close-up will be correctly exposed, but when you pull out for a wide shot you'll be a stop over.
And the shape of the camera is different. A DSLR is harder to hold steady while filming and looking at the screen, compared to a camcorder with a viewfinder that you jam onto your eye. So people often add shoulder rigs to them. So in addition to the camera you end up with a frankenrig with monitor, follow-focus, batteries external mics and recorder, and shoulder mount all hanging off it. If the look is worth it to you, then this might be acceptable, but if ease-of-use makes a difference this is a big minus for the DSLR.


text:
Do I need an audio recorder?
I'm just starting out...I'm learning to work with Adobe Premier Pro, and I just bought a Snowball/Blue microphone and am learning to record audios with Adobe Audio. I haven't even bought a video camera yet.
My understanding is that most video cameras record both visual and audio, BUT the experts recommend that you bypass the video camera's audio and record audio with a separate device. (I've seen a portable Tascam model recommended.) As I understand it, the reason is that a separate, external audio recorder lets you escape internal noises made by the camera.
So here's my question: Suppose I'm sitting around at home recording an audio. I'm simply talking into my Snowball microphone, which is plugged into my Mac. I'm using Adobe Audio to control the recording.
Is this the best way to do it, or should I be using an external audio recorder (to escape the noise made by laptop's fan, for example)?
It's hard for me to visualize the sequence, since I don't have the actual equipment to play with yet. If I do need an external audio recorder, then I'm assuming I would plug my Snowball mike into the recorder, which would in turn presumably be connected to my laptop, so I can use a software program (e.g. Adobe Audio) to manipulate the recording.
I guess another way of asking my question is how do the pros make simple audio recordings - with or without a separate audio recording device?

Your mac is the external recorder for your Snowball mic in this example. If your Mac's fans come on and are a source of unwanted noise, you can a) move your mac further away, b) close all unnecessary processes reducing CPU and memory load.

An external mic into a video camera or laptop is all you'll need for what you're doing at the moment. Most modern digital video cameras will do a perfectly acceptable job of recording audio if you've got a good mic, with the caveat that you want to have manual gain control. If you follow Michael's advice about mic placement that'll get you 99% of the way, for recording a straight voiceover the quality of the preamps is the next 1%.

Back in the day when movie cameras recorded to film, the sound made by the cameras was something to be isolated from the sound recording process.  Digital video cameras make very little noise (with the odd exception of things like early model RED cameras that needed high-powered fans to deliver sufficient cooling for their hot-rodded internals).
But that's less than half the problem.  The larger part of the problem is that to get good sound you need a proper microphone in a proper location, and that location is usually much closer to your talent than the camera will ever be.  As a rule of thumb, you want the audio microphone to be between 6-12" away from the mouth if it's a lav mic, 12"-24" away if it's a typical cardiod vocal mic, and 18"-36" away if it's a shotgun (boom) mic.  And in all cases you want the mic oriented toward the speaker (protecting it from plosives, of course).
It is for this reason that you want to divorce audio and video recording and then remarry them in post-production.  In that case, the audio recorded on the video camera will give you a very good idea about how to perfectly line up the audio from your audio recorder, and once you have done that you can mute the audio from the video camera and use the audio from the audio recorder.
If you shoot 10' away from the subject and try to record audio from the camera's location, it's going to sound terrible, no matter how much you spend on microphones (unless you also spend $1M+ on an amazing acoustic environment).
Here's a link to a video that really goes over this in detail.
And of course if you do have fan noise you want to avoid, or other sources of noise, that's also a reason to move the microphone, and the talent, away from those noise sources.  If the noise sources are intrinsic to the room (such as a refrigerator you cannot turn off), then you begin to understand the logic of why people rent sound stages...

Your question mentions video cameras, but your examples say recording Audio.
If it's just audio, you don't need a separate recorder, you mac is the the recorder. But you probably should be learning about DAW's, audio interfaces  and microphone preamps.
If it's video, it depends on what sort of video you want to record, and where you want to record it.
Separate audio recorders free the sound recording from being tied to the camera. Few cables or wireless problems by not having to send sound to the camera. Camera can then just focus on the picture.
Most non-broadcast cameras have poor audio preamps. Sound purists hate recording audio to camera.
How do the pros do it?
Wandering around a Trade Show many videographers just shoot camera sound with a shotgun video mic mounted on the camera recording to the camera within 3 feet of a talking subject. Mainly because a single shooter can move around quicker and easier than a 3 person crew in a crowded show. The absence of an audio recorder gives the videographer one less piece of kit and connection to fail.
Documentary, News & Current Affairs often shoot camera plus separate sound recordist who can get in close with a boom mic just out of frame. Or the on screen talent holds the mic. The sound recordists' job is to monitor the sound and make sure it's usable, holding the boom is just a way of achieving it.
Scripted and long format crews add more specialised crew to control the environment and capture more footage. Grips, gaffer, hair & makeup, focus puller, sound dept, camera dept, art dept, etc.
A small reality show I was on a month ago shot with 2 Sony broadcast cameras recording sound on camera, and wireless lav mics on each of the 2 subjects going to a separate audio recorder mounted on one of the cameras. The director monitored the primary camera vision and wireless sound. Total crew 2x Camera Operators, 1x Director, 1x Production Coordinator.
Online video channels (like youtube) record to separate audio recorders if they want better preamps than most cameras have.
That's how the pros do it.


text:
Is there any way we can show live tweets?
Is there any way we can show live tweets ticker as we see on news channels, when projecting any presentation or live video on the screen?

Do you have a specific question about showing live tweets? As you indicated in your question, you already know that it is possible to be done.

It can be done ! But I don't know if there is any software to do so !! I want to show live tweets on presentation !! Like a widget on top of ppt not a separate page for tweets

I suggest you try out OBS with it's Twitter plugin.
https://obsproject.com/forum/threads/transparent-borderless-scalable-auto-updating-tweets.12277/
Complete instructions how to set it up, in the linkage.

There is a software which can be used for single screens and video walls which is called Sedna presenter. They have widgets which lets you display tweets:
http://help.sedna-cloud.com/sedna_Presenter_Manual/help_topics/miscellaneous/widgets.php


text:
Windows 10 miniDV import using Movie Maker
I'd like to import my miniDV tapes.  I'm using Windows 10 and the built-in Movie Maker software.   My goal is to get the highest fidelity import from the miniDV tapes.   I did a trail run and it looks like Movie Maker stores the content in AVI files.
My questions:

Is the import lossless/uncompressed?
Is it possible to do a higher quality import?  If so, what software should I use?
I know AVI is an older container format.  Is AVI a suitable format going forward?  If not, what should I use?  I'm trying to future proof as much as possible.

DV is a compressed format to begin with. Unless you apply further compression at the time of capture within WMM, the captured stream is identical to that on the tape. The bitrate of the capture should be roughly 3.5 MB/s.
AVI is an old format, and for broader compatibility, you can store the video in Quicktime .MOV, but this will have to be done after capture, using a tool like FFmpeg. This process is quick since it's just rewrapping the data.
Command will be
ffmpeg -i file.avi -c copy file.mov

Thank you.  When I convert from avi to mov, safe to assume it will be a lossless conversion?

Also, do you know of any free Windows 10 software that will import directly into a modern format?

I don't think any free s/w captures DV to MOV. Yes, my command does a lossless transfer to MOV.

Any idea what's causing this error?
http://pastebin.com/238dxZfi

Your output cannot be MP4. Use either MOV or MKV.

You can use a free, good-quality software like "ScenalyzerLive" (http://www.scenalyzer.com/) or also free "STOIK Capturer" or "WinDV".
AVI is not a "video format" but a "video & audio container". You can wrap very high quality video formats into an .avi container. You can google "avi container wikipedia" for more info.
DV is interlaced (you should deinterlace it), 59.94 fields per second (29,97 frames per second), 480 or 576 pixels high, YUV 4:2:0 (4 times less chroma info than luma info), etc. Don't expect too much quality. Therefore, you can use an MPEG-2 codec or higher to wrap a DV capture into an .avi container.


text:
changing this code to check for a collision from a specific layer
I got this code from motionscript and I would like to change it to check a specific layer instead of all the layers for a collision. Maybe within the function checklayers() and then there's the if checklayers() at the last line   ??
function getMin(a, b, c, d){
  return Math.min(Math.min(a,b),Math.min(c,d));
}

function getMax(a, b, c, d){
  return Math.max(Math.max(a,b),Math.max(c,d));
}

function getBoundingBox(theLayer){
  bb = [];
  c1 = theLayer.toWorld([0,0]);
  c2 = theLayer.toWorld([theLayer.width,0]);
  c3 = theLayer.toWorld([theLayer.width,theLayer.height]);
  c4 = theLayer.toWorld([0,theLayer.height]);
  bb[0] = getMin(c1[0],c2[0],c3[0],c4[0]);
  bb[1] = getMin(c1[1],c2[1],c3[1],c4[1]);
  bb[2] = getMax(c1[0],c2[0],c3[0],c4[0]);
  bb[3] = getMax(c1[1],c2[1],c3[1],c4[1]);
  return bb;
}

function checkLayers(){
  cUL = [];
  cLR = [];
  for ( idx = 1; idx <= thisComp.numLayers; idx++){
    if (index == idx) continue;
    L = thisComp.layer(idx);
    if (! L.active) continue;
    BB = getBoundingBox(L);
    UL = [BB[0],BB[1]];
    LR = [BB[2],BB[3]];

    if (!(myLR[1] < UL[1] || LR[1] < myUL[1] ||
          myLR[0] < UL[0] || LR[0] < myUL[0])){

      if (myUL[1] < UL[1]) cUL[1]=UL[1] else cUL[1]=myUL[1];
      if (myUL[0] < UL[0]) cUL[0]=UL[0] else cUL[0]=myUL[0];
      if (myLR[1] < LR[1]) cLR[1]=myLR[1] else cLR[1]=LR[1];
      if (myLR[0] < LR[0]) cLR[0]=myLR[0] else cLR[0]=LR[0];

      for(i = cUL[0]; i <= cLR[0]; i++){
        for (j = cUL[1]; j <= cLR[1]; j++){
          if (sampleImage(fromWorld([i,j]))[3] > 0 &&
              L.sampleImage(L.fromWorld([i,j]))[3] > 0){

            return true;
          }
        }
      }
    }
  }
  return false;
}

myBB = getBoundingBox(thisLayer);
myUL = [myBB[0],myBB[1]];
myLR = [myBB[2],myBB[3]];

if (checkLayers()) 1 else 0

Yes, checkLayers() is what is performs the collision test, and compares every layer in the Comp against the one running the script.
To check against only one layer, you could re-write that function a little cleaner, but here's a quick solution.
First, remove the lines that start and end the for loop, since you'll only be checking one layer. But don't remove the code inside the for loop, since that code is what does the collision check.
for ( idx = 1; idx <= thisComp.numLayers; idx++){  // delete
    ... // keep this stuff
} // delete

You can also delete these two lines, since you don't need to check every layer in the Comp for whether it's the same as the layer running the script, or whether the layer is active or not:
if (index == idx) continue; // skips if the comparison layer is the same as the current layer

if (! L.active) continue;   // skips if the comparison layer is inactive

Last, modify this line:
L = thisComp.layer(idx);

… to make L the one layer that you want to compare to. You might do that by referencing a layer by index or name, such as:
L = thisComp.layer("Name of Single Layer to Compare");

Check the Adobe documentation on Comp attributes and methods to see other options for referencing a specific layer.
You do need the if (checkLayers()) 1 else 0 line at the end, because that's the “switch” that returns the final value of your expression, depending on whether there was a collision (returns 1) or not (returns 0).


text:
How to automatically pull text out of a video
I am currently experimenting with after effects and premiere to see what sort of strange things they might be capable of and was hoping someone had some insight on an Idea I had.
In this situation I have some text, such as some subtitles or even a time code, that is burned into the footage. I do not have any of the project files for this footage, the only thing I have to work with is the final video.
Is there any way to have either Adobe Premiere or After Effects recognize what text is on screen automatically? Bonus points if it can then take this information and feed it into a new title element.
P.S. This is all assuming the source video's text is of decent quality (i.e. the text is static, decently distinguished from the video behind it, and not too tiny.)

You could export the frames as a frame sequence and then use OCR software on the frames. This would be a job for shell scripting or a programming language rather than AE or PP though.

@stib if you add this as an answer and provide some links to suggested software I will accept it.

I do not know of any existing solutions for this in Premiere or AE.
However, if you know a little about programming, you might be able to write a script using OpenCV that runs Tesseract OCR on video frames, and comes out with the text you want. Once you have the text and time codes, you definitely could write a script to build the titles at the appropriate time codes inside of AE or Premiere.
(I became aware of these open-source tools since I am currently building a mobile app that runs OCR on documents.)
Check out the Scene Text Recognition docs for OpenCV, if you want to try that route.

So for this method you would need to output a series of still frames correct? Or does tesseract accept Video? If it doesn't accept video how would you easily tie the frame number to a timecode? Just count the frames?

OpenCV can handle video, and the Scene Text Recognition docs I pointed to show how to call Tesseract on a frame through OpenCV. They have some C++ sample code there that might get you started, but OpenCV is also useable from Python, if that's more comfortable.

As for timecode, OpenCV works in integer frame count, but you could use that directly when scripting in AE (and I assume Premiere), assuming the frame rate of the sequence matches.


text:
ffmpeg - 'Unable to find a suitable output format for 'libfdk_aac''
I'm trying to run the following command:
ffmpeg -y -loglevel info -threads 0 -f lavfi -i aevalsrc=0 -framerate 60 -i image.jpg -start_number 000000 -apply_trc bt709 -framerate 60 -i /myseq.%06d.exr -r 60 -preset medium -codec:v libx264 -profile:v main -tune fastdecode-c:a libfdk_aac -ac 2 -vbr 5 -shortest -strict experimental -sn -vsync 1 -pix_fmt yuv420p -b:v 31457280 -movflags +faststart -vf scale=3072:1536 -map "2:0" -map "0:0" /output.mp4 2>&1 | tee -a /log_file.log

And i get the following error:
Unable to find a suitable output format for 'libfdk_aac'

Any idea why?
Thanks!

There is a space missing in -tune fastdecode-c:a libfdk_aac, so FFmpeg thinks the value of tune is fastdecode-c:a and thus the next word is the output filename. Insert space after fastdecode.


text:
How did the effect in this video?

Is this all in editing or did they use some sort of infrared camera?

It was apparently made with a thermal imaging camera.


text:
How to remove empty space next to the video?
I have two video which will run at the same time as you can see the image below.
But, I want to remove the blank (black) space next to the video. Is it possible?

If you want to change the size of your sequence to avoid the black space then go to the Sequence>Sequence Settings menu. The width will be half that of the source clips (if they're being shown at 50% scale)

The basic geometrical facts are that if you want to see the full images you can't put two 16:9 images inside a 16:9 frame without some empty space left over. If you want to STRETCH the images it will fill in the blank space, but it will distort the images.
Alternatively, we commonly see an effect where you take some of the left (or right) edge of the image and "copy" it into the blank space, but blur it out. That makes it appear to fill in the space without confusing the viewer with a duplicate image.  For example...

When you export you can crop the left and right accordingly but when you go to play it on a TV, YouTube, Vimeo, etc they will be back tho.


text:
Question about encoding / rendering multiple times
If I render a video over and over with the same codec with the same software, does the video loss quality?
I'm asking because to save space on my Harddrive when I have a clip I want to use I encode it with H.264. So my raw capture could be 100GB's but once I've edited it to the clips I want and then encode it can I re open that and edit it again and render it without it losing quality.
Sorry if this doesn't make sense D:

For more details, the phenomenon you are inquiring about is called Generational Loss.

@Professor Sparkles: I initially wrote my answer as a comment, but could not figure out how to properly insert a hyperlink as you did.  I wrote it as an answer because I knew it would link Generational Loss to the intended target.

The question's not entirely clear, but, yes, each new generation of the rendered file will lose some quality if you use the previous generation as the source, but not if you use the initial H264.
To elaborate, let's call your raw capture as Generation 1 or Gen1. Then your H.264 transcode is Gen2. Now, after editing with Gen2, your export is Gen3. Now, if you open Gen3 and edit that, then the new export will be Gen4 and will have lost some quality (certainly mathematically, maybe not subjectively). But if you reopen Gen2 and edit it in a different way and export it (with the same settings) then the new file will also be Gen3 quality.


text:
Bit rate reduction when converting 60fps footage into 30fps?
I'm shooting at 60fps, the result is video playing back normal speed but displaying 60fps.
I then have stretched the clip so that i get 30fps playback speed with a slow motion clip twice as long as the original.
The camera is recording the original video at 50mbps bit rate, my question is this.
If both clips have the same number of total frames, yet one is serving half as many of them for every second, will the bitrate have reduced roughly by half as well?
I ask this because i have rendered both version of the clip. one technically twice as long but with the same number of frames, i rendered them both with the same bit rate as the original source, one of course turned out twice the size of the other.
I would like the slow motion version to be roughly the same file-size as the original, i figure with the same number of frames it should be more or less the same size.
But because i encoded them both at the source files bit rate one is twice as large.
Can i reduce the bit rate for the slow motion one without losing quality?
Many thanks for your time and expertise should you answer!
P.S
i'm new (as a user) to stack exchange i first posted this in the superuser section, since exploring i found this dedicated area so thought it best to put it here!
Regards, Cal

In theory, if the number of keyframes and their placement were about the same, as decided by the encoder, then yes, you can reduce the bitrate to half and retain the same quality. In practice, the encoder may be configured to place a keyframe every N seconds, in which case, you should use a bitrate a bit higher than half the original bitrate, say, around 55%.

thanks for your response, logic would appear to prevail!
I must now learn how to implement this knowledge effectively. Regarding your answer: what do you mean by Keyframe every N Seconds?
Do you have any suggestions for determining the number of key frames and their placement in the original footage? perhaps i should post this as a separate question.
Thanks again!

Which software and export settings?

Using After Effects, the source file is 60fps MP4 at 50mbps, i'm using Adobe Media Encoder and attempting to encode with as little quality loss as possible: H.264 target bitrate 48mbps (max 60) VRB, 2 pass. I have not checked the advanced settings check box and defined a custom key frame distance, though the number 72 is in there already but i'm not sure if that is what is being applied.

Looks like the keyframe distance is in terms of frames, not time, so you can just reduce the bitrate to 24mbps.


text:
What do the colors in the timeline render bar in After Effects signfify
I have searched the web and PDF manual for clarification on what the colors signify on the render bar over the timeline in after effects but for some reason I cant find a resource covering them all.
Here's what I've found

No Color - not rendered
Green - rendered into RAM
Blue - rendered into Global performance Cache

My questions

Is this above correct?
Are there any other colors? - ( I had thought there was a yellow and a red but I think these are used in Premiere Pro not After Effects )

Yep yellow and red are Premiere. They signify footage that needs rendering that can and that can't be done in real time respectively.

All of the information is correct, to be clear:

Green cached on RAM
Blue cached on disk

Pressing 0 on the num pad you will notice that on the blue line frames will render faster then on the none line.
Of course it will skip the green line because this process is called "Preview RAM" and as I have just said Green means written on the RAM.
No any other colours in AE.


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

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

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


text:
Downloading earlier segments from a live m3u8 playlist
I have an .m3u8 URI of type LIVE. As far as I know, live playlists use a sliding window instead of containing all the segments. My questions are,

1) Is it possible to find out what the length of the window is (time or frame-wise)? My intention is to use the playlist I have to download a live-stream starting from an earlier time.
2) If yes, how do I get the earlier segments, i.e., how do I specify where I want to start downloading from? I tried something like ffmpeg -ss -00:00:10 -i "in.m3u8" out.mp4, but it did not work.
I do not have much experience in video-encoding or live-streaming, and I would appreciate any direction!

You need to download the m3u8 itself, look at the entries and see if the individual TS filenames are entirely regular i.e. no signatures which vary with each entry, and the varying elements that are present can be deduced.
If so, then simply work backwards i.e. if the playlist you download has entries file_03532.ts, file_03533.ts, file_03534.ts..., then file_03529.ts, file_03530.ts, file_03531.ts.. would be the earlier entries. You can then use a download manager that lets you download a list of filenames generated using a pattern. IDM does this. There's probably others.

That makes sense; thank you! Forgive my lack of experience in this matter, but how do we look at the entries and see the individual TS chunks?

Nevermind, I opened it with Notepad++ and it worked.


text:
ffmpeg - warnings when i try to merge several audio files with an .mp4 file
I'm trying to merge 8 audio (.wav) files with a video (.mp4) file. I have the following command:
ffmpeg -i video.mp4 -i audio1.wav -i audio2.wav -i audio3.wav -i audio4.wav -i audio5.wav -i audio6.wav -i audio7.wav -i audio8.wav -filter_complex "[1:a][2:a]amerge=inputs=2[a0]" -filter_complex "[3:a][4:a]amerge=inputs=2[a90]" -filter_complex "[5:a][6:a]amerge=inputs=2[a180]" -filter_complex "[7:a][8:a]amerge=inputs=2[a270]" -map 0:0 -map "[a0]" -map "[a90]" -map "[a180]" -map "[a270]" -c:v copy -c:a:0 libfdk_aac -vbr:0 5 -c:a:1 libfdk_aac -vbr:1 5 -c:a:2 libfdk_aac -vbr:2 5 -c:a:3 libfdk_aac -vbr:3 5 -movflags +faststart output.mp4

I can successfully run the command and the output is good, but i get the following warnings displayed (3 times each):

[Parsed_amerge_0 @ 0x7fcaca708da0] No channel layout for input 1
  [Parsed_amerge_0 @ 0x7fcaca708da0] Input channel layouts overlap:
  output layout will be determined by the number of distinct input
  channels

And:

[libfdk_aac @ 0x7fcacc87c800] Note, the VBR setting is unsupported and
  only works with some parameter combinations

What do they mean and how can i "get rid of them"?
Thanks!

The first warning means one of the WAV inputs has no channel layout defined i.e. channel 1 is Front Left, channel 2 is Front Center..etc. amerge decides the channel layout of the output stream based on the input, but since that designation is missing for one of the inputs, amerge will assign a channel layout which is default for the number of channels present in the output.
One thing you could try is rewrap all of the audio inputs i.e.
ffmpeg -i audio1.wav -c copy audio1-new.wav

The 2nd warning is displayed whenever VBR mode is invoked. Unless you get the error: Unable to set the VBR bitrate mode, you should be fine.

That channel layout. Can we do it with any filter instead? I just don't want to make second file


text:
Adobe Premiere Bit Rate (Vimeo)
I just published a video on Vimeo and got this message:
"This video’s bit rate is only 5568 kbit/s, which is lower than what we recommend for H.264 video. Your video might not look as nice as it should. For 1920x1080 video, we recommend a data rate of at least 10000 kbit/s."
It isn't clear to me exactly what I need to change. I exported my video with these settings:
VRB, 2 Pass
Target Bitrate: 8
Maximum bitrate (62.5)
Since I've maxed out the maximum bitrate, I assume they're asking me to change the target bitrate. It it as simple as changing the target bit rate to 16, doubling it from 5568 kbit/s to 11,000 kb?
I haven't yet figured out what the "standard" bit rate settings are. The video actually looks fine to me, so I'm reluctant to increase the file size with a higher bit rate setting. Then again, I guess it doesn't matter since Vimeo's hosting the video on their site.

Assuming you're using H.264 for exporting, the bitrate is the main setting concerning the quality of your video. Increase it to raise the video quality and reduce compression artifacts at the cost of a larger file. Using VBR 2-Pass will yield better quality at the cost of longer rendering times compared to exporting with the same bitrate with VBR 1-Pass.
There is no standard per se (at least for internet video, there is for other media such as DVDs), but here are a few things to consider. First, raising the video bitrate higher than the original bitrate of the video that came out of your camera won't yield you any quality improvement. Personally, I haven't been able to notice any perceivable difference above about 6 Mbit/s for Full HD video at 25fps. Of course, that value has to be adjusted depending on your resolution and framerate (see Does raising the framerate while not changing the bitrate result in quality loss?). So if your video is e.g. shot at 50fps, I would recommend about 12 Mbit/s. However, this is only my personal experience. Another example is Youtube, their Full HD video is compressed using a bitrate of less than 1 Mbit/s (so that even people with slow connections can watch their videos without stuttering), but that does look pretty poor on a large monitor. I would suggest you experiment with by exporting a small portion of your video with consecutively higher bitrates until you don't see any compression artifacts and use the last value for your full export.
Now for the settings in Premiere Pro, maxing out the Maximum Bitrate won't do much as the primary controller for the video bitrate is the Target Bitrate setting. With VBR (1- or 2-Pass), the encoder will increase and decrease the bitrate over the running time of the video as needed while trying to achieve an avarage bitrate that equates the Target Bitrate setting. The Maxium Bitrate is the ceiling for that margin, i.e. the Maximum Bitrate you set will never be exceeded.
If you don't see any problems with your video after uploading it to Vimeo, you can safely ignore the warning. If it still bothers you, just export it again using a Target Bitrate above their suggested setting.


text:
How to optimize h.264 to play it on every possible device
I coding videos in MP4 for my windows phone, but now I want to be sure that this videos will be played on every mobile device possible, so question is: What the best unified settings for H.264 codec I need?

Not every device supports every resolution or framerate, so those aspects are outside of H.264 encoding parameters. That said, a framerate of 30 fps or under, and a resolution of 480p or smaller should be safe for most devices currently in use.
As for H.264 encoding, Baseline profile, and a level of 3.x is sufficient. You should only need to specify the profile.


text:
What software do i need to replicate the effect in this video
i would like to replicate the same type of graphics that are used  10 seconds into the video. I have after effects but i'm unsure of the process.

I wish people who downvote a question would at least comment with a reason.

yes...its an honest question

Do you want to match the terrain and camera move like in the video? Then you'll need to make a 3D model of the terrain and overlay that 3D layer.
If you have not shot your location footage

Optionally begin by laying some markers down on your location shoot.
Optional pro-tip for advanced VFX: Note camera, lens, aperture, focus length (for DOF) so you can build your virtual camera.
Use After Effects 3D camera tracker to overlay your lines.

If you have already shot location footage.

Use After Effects 3D camera tracker to overlay your lines.

If you want a simpler effect, without the 3D and a simpler camera move, you could use a google map or other 2D picture top down. Your lines would then be just an animated layer over the top of a picture shot with a fake camera move - like a rostrum camera for documentaries.

Yes, you can do that in after effect. You need first to make these kind of animations and then convert them to 3D layers and place them where you want. Or wice versa.

You could improve your answer by expanding a little on how you would do this.


text:
Is CPU speed important for uploading a youtube video
I know CPU and GPU speed are important for rendering and editing videos. My question is: is CPU speed always important for uploading a youtube video? and actually how much important? I've searched on the web to find this specific question's answer but I wasn't satisfied.

No.  Unless your hard drives are not in DMA mode, and/or your computer's from the 90s.

Sending your files to YouTube (once rendered and or exported) will be down to the upload speed of your internet service provide (ISP) / Broadband supplier. The faster the upload speed, the faster it can get to the YouTube servers for processing.
So the answer to the question is no, but there are other factors involved like those mentioned above.

No. It's about your internet connection.


text:
Is there any way to stop Media Encoder creating this launch preventing file?
Media Encoder seems to bug out create this file which stops it launching.

I have to either have to manually delete it or launch this BAT file every time I want to launch the program.

Is there any way I can stop encoder from creating this file or does adobe have to fix the launch error?
Thanks in advanced

Solution presented at https://forums.adobe.com/thread/1268390:

Open the file (C:\Program Files (x86)\Common
  Files\Adobe\SLCache\X19zbGNfZmVhdHVyZXNfXw==.slc) in any text editor,
  delete all of the contents, save it, and set the file to read-only.


text:
Can an expression parse a text file or the expression of another property in After Effects?
I am going to have tons of layers use the same expression, but I need to be able to edit the expression later without having to edit it for every layer. I also can't simply have each layer's property point to the original, because the expression needs to be evaluated for each layer relative to itself.
Is there a way I can have each layer expression simply point to and parse a text file? I could edit the text file so all layers expressions update.
Or, if somehow I could put the expression on a null object and have each layer parse that expression for itself.
Thanks for any help!
My workaround solution is to make a null object with a slider control for every single value that I may edit later, updating all layers, but this doesn't allow me to change the non-numerical information in the expression, such as adding parenthesis or other functions.

Sounds like a job for the extendscript toolkit.

When I'm dealing with large numbers of layers using expressions the workaround I use is to give the layers that share expressions the same colour label. So then when you edit the expression you just copy, right-click>select label group, then paste.

You can't put the expression on a null object, but you can use a text layer.
Following @bobtiki's eval() tip I tried using the source text of a text layer and running eval() on it. Initially I had no success, I was getting an "object of type TextProperty found where a Number, Array or Property is needed" error. But if I put something like a number on its own in the text layer and treated the source text like an array I could get it, I just wasn't able to access a whole string.
I was about to give up, then I remembered from doing extendscript scripting that you get the raw value of an AE property object using the javascript property .value*.
So after a bit of fiddling around with quotes and escaping (neither are needed, thank heavens) I got it to work.
TL;DR: Here is how you reference an expression that is written in a text layer's source, without having to save external files:
var theExpression = thisComp.layer("your text layer").text.sourceText.value;
eval(theExpression);

And then you write the expression into the text layer, in this case called "your text layer". This is really cool! It even updates in real time as you're typing the expression!
Here's a comp with the position of the cyan layers being driven by the expression you see on the text layer. If I duplicate one of the cyan layers its position is calculated individually based on the random seed index, and if I change the expression, they all update!

I'm stoked, this was the best question ever!
* this sentence sounds like gibberish I know. The problem is that AE layers' property's values are JavaScript objects, and as such they have JavaScript properties, and one of the AE property's value's JavaScript properties is the value property which represents the raw value of the AE property. And the value of the AE source text property is an object which must include formatting and whatnot, and so it is different to the text.sourceText.value value. Confused?

Using a text layer works PERFECTLY for what I am trying to accomplish! Thank you!

Thanks. I've written it up as a post on my blog http://wp.me/p6MMUE-3K

Yes, since expressions are basically JavaScript, you can load and evaluate external source files. Unfortunately the location needs to be hard-coded, since (AFAIK) expressions do not have access to the path of your AE project, so it's rather brittle. For instance:
try {
    myPath = "~/Desktop/source.js";
    $.evalFile(myPath);
} catch(err) {
    "MISSING";
}

Further explanation of how similar code works can be seen on the ProVideoCoalition site.
One further caveat is that the script is loaded and evaluated again for every frame that gets rendered. You might want to test how loading the script affects your render times.


text:
Audio can be heard only in VLC player, but not in the editor
I have few files that I did retrieve from webpages, and saved as MKV files.
VLC play them without problems, but when I load the file either in the Windows video editor, or in Power director 13, the video play but there is no audio.
I am not sure why I can't even convert the file from VLC, since even using the conversion engine that is integrated in VLC, the resulting file has video but no audio.
My understanding is that if the video player can play it, then the system has the right codec, so why neither windows video editor nor Power director 13 are not able to play the audio?

How do you 'retrieve' the files? Paste the readout of Mediainfo for one of them. Use View -> Text mode.

The video was on a webpage; I did right click and downloaded it. The resulting saved file is a MKV file.

.MKV files are not a friendly video format when working with NLE systems. And the non existent audio you're getting is probably due to the way audio  in .MKV files are wrapped.
I would suggest transcoding the .MKV file(s) to .mp4 if you're working with Windows Movie Maker. Alternatively you can follow this link for suitable formats: video files
A really good transcoder (free) is adaptor. It will read your .MKV file without problems and should convert to a .mp4 file just as easily.
Be sure to crank up the bit rate to get the best possible picture :)

The video is recognized, why transcode it?

Perhaps you'd want to want work with a file where the video & audio are intact. As opposed to working with a separate audio and video file.

Still don't follow - OP needs to either copy both video and audio to compatible container like MOV or copy video and transcode audio to MOV. There's no suggestion of separate files being generated or used,

When editing you want to work with both audio and video. Convert to a file that does, i.e. .mp4 or .mov, etc.

Thanks for the suggestion, adaptor was actually able to recognize the audio track (neither windows editor, nor handbrake were able to), so I did convert it in a more friendly mp4, so now I can edit it. Thanks!

@Mulvya: I can see the video but I can't edit it, this is why I want to transcode it. Since none of the software that I used, were able to transcode the audio, I did post here to find out a solution.

adapter is a frontend for FFmpeg. If you post the Mediainfo readout, I can provide the ffmpeg command which will avoid re-encoding the video.

UserJMAtron and newbiez, Mulvya meant why transcode the video, when the problem was getting to the audio in the container. All that should be needed is to rewrap into another container. Transcoding the video would just add another codec cycle for no gain.

I see, although it should not count as transcoding video, if the video is left as original source, isn't it? I did leave everything as source for the video, so I assumed that I won't have another encoding pass on the source video stream

@Mulvya, I would like to post the data but I did convert the video already, so I did delete the source. The web page where I did get the video is long gone :(


text:
After effects MP4 render problem
On after effects I have been having a problem with rendering as when i try to render a video with a regular 3.2 PAR (Pixel aspect ratio) after effects resizes it from MP4's 1920x1080 to 720x1080 and this is really bad for the video quality, i have tried changing the PAR to 5.1 and this does stop the resizing but it makes my video quality terrible, Please help me if you can.

Why would you want to render with a PAR of 5:1? Of course it's going to look dodgy, you're reducing the horizontal resolution 80%. What exactly are you trying to achieve?

because i heard it would help in this question with a simalar problem http://video.stackexchange.com/questions/7098/adobe-after-effects-mp4-export-issue?newreg=c438d6fff6d44f3a865a522d353e5190

I think you might be confusing pixel aspect ratios with image aspect ratios.
I suspect you want square pixels - ie a pixel aspect ratio (PAR) of 1:1
Most HD videos are 1920x1080, which is an image aspect radio of 1.778 to 1.
Most HD videos have a pixel aspect ratio of 1:1.
Is your desired image size actually 1280x720 ?  I suspect it is, rather than 720x1280 (720 horizontal x 1280 vertical).
Non-square pixels are only usually used for SD widescreen videos - more of a legacy requirement these days.  Unless maybe you're designing for a specific custom display like a big advertising screen or something like that?

I'm sorry but all i need the video to be 1920x1080 because that is the size that fits perfectly on youtube and also it is the size that my DSLR films in, In the past i have been able to easily render as mp4 with no video quality problem or resizing, i cant help thinking I've accidentally done something with my settings to cause this error.

what camera are exporting from - what are the specifications of your original footage?

25 fps   1920x1080  1080p       Cannon EOS 1200d

never mind sorry you were right!


text:
How do you dramatically reduce the size of a video while keeping the quality as much as possible?
I'm very surprised how the video i have recorded with my camera are so heavy for small length (i have 4GB for only 20min). I've been trying compression softwares like handbrake, but it doesn't reduce the size enough IMO, and decreases the quality when i want to compress too much.
Just aside, you know those 700MB movies that last 1h and whose quality is still better than my video how come ? how do they do to compress ? do they use some professional expensive equipment ? or its just a matter of software ?
please help me to understand this, and to find out a way to compress my videos to the maximum.

What size are you aiming for?

the smallest possible, i'm tempted to say: to have same ration as 700MB for 1h of video, hence around 250MB for mi video of 20min

What settings did you try in Handbrake?

i followed this tutorial (https://www.youtube.com/watch?v=FB0ji_3Uees) that claimed to reduce the size by 90% but did't work for me i also tried similar tutorials..

Is it Full HD ?

no just HD, and have to mention that i don't need super high quality, HD is just enough

I'm not familiar with handbrake, but this is basically a math problem.
First, you have to decide on a codec. One of the 'best' codecs in regards to quality/filesize-ratio as well as device-compatibility is H.264, so I would recommed you go with that.
I've done a quick search on handbrake and it appears you can set the quality in two ways, either by choosing a Rate Factor (RF) or by setting an Average Bitrate (see screenshot, correct me if I'm wrong).

Source: Wikipedia
Since you want a ratio of 700 MB per 1 hour of video, let's do the math:
700 MB = 700 x 8 Mb =  5600 Mb
5600 Mbit / 3600 s = 1,56 Mb/s = 1560 kbps

So to achieve this filesize average, set your Average Bitrate to 1560 kbps. This is quite low for HD video, so make sure to check the 2-pass encoding option, which will increase the quality at the cost of a longer encoding time (it does so by doing a first check or pass on the video as to how high a bitrate is needed for every part of it, so the encoder can better adjust the bitrate accordingly over the course of the video).
One final note, the video you linked recommends you change the audio bitrate to 128 kbps. This is a bad idea. Given that we are already using up 1,56 Mbit per second for the video, the few additional bits per second that are needed for the audio won't make much of a difference regarding the resulting file size. And 128 kbps will sound bad; we are much better at detecting flaws in audio than in video. I highly recommend you set the audio bitrate to at least 256 kbps.

WaaW! thank you so much! for such detailed answer, i'm gonna try this! and revert to you,what is important in my computer to speed down this pocess ? the CPU or the RAM ? or even maybe the HDD ?

A little bit of all. If you have a killer CPU but a slow HDD, the latter will be your performance bottleneck. Traditionally, video rendering only uses the CPU and no the GPU, but with the CUDA and OpenCL APIs, the GPU becomes a factor as well. I'm not sure if handbrake supports those libraries, maybe look that up on Google. RAM is also important, but a fast CPU and/or GPU (in case you're using the APIs named above) is most important. Read this for further reference.


text:
ffmpeg - coordinate system
This is a pretty simple question yet i couldn't find the answer to it anywhere.
How does ffmpeg's coordinate system work? Meaning - for all operations such as crop and overlay, is the (0,0) point at the bottom left or top left?
Thanks!

Top left.
Pixels in a raw video stream are stored left to right, top to bottom. And all filters work on uncompressed frames, so that's the easiest way to setup the co-ordinate system as well.


text:
After Effects Circular Image Repeater
Hi I'm trying to create something like this with motion in after effects but I'm unable to find a way to do so. (basically what exists with the shape layer but for images) Any ideas?

It might be helpful to tell us what kind of motion why want to add. Also, are you asking if things can be duplicated around in a circle? Including a screenshot of what you have now could be helpful as well.

You definitely need the plug-in from Red Giant Trapcode Echospace, I don't know if it's enough for your project but for sure it will help you to make most of the work.

Without having to use plugins, here's how I would do it.

set the anchor point on the layer you want to repeat so that it's in the right spot (using the pan behind tool y)
add this expression to the rotation property (assuming that the comp only contains the kaleidoscope layers. Precomp if you need to): index/thisComp.numLayers * 360
duplicate the layer as many times as you want.

If your comp has other layers in it you'll need to adjust the expression. If there are, say three other layers below the kaleidoscope layer you'd use index/(thisComp.numLayers-3) * 360, and if there was, say two layers above the kaleidoscope layers and five below you'd use (index-2)/(thisComp.numLayers-7) * 360.
You could also link the anchor points of the layers with an expression, so that you can adjust the centre of all the layers. This allows for easy animation of the whole effect. Do that by using this expression on the anchor point property of all but the first kaleidoscope layer:
thisComp.layer('name of kaleidoscope layer 1').transform.anchorPoint
Rather than typing this it's easier to use the pick-whip.

alt-click on the stop watch to create an expression, then grab the thing that looks like a fire-hose-reel and drag it to the anchor point property of the first kaleidoscope layer. This will fill in the correct path to the property, without you having to type.

As mentioned by Necrodeathify, Trapcode Echospace is the best option for this.
However, If you're on a tight budget and cannot afford Trapcode Echospace, CC Kaleida will help achieve looks that are similar to your examples. Add the effect to your footage layer and play around with Mirroring, Rotation, Center and Size.

Effect > Stylize > CC Kaleida

Hope this helps!

The Spoke script provides a radial layer repeater in After Effects → https://madebyloop.co.uk/products/spoke-radial-layer-repeater-after-effects/


text:
ffmpeg - Unable to find a suitable output format
This is a part of my command:
-r 60 -preset medium -codec:v libx265 -ar 48000 -acodec aac -shortest -strict experimental -sn -vsync 1 -pix_fmt yuv420p -b:v 30000000 -movflags +faststart  -x265-params high-tier=0:pmode=1:wpp=1:tune=fastdecode :bitrate=30000:fps=60:keyint=360:min-keyint=180:vbv-bufsize=30000:vbv-maxrate=30000:scenecut=0  -metadata title

and when i run it i get the following error:

Unable to find a suitable output format for
  ':bitrate=30000:fps=60:keyint=360:min-keyint=180:vbv-bufsize=30000:vbv-maxrate=30000:scenecut=0'
  :bitrate=30000:fps=60:keyint=360:min-keyint=180:vbv-bufsize=30000:vbv-maxrate=30000:scenecut=0:
  Invalid argument

I think there might be a missing space or something like that somewhere but i'm not too sure what's wrong with this syntax?
Thanks!

Not really worthy of a proper answer, so: ...tune=fastdecode :bitrate=30000..., there's a space there that should not be there.

@Casper Worth making an answer from that so others can easily see in the question listing that a solution was found.

@LordNeckbeard Ok. Good point. I added one.

In my experience the "unable to find suitable output for…" error almost always means you've made a typo and it's treating part of your command as the output file name.

Yeah i know, i just didn't know where the typo was.

...tune=fastdecode :bitrate=30000...
                 ^^^

There's a space that should not be there.


text:
Video editor that lets me code my own effects from scratch?
I'm the type of guy who likes to produce beauty from code - I mostly experiment with shaders.
Up to this day, I've only been doing so for the sake of games, but an idea popped up in my mind that I could decorate an actual film footage using handwritten postprocessing.
Is there any software that, apart from facilitating basic video editing tasks, lets me code (and later apply) my own effect completely from scratch, that is, lets me manipulate each input frame pixel by pixel? Either in some shader language or maybe CUDA or even C++?

I second the vote for Processing, but if C++ is more your thing than Java you could also look at openFrameworks. It allows for more processor-intensive computation and as such is good at real-time synthesis and manipulation of video.
Another tool worth checking out is NodeBox. It allows for coding, but wraps it all in a node-based GUI, the aim being to simplify the boring stuff.
Final Cut Pro ≤ 7 used to have a built in language called fxcript (based on c, but weird and buggy) that gave you pixel level access to the video stream and integrated into the editor seamlessly. I wrote a few plugins for that back in the day, but I jumped ship after the initial FCPX fiasco so I can't comment on the new language for visual effects FXPlug. I believe it's quite powerful, and, like processing, leverages openGL to do the heavy lifting.

You should check out Processing dot org.

To add upon John's answer, one way to do this using FFmpeg would be to add your filters (in C), but another, more modular, way is to code a Frei0r plugin, which can then be used with various host applications, whether FFmpeg, MLT..etc

Frei0r is a minimalistic plugin API for video effects. The main
  emphasis is on simplicity for an API that will round up the most
  common video effects into simple filters, sources and mixers that can
  be controlled by parameters. It’s our hope that this way these simple
  effects can be shared between many applications, avoiding their
  reimplementation by different projects.

As an alternative to Processing, if you prefer to use C#, you can write plugins for VVVV using their C# APIs. Also if you prefer to just write pixel and vertex shaders which you can apply to your audio/video, they support that as well.

You might want to look into using FFmpeg - it seems like the kind of tool you're looking for. Adobe's After Effects allows some custom scripting, but not nearly to the extent you're looking for.

Unless you're using the SDK to write plugins for AE you don't get pixel-by-pixel access to the image.

You can code custom plugins for Shotcut video editor using MLT, frei0r, or WebVfx plugin. MLT and frei0r plugins require C or C++ coding; whereas WebVfx lets you use HTML5, CSS3, JavaScript, SVG, and WebGL. : https://shotcut.org/notes/make-plugins/
I like unity3d for audio/video things
Obviously, have a go on Milkdrop if you want fluid dynamics code, else see if you can splice a video streaming code into the open source MD2 codebase, everyone would be well chuffed.
Research "VJ" programs, like dj programs for video.


text:
Video watermark
I am searching for a tool which can add text watermarks to my videos. I have a huge library (around 700 movies), ordered in folders. The video resultion of them vary from 360p to 1080p.
I am searching for a tool which can add watermarks to my videos, while:
1. it keeps the original folder structure
2. can handle diffrent video resolutions and makes watermarking easier
Thank you.

What program are you interested in?

FFMPEG is the program I would recommend, though the caveat is that you'll have to learn how to use the command line on your OS. The benefit of FFMPEG is its flexibilty: it can do a huge array of tasks, and being integrated into a command line chain you can use the power of the command line to deal with things like folder structures and different resolutions.


text:
What's the encoding difference impeding playback on iOS?
A video used on a website doesn't want to play on iOS devices. The video was encoded by another person using Sony Vegas, with settings similar to what I used before (although I used Adobe Premiere). The video I encoded works, the one from Vegas won't.
I used ffmpeg to compare the specs of the videos, and can't spot what's the difference that is impeding playback.
Input #0 (1.mp4) is from Vegas, not working. Input #1 (2.mp4) is from Premiere, working. Any clues? What do we need to change to make it playable?
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
  Metadata:
    major_brand     : MSNV
    minor_version   : 19529847
    compatible_brands: MSNVmp42isom
    creation_time   : 2013-04-16 18:40:45
  Duration: 00:02:31.85, start: 0.000000, bitrate: 2617 kb/s
    Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2013-04-16 18:40:45
      handler_name    : Sound Media Handler
    Stream #0:1(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 2483 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 59.94 tbc (default)
    Metadata:
      creation_time   : 2013-04-16 18:40:45
      handler_name    : Video Media Handler
      encoder         : AVC Coding
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2015-09-03 18:55:57
  Duration: 00:00:10.05, start: 0.000000, bitrate: 2256 kb/s
    Stream #1:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1938 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2015-09-03 18:55:57
      handler_name    : ?Mainconcept Video Media Handler
      encoder         : AVC Coding
    Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2015-09-03 18:55:57
      handler_name    : #Mainconcept MP4 Sound Media Handler

The Vegas export is

60 fps
NTSC sized raster but with a non-square and weird pixel aspect
Audio track is first
File major brand is Sony-specific.

Many confounding factors here.
First try to rewrap
ffmpeg -i 1.mp4 -c copy -map v -map a -movflags +faststart 1new.mp4

If not, render in Vegas at 30 fps and Main profile using the Mainconcept encoder.

Thank you for your help. Rewrapping did't work, and I'm still not sure what is causing the inability to play exactly. But, I feel the DAR and SAR are the problems, as you described. The metadata and tags I could change, and didn't affect it. 60 fps is ok to shouldn't be a problem. Same with stream order. So the aspect ratios are the ones left. Probably the trouble makers here :D thank you!

I've had a client for whom my 60 fps export didn't play on iDevices but did after exporting as 30fps. She was testing on an older device, though. So, do check that.


text:
What is the origin of 4K term?
According to Wikipedia:

The name “4K resolution” refers to a horizontal resolution of approximately 4,000 pixels.

However, I believed that 4K is called like this simply because it has four times the resolution of a 1080p video, like this:

and, well, 1080 is practically 1024, which is a round number 1K.
Personally, the Wikipedia's explanation doesn't make much sense to me: the resolution of a piece of video is usually specified by two things: height and ratio; it is very unusual to see any mention of the width.
So what is the real origin of “4K” term?

Analogue video is defined by the vertical resolution, e.g. 625/50 being 625 lines at 50Hz, AKA PAL. This is because there is no horizontal resolution per se, the horizontal being a continuous line. Digital video was originally defined like this, e.g. 720p and 1080p, but once we hit 2000 pixels across it started to be all about the horizontal resolution. This is probably because it sounds bigger when the TV salesperson says it.

According to Wikipedia ,Digital Cinema Initiatives originated the term 2K in 2002 for a digital film format of 2048 x 1080.  2048 is commonly referred to as 2K in the digital world.  It logically follows that when DCI went on to specify a resolution 2x larger in each direction, they called the 4096 x 2160 format 4K.  4096 is commonly referred to as 4K in the digital world.

Especially as many "4K" systems are not actually 4096 pixels wide.

The OP inquired as to the origin of the term 4K.  He did not inquire as to who might, or why they might, exaggerate their claims that 3840 horizontal pixels of the UHD format is "4K".  We all know the answer to that one.  Marketing folks have always rounded off numbers to favor greater claims.  Those who do care about accuracy in specifications know the difference between UHD and 4K.

The common TV format referred to as "4K" has an active video area of 3840 H x 2160 V pixels. There are additional pixels during the horizontal and vertical blanking periods, which are of course unseen. However, in the Digital Cinema world the format known generically as "4K" is 4096 H x 2160 V active video pixels. In TV-Land frame rates are usually 60 FPS, sometimes 30 or 15. But in Digital-Cinema-Land the frame rate is usually 24 or 48 FPS, which relate to conventional mechanical cinema which uses a 24 frames per second picture source (e.g. 35 mm film), but flashes/strobes each frame twice.