text:
How does the agate filter in FFmpeg work?
The Audio Gate filter (agate) is a new filter for ffmpeg included since 2015-09-22.
I have read the documentation, but since there are no examples included, I'm trying to figure out what settings to use to reduce unwanted parts that are under a certain dB in the audio signal.
Does anyone have a command example and explanation for the settings?

The documentation is indeed spartan. The filter seems to be ported from the OSS Calf Audio Plugins.This is the blog of the original author: http://www.zamaudio.com/?p=112. Perhaps contact him via email. I'll also tinker around in the meantime. The accepted ranges for the various parameters are available in the source file at https://ffmpeg.org/doxygen/trunk/af__agate_8c_source.html

NOTICE: Avast Web Shield gave me an infection warning when clicking the above link to zamaudio.com. The threat was blocked as being: JS:Injection-A [Trj]. Just FYI.

agate docs have recently been slightly expanded.

I am the author of the original Calf plugin, I had no idea it was being used in FFmpeg, great!  The original plugin used to have a sidechain input to use as the level detection, but I am assuming the ported version just uses the input signal as this level.
The main parameter is the threshold, it sets the level below which gating begins to occur.  Having 0 knee makes it a very sharp transition from signal to no signal, as well as the attack and release times.  I have not actually used the FFmpeg ported version of this plugin before, but I assume it would be similar.  It has quite a number of controls which probably makes it unsuitable to use without the usual GUI that shows the current level and the gating curve.  One way to test it would be to install calf-plugins and play with the Calf Gate until you get a feel for the parameters, and then apply the same to FFmpeg.  Sorry I cannot be more helpful because I did not write this port and I don't really understand the FFmpeg code.
PS: Thanks for alerting me about my malicious javascript, I think my blog was attacked recently, I have been cleaning it up.

Perhaps if someone wants to port the DSP from ZamGate instead, it is an easier to use plugin.

Thanks for the reply, Damien but I think the key issue is understanding the values that the agate filter requires. Usually, in many apps. you supply values in dB, just like the screenshot in your blog, but that doesn't seem to be the case here. If you can look at the source code file at https://ffmpeg.org/doxygen/trunk/af__agate_8c_source.html and translate the allowed ranges, that would help a lot. Thanks.


text:
FFmpeg script to clean up and compress iPhone video recordings from university lectures
I video record my university lectures using an iPhone 6 and then export them to OS X. The files can often become up to 4 GB/hour in size.
I'm looking to create or use a pre-existing solution that can do the following for my video files:

Amplify the audio
Normalize or level the audio
Audio click removal (optional)
Compress video to save disk space
Do the above by running a script or shell command (for batches of files if possible)

I'm assuming that FFmpeg can be helpful for running existing scripts, or creating a new one.
How should I go about to meet these objectives?
I have also looked at other alternatives like Handbrake but didn't find that it can do the audio adjustments adequately – let me know if I'm wrong.

Does it have to be a single command per file? And does the process have to be automatic?

@Mulvya Thanks for your comment. It would be good to "streamline" the process as much as possible. I'm trying to find ways for instance, if it is possible to rig a "drop box" where a script is automatically run if a file is placed inside that folder.

For now, I have posted what I currently have in an answer below. Feel free to improve it liberally or come with other suggestions and post an answer.

This is what I have come up with so far. Feel free to improve this answer liberally, with the objective of cleaning up and encoding lecture notes, within a streamlined process.
The command is run in the working directory, e.g. cd /Users/me/Downloads, and will encode all .MOV files present.
for i in *.MOV; do ffmpeg -i "$i" -c:v libx265 -preset veryslow -crf 23 -af "volume=25dB, highpass=f=200, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.MOV}-ENCODED.MOV"; done

The individual settings:

Video codec: libx265 (HEVC). This codec is unorthodox because it's still in development, but it's many times better than its predecessor in keeping file sizes low. VLC supports this codec for viewing the video.
Encoding speed vs. compression density: -preset veryslow. Converting videos with this preset takes very long time, but may reduce file size with around 20 % compared to the fastest setting. If you want quicker encoding, use ultrafast, fast, medium or slow.
Video quality: -crf 23. Quite good quality. Decreasing this number will increase quality but also logarithmically increase file size. This setting strikes an okay balance between file size and quality. 18 is visually lossless but takes up much space.
Volume gain: volume=25dB
High pass filter >200 Hz: highpass=f=200
EQ notch filter @ 50Hz±100Hz (this should be mitigated by the high pass filter already, but for some reason this seems to remove background noise: equalizer=f=50:width_type=h:width=100:g=-15
Audio codec: aac
Audio quality: -b:a 192k

Optional:

Lighten video curves: -vf "curves=preset=lighter"

Ideas for improvement:

A good way to gate audio to filter out background noise and keep only the talky bits.

You've opted for HEVC, so I guess this is for limited distribution. H264 is the standard codec for online streaming or wide playback compatibility. 2) You're applying a fixed gain of 25dB, so are all your source videos at similar levels coming in? 3) normalization not required?

@Mulvya 1) That's right, I opted for HEVC because it saves disk space. But you're correct that H264 is more compatible for wider distribution. If one wants to change, I assume the only thing that needs to change is c:v? 2) The gain is not always the same, but I'm not sure how to analyze and then adapt appropriate gain automatically. 25dB is conservative but helps most cases for these videos. 3) Not sure if normalization really is required because AFAIK it just shifts the waveform to peak at 0dB. But a leveller could be useful(?).

Yes, you would use libx264 in place of libx265. 2)Try out the dynamic audio normalizer - "This filter applies a certain amount of gain to the input audio in order to bring its peak magnitude to a target level (e.g. 0 dBFS). However, in contrast to more "simple" normalization algorithms, the Dynamic Audio Normalizer dynamically re-adjusts the gain factor to the input audio. This allows for applying extra gain to the "quiet" sections of the audio while avoiding distortions or clipping the "loud" sections"  @ http://ffmpeg.org/ffmpeg-all.html#toc-dynaudnorm. May be able to bypass 'volume'

@Mulvya Thanks for the good suggestion on dynaudnorm. I tried it out but because there is a lot of background noise ("whiteish" mid-range noise from the room) it didn't pick up and amplify the speech parts compared to so called "silence" (which isn't really silent). Maybe it would work better if a noise reduction tool was used first, but I think that would require sampling silence first, which can be hard when running a standardized script for different videos.

Try using an audio gate before the dynaudnorm: http://ffmpeg.org/ffmpeg-all.html#toc-agate

If you're the teacher, borrow a lavalier from your school's library/ media dept.  If you're the student, search google for a dslr shotgun mic and sit in the front row.

@Mulvya Do you have any suggestions on a good video codec for this purpose? I use x265 to keep the file sizes to a minimum and still have the text on the blackboard legible. But encoding 1 hr of footage @ 1080p takes almost 24 hours. I'm looking at either getting swaths of more CPU power to run multiple jobs in parallel, or if there's a closer-to real-time codec out there which maintains an adequate quality/filesize.

You're looking to square the circle: you want a file with small size but good quality that gets encoded quickly :) Experiment with x264 to aim for a target bitrate of about 1.5-1.7x of your x265 encodes. It should encode quicker and maybe, the result is acceptable. Another thing to look at is if you can crop the input and encode at the cropped size - viable if your composition is wider than the area of interest.

Can -threads be used to any effect? I've seen it mentioned, but not much, so I'm assuming the default value (not even including it in the command line) is already optimal. I have a quad-core processor.

source: Stack Exchange

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

sort: votes


text:
FFmpeg: What is an acceptable value for the q= parameter?
I'm trying out encoding video with ffmpeg using x264 on a NAS machine with a 2.4 GHz processor. This yields a terminal output that has a high number in the q= parameter:
frame=  236 fps=0.2 q=29.0 size=    1038kB time=00:00:08.82 bitrate= 963.4kbits/
When I encode using x265 on my standard computer, I get something that looks like this:
frame=67350 fps=0.7 q=-0.0 size=  416991kB time=00:37:28.41 bitrate=1519.3kbits/
It is my understanding that q= stands for quality, and should probably be as close to 0 as possible, while a low number close to q=31 indicates poor quality and that ffmpeg has difficulties reaching an acceptable bitrate.
Is this something specific to x264 or is it that my settings for the NAS machine are too demanding? The video sources are 1080p at 30 fps.
ffmpeg -i "$i" -c:v libx264 -preset veryslow -crf 23 -af "volume=25dB, highpass=f=200, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k

Should I be concerned about this, and what can be done about it?

Your rate control mode is CRF, so there's no target bitrate to hit. And for a value of 23, QP of 29 is what I normally see used. Ultimately, the test is whether the video looks acceptable.

I've noticed that my HEVC h.265 readout/log in ffmpeg wasn't showing anything other than 0 for the q value during the transcode. Yeah, makes it difficult to evaluate quality during an encode.
For h264, I find that the q value is always 4-6 higher than my stated crf. If crf is 18, my q during transcode might be 24. But that might be an averaging, the verbosity of the readout isn't showing you all frames. I'm guessing we are seeing an averaging of what is held in buffer verifier.

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


text:
FFMpeg: "Invalid audio stream. Exactly one MP3 audio stream is required"
I am trying to adapt this FFmpeg script that encodes all video files in a directory, to instead convert mp3 files present in that directory with similar preferences.
The original script:
This works for .MOV -> .MOV encoding.
cd /Convert; for i in *.MOV; do ffmpeg -i "$i" -c:v libx265 -preset veryslow -crf 23 -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.MOV}-ENCODED.MOV"; done

Adapted for mp3 re-encoding:
cd /Convert; for i in *.mp3; do ffmpeg -i "$i" -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.mp3}-ENCODED.mp3"; done

Throws errors:
Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument.

What is wrong with the script?

You're trying to store an AAC stream in a MP3 container, would be my guess.
Either store the result as "${i%.mp3}-ENCODED.aac" or switch -c:a aac to -c:a libmp3lame

Thanks! Funny, I always thought the mp3 format could contain aac. Looks like that presumtion was completely wrong!


text:
How does media manage to co-host a show from two continents without latency?
Bloomberg TV features programming daily where the anchors co-host the show from both London and New York at the same time. Interaction between the co-hosts at the different locations are instantaneous and there is no noticable latency   whatsoever, despite the distance.
However, when they have an interviewee on-air that is not in any one of the main studios, via what seems to be internet video or satellite, there is a noticeable latency.
How does Bloomberg TV and other major media manage to do co-hosting, in regards to latency?
Is London–New York latency not a big issue in live television? Or do they rent bandwidth on some sort of super-speed internet connection over the Atlantic?

There are two key ways to deal with the inevitable latency of live video from the other side of the world:

Ignore the video, at least for talent or guest queuing purposes. The person is fed mix-minus audio through their IFB. Since it is just audio, and historically was sent over a POTS telephone line, it can have virtually unnoticeable latency to the viewer.
Practice, practice, practice. For geographically separated anchors, they will rehearse until they can get the timing of things right. They'll know they need to start talking just that little bit early for it to be seamless to the viewer.

Other technical things that can be done are to rely on terrestrial (fiber optic) transmission of the remote location (significantly lower latency than satellite, but physics still prevents zero latency) and avoiding compression or using codecs designed for low latency and high quality.


text:
ffmpeg: Create a black background video from audio, for Youtube upload
I have MP3 audio that I would like to turn into video, by joining the audio with a solid black background. I then want to upload the video to Youtube.
Using ffmpeg, I have tried this command, and a few adjacent variants:
ffmpeg -i 'black.png' -i 'input.mp3' -c:v libx264 -tune stillimage -c:a copy 'output.mp4'
(where black.png is a PNG file that is 640×480 pixels).
However, when uploading the video output.mp4 to Youtube via Creator's Studio, I get the error:

Processing abandoned. The video could not be processed.

What could be the reason?

Youtube requires a video stream but your image is a single frame. Loop it to create a stream and terminate output when audio ends by adding -shortest.
ffmpeg -loop 1 -i black.png -i 'input.mp3' -c:v libx264 -tune stillimage -shortest 'output.mp4'

I don't remember if YT accepts MP3 in MP4. If it does, you can keep -c:a copy. -pix_fmt yuv420p is usually required, but YT will re-encode anyway to that pixel format.

With -pix_fmt yuv420p per the answer below, the resulting video plays on macOS too.

Alternatively you can have ffmpeg generate the black video with the color source filter instead of making an image:
ffmpeg -f lavfi -i color=c=black:s=1280x720:r=5 -i audio.mp3 -crf 0 -c:a copy -shortest output.mp4

Since it is just black video this is one case with lossless mode (-crf 0) will have a smaller file size than the default lossy mode.
The resulting file may not play in your player or device, but it will on YouTube.

To achieve the same result, on macOS, I'm using:
ffmpeg -hwaccel videotoolbox -f lavfi -i color=c=black:s=1280x720:r=25/1 -i input_audio.mp3 -c:v h264_videotoolbox -q:v 50 -c:a aac -shortest output.mp4

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


text:
What PC software offers speeding up video & sound together at 20x+?
I'm new to video editing, and I'm trying to find the right software to fit my needs.  I am interesting in creating videos where I want to speed up both the video and the sound together to rates of over 20x.
For example, here is the link to a YouTube video that is similiar to the style movie that I want to make.  This person used iMovie to create this video.
I started with the standard GoPro Studio, but whenever you speed up video with that program, the sound is lost.
I then moved to CyberLink Power Director, and with that program, the sound is not able to be sped up over 8x I believe when attached to the video.
I heard about Sony Video Studio, but it looks like you can't speed up the video past 4x in that program.
I do not want to break the sound apart from the video and try an pair it back up after speed up both the sound and video individually.  I also do not want to speed up the video/sound a small around, render the video, and then speed it up again, as that create a lot of redundant work.
Ideally, I would like to find the PC version of something like iMovie that has this capability.

Do you want the audio speedup to preserve pitch, or should a 100Hz sine wave in the input end up as a 2kHz sine wave in the output?  Or do you want a fast-forward type of sound where snippets of the input are sped up a bit?  (so you get a zip-zip-zip kind of sound.)  Most of these options should be doable with ffmpeg, but IDK about a GUI video NLE that includes that.

Import your file into a Premiere Pro project.
Click right on the clip and select "New Sequence from Clip".
The sequence is created.
In that sequence, click right on the clip and choose "Speed" from the pop up menu.
Adjust the speed percentage as you see fit.

I think Premiere can easily reach 80x. And you can go past that putting sequences one into the other

DaVinci Resolve from BlackMagic Design can do this, and you could easily do it with the free version, which has very generous limitations.  If you decide to pay for the full version, it's a one-time fee, versus Adobe's perpetual subscription pricing.
Resolve is also fully cross-platform and supports Linux, where Premiere only runs on Mac and PC.
Resolve is an all-in-one postproduction suite.  Its functionality replaces not only Premiere, but also Prelude, After Effects, Lumetri/Speedgrade, Audition, and Adobe Media Encoder.
To speed up a video in Resolve:
•Command/Ctrl-I to import, select your video from the system dialogue.
•Drag the video from the media pool onto your timeline.
•Select the video on the timeline, and either use command/ctrl-D to change the entire Duration by a set amount, or use command/ctrl-R to Re-time ("speed ramp") variably.

Almost every professional video suite can do it. Try premiere pro.

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


text:
How do I create this effect of instantaneous typing in a video?
I have seen in many videos where I see a cursor blinking and then something(maybe the name of a person) is typed out in the video producing an effect of the thing being instantaneously typed out.How do I create this effect?I use Videopad Video Editor and MS PowerPoint.Is it possible to do this using these softwares?If not,please suggest some alternatives.
See this video at 2:18 sec for example-

.
Thanks a lot in advance.

Can you provide an example of what you are trying to achieve ?

@AdamMannPro-I have edited the question.See it.

Sony Vegas Pro comes bundled with NewBlue Titler plugin which has a 'Type On' transition preset which does this automatically. After Effects can do this as well: see this tutorial.
Basically, this can be done manually in any program in which one can animate masks. In short, in one frame the mask shape extends till the edge of the currently revealed letters. It is keyframed to hold that shape till one frame before you are ready to reveal the next letter. On that next frame, you expand the mask to uncover the new character.


text:
Is it possible to export a Video with transparent Background? (No Image Sequences!)
Is it possible to export a video file from After Effects with transparency?
I don't want to export to an image sequence.

File > Add to Render Queue > Output mode > Format 'Quicktime' / Channels 'RGB + Alpha'
See if that works for you!

Yep that works.. as mentioned in my comment in @Mulvya 's answer. But its sad its not possible to set up in Adobe Media Encoder

Ah yes, Media Encoder - do you have the GoPro Cineform Codec? I believe if comes with latest versions on Media Encoder. If so...you can choose Quicktime > GoPro Cineform with Alpha.

Production codecs with alpha channel support

Apple ProRes 4444 / Apple ProRes 4444 XQ
From the Manual:

Apple ProRes 4444 and Apple ProRes 4444 XQ are ideal for the exchange of motion graphics media because they are virtually lossless. They are also the only Apple ProRes codecs that support alpha channels.

DNxHD
From Wikipedia:

lossy high-definition video post-production codec engineered for multi-generation compositing with reduced storage and bandwidth requirements
The codec supports alpha channel information.

DNxHR
From Wikipedia:

lossy UHDTV post-production codec engineered for multi-generation compositing with reduced storage and bandwidth requirements

CineForm
From Wikipedia

Current implementations support image formatting for 10-bit 4:2:2 YUV, 12-bit 4:4:4 RGB and RGBA, and 12-bit CFA Bayer filter RAW compression

Uncompressed with alpha

Quicktime Animation Codec
AVI uncompressed (None)

From the After Effects Manual:

When specifying the color depth for an output image, the plus sign (as in Millions Of Colors+) denotes an alpha channel. Similarly, choosing to output to 32 bits per pixel implies an output depth of 8 bits per channel for each of four channels: RGBA.

Yes, for the Quicktime output module, choose to output RGB + Alpha using PNG or Animation codec.
In Media Encoder, choose Depth as 32 Bit after selecting the same codecs as above.

there is no option in the mdeia encoders output module for an rgb or rgbA channel...

I saw it in the render que in after effects but not in the media encoders one


text:
ffmpeg based JAVE video conversion taking a long time
I am using ffmpeg to convert videos to mp4 format in my application I have used JAVE and Xuggler for the same. My issue is that, video conversions are taking way too much of time. For example, a 50MB video takes almost 2 hrs to complete the video conversion and upload the same. Also, when i play a video, it takes a longer time to play on safari on mac OS than chrome/firefox.
What are the possible solutions for this? How to optimize the conversion time/video buffering for playing the video faster
I am using the it.sauronsoftware.jave.VideoAttributes and EncodingAttributes classes to do this
VideoAttributes video = new VideoAttributes();
video.setCodec("libx264");
EncodingAttributes attributes = new EncodingAttributes();
attributes.setFormat("mp4");
attributes.setVideoAttributes(video);
Encoder encoder = new Encoder(new FFMPEGLocator() {
                @Override
                protected String getFFMPEGExecutablePath() {
        String ffmpegPath = PropertiesUtil
            .getProperty("location.ffmpeg");
        return ffmpegPath;
     }
});
encoder.encode(sourceFile, destFile, attributes);

sourceFile and destFile are the source and destination files respectively

Please paste the ffmpeg command as well as the console output.

@Mulvya, I have included the java code used to do the conversion

Unfortunately, that doesn't help much. Need to know the actual syntax that ffmpeg is being invoked with.

@Mulvya, In my case the java code invokes the FFMPEG instance installed in the system for the conversion process. How will i get to know the exact command that ffmpeg invokes?

Not familiar with JAVE. Perhaps you can ask the developer Carlo Pelliccia at cpelliccia@sauronsoftware.it


text:
how to synchronize text to the video timecode?
I am wondering how to add text which is updated along the time code of the video.
Concretely, I have a gopro footage and a file of some performances values (speed, heart rate, cadence,...) that I want to overlay with correct values at the right moment.
I have a csv file with time in first col, and other parameters in following cols.
I'm quite new in video production, so I not particularly familiar to any software (so there's no need on a particular platform solution)
EDIT - solution : I found a nice solution perfectly answering my question : http://www.dashware.net . I'll try it later but it seems the right solution !

I can supply a detailed answer when I have more time but your best bet is to use ffmpeg, specifically its drawtext filter. Basic idea is to create a script that parses your CSV file and composes one very looong ffmpeg command containing drawtext filters - one for each line in your CSV.

Davinci Resolve lite is free, and you can "burn in" timecode.

@JasonConrad  , what do you mean by "burn it" ? do you have any reference about resolving my issue with this software ?

Thanks @Mulvya ! This sounds nice, I'm exited to hear more !

"burn in" means write the timecode visually to the video file.  You can also write other information using the tools in Resolve.  Page 846 of the user manual.  https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwivyP-Py6nJAhVMRCYKHbd6ACEQFggeMAA&url=http%3A%2F%2Fdocuments.blackmagicdesign.com%2FDaVinciResolve%2FDaVinci_Resolve_12_Manual_2015-07-27.pdf&usg=AFQjCNFPZAq2nl_BBOgXfw9rCUe4dN7Cnw&sig2=EBQ8R-nY3NbNs9nl2gWfvw

Dashware will be much more convenient. Add it as an answer and mark it as accepted.

Jason, the OP wants to burn idiosyncratic dynamic data recorded as per timecode, and not the timecode or any of the Data Burn elements mentioned in the Resolve manual. Also don't see an option for Resolve to use a text file to source the changing data. If it is possible, can you write up an answer?

Tkanks @Mulvya I just founded this soft too ! I'll just need to find or create nice gauges, but that's another question ;)

@Mulvya, nmatton  I find the question confusing.  Perhaps one of you, who seem to understand it, could re-word it more clearly.

You need to drive the animation with the CSV data?

I found a nice solution perfectly answering my question : http://www.dashware.net . I'll try it later but it seems the right solution !


text:
Green Screen Streaming
I am a complete newbie when it comes to making videos. Just got a Canon VIXIA RF62, and built a DIY green screen. On the green screen I hope to place maps and other background images that I will point to in my presentation. I know I can add these things in post-production, but I want to be able to look at myself in a monitor, with the images in place, so I can see where to point in real time.
I was thinking of hooking my camcorder into my PC laptop via the HDMI out cable on the camcorder. The idea being that I could hook up a monitor next to the camera that I could see while filming, so I can tell where to point. I don't want to just look at me in front of a green screen.  At the same time I want to be recording the whole thing.
I have not as of yet bought any video editing software. Is there some that can do decent amateur video editing, and still do what I want it to from a streaming perspective? Any help would be much appreciated!

There are several ways of achieving this.

Use a hardware solution. They are available from Datavideo or on most video switchers. Obviously, these cost money and the results are dependant on how well you've lit your setup.
For a software solution you will, like you've mentioned, need to connect your camera's video output to your computer. (It seems you have an HDMI output) Therefor you will need an HDMI input on your laptop. If your laptop supports USB3 or Thunderbolt you can look at solutions from Blackmagic Design (among others) to capture the HDMI feed over USB3 or Thunderbolt. The Thunderbolt solution is really affordable, the USB3 solution, less so.
Some of the BMD models allow you to do Live-Chromakeying in the Blackmagic software.
For Windows I came across this software, http://vidstudio.com/ it seems free and allows for live-chromakeying.
For the Apple filmmakers among us. A quick search on Live-Chroma Keying OSx will result in a large selection of affordable software.

Especially when you are going to do the actual keying in the post process, you don't need the highest quality live killer. These are often times very expensive and give moderate results at best.


text:
Overlapping shapes pixelated in final export
I have some issues with Adobe AE, in rendered video (on monitor inside AE it's ok). In the composition I have one shape overlapping the other one. However, the edge of the shape on top is pixelated.
Some ideas how to fix it?
I use 1920x1080 resolution/8bits color depth.

Can you post a single frame from within AE and one from the rendered video?

I dont know how to correctly save one frame from video file or ae. (Using snipping tool the quality is too bad for recognizing the pixelation) But i tried to export  few frames into jpeg sequence and there it seems ok - no pixelation at all

https://drive.google.com/file/d/0B_BtMYR6W3f8d0ZMdHhDTkdIbzg/view?usp=sharing @Mulvya Here's the sample video - it's about the blue circle with purple sector - edge of is not smooth/antialiased

Use Lossless preset or Quicktime - Animation and see if it still happens.

When i set output module to lossless it renders to avi (100x bigger file) - still pixelated :/ It's strange that when i export it as video there is pixelation but when i render it as jpeg sequence it is allright...

I'm trying to eliminate chroma sampling as the cause. I'm not sure if MS YUV is subsampled or not. So, try Qucktime - Animation codec.

I used format: Quicktime, format options/codec: Animation. Still the same pixels --- http://imgur.com/a/Ur9Uk here are some screens first one render to jpeg second image frame from h264

Upload a jpeg of the same frame as the video

Finally i've managed to capture the difference: 1st image jpeg export / 2nd video screenshot http://imgur.com/a/yDzW1

I'm thinking it's chroma subsampling too. It's a very minor defect, and it will probably be swamped by compression artefacts when you do a web version anyway. If people are noticing it, you're not doing your job as a storyteller ;)

ahh no problem, client or customers won't notice this, but i was wondering what's the cause of this "glitch" and how to avoid it in future.

If you're delivering the content in a format that uses 4:2:0 chroma subsampling it will just be a limitation of the medium: the colour resolution is lower than the luma resolution. If you are making mp4s that have to be compatible with most current players then that's how it has to be at the moment. If you think that's annoying try designing motion graphics to be delivered on interlaced, standard definition VHS tape. You kids don't know how good you have it ;)


text:
Do blanking intervals appear on both sides of a frame or just the top and left?
I've been learning about the blanking intervals in video signals and often see diagrams like this:

(Ref)
But, I often also see the blanking regions describes as being on both sides of the image:

(Ref)
Which is correct? I would have thought the latter as I would have thought for CRTs the electron beam would be blanked at the end of a line so it can return to the start of the next line and then un-blanked. Same for vertical.
Which image/description is correct?

They are both right, depending on the context and level of detail. The latter accurately describes what happens within the waveform. If you look further down in your reference, it shows that there is a "front porch" and "back porch" of the horizontal and vertical intervals.
However, the former describes what happens practically, especially in terms of the useful parts of the vertical blanking interval (VBI). Closed captioning, teletext, VITS, VITC, AMOL all use the blanked lines at the top of the field to transmit their data. (You should also note that your reference intentionally chose this layout in order to draw parallels with digital VANC and HANC, which are only at the top and left of the picture.)

Thanks, that makes sense. So just to make sure I understood you... the first image just ommits the bottom VBI and right HBI because they are generally not used for ANC data?

You are mixing analog and digital. For an analog signal, the first omits or combines the VBI and HBI, either one describes the practical signal. For digital, the VANC and HANC are only at the top and left of the picture.

So, in the first image, if it were an analog signal the VBI at the top contains the top and bottom intervals from the second image or ommits the bottom interval from the second image... did I understand that right? Thanks again.

From a practical perspective, yes that's right.


text:
What happens when a compressed video is played back?
I've been reading up on video compression. I understand that 'raw' media file sizes are to big for practical usage so they have to be compressed, but I'm wondering what happens when the video is being played back.
I mean is the whole video decoded (decompressed) and stored somewhere in memory (this doesn't seem possible) or are the individual frames decoded one at the time and then forgotten, so that when you want to replay a portion of the video you need to decode it again?
It's probably a very noob question and it's because I am one, so would appreciate any info.

Yes, the player only decodes frames as needed. The decoder's buffer stores all frames needed for the current queue of frames being played. When you replay a portion you played some time ago, it has be re-decoded. However, players may maintain a cache so a portion replayed very soon after its last play may still be in that cache.

In most common compression schemes, there isn't a 1::1 correspondence between "video" frames and "file" (or stream) frames **. Any particular video frame may require the contents of several file frames to become a complete viewable image. So a player will read and buffer as many file frames as needed to reconstruct the video frame in question. The player may buffer much more, but it's not required to.
For example, if some video frame ends up as a P frame when encoded in the file, the player will need to look back to find the previous I frame, decode that, then apply the differences encoded in the intervening P frames to get the complete result.
** EDIT: There is of course a file frame for each video frame, but the point is that you can't usually read one frame from the file and get a complete video frame: that's only true for I frames.

The idea is to be able to stream the data and play it on a dumb device (such as a "DVD Player"). The dumb device is generally going to use as little hardware as possible, so for sure, you wouldn't have enough memory to decompress the entire movie then play it back. Plus that would take forever to get started. The streaming concept means you want the data to be played as it comes in.
My understanding of H.264 is that you have one frame called an I-Frame which you can decompress on its own. This is essentially a JPEG image within your movie file.
The following frames are going to be P-Frames which make use of the previous frame to generate the new frame. More or less, if only a character is moving on your screen, you just need to erase the character where it was and render it were it's now. The rest of the screen can remain unchanged. In that case, you can very much compress the image data of that one frame (i.e. an I-Frame may be 250Kb in a 4K movie whereas a P-Frame could be as small as 2Kb).
Further, the H.264 compression scheme supports B-Frames (Bidirectional). This is a bit more complicated. It means a frame can only be decompressed after some future frame gets decompressed. This means the device decompressing frames needs to be able to cache more decompressed frames than just the last I-Frame and the last P-Frame (and as far as I know, P-Frames may reference older P-Frames than the one just before).
Each decoder will have limits to what it can do. For Example, I'm using Jetsons to create an embedded system and they only support video compressed in 4:2:0 (2 chroma bytes for every 4 pixels). The number of buffers that a decoder has and whether B-Frames are supported are other features that may or may not work depending on the decoder.


text:
How to stack three videos side by side with ffmpeg
I'd like to combine three videos into one vertically stacked video. The three videos have different width and height.
I can combine them horizontally successfully with this command:
ffmpeg -i s1.mp4 -i s2.mp4 -i temp.mp4 -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih[1v][0v];[2:v][0v]scale2ref=oh*mdar:ih[2v][0v];[0v][1v][2v]hstack=3,scale='2*trunc(iw/2)':'2*trunc(ih/2)';[0:a:0][1:a:0][2:a:0] amix=inputs=3:duration=first:dropout_transition=0,dynaudnorm" final.mp4

How can I modify this command to stack them vertically?

For vertical stacking, the widths have to be equalized.
[1:v][0:v]scale2ref=iw:ow/mdar[1v][0v];[2:v][0v]scale2ref=iw:ow/mdar[2v][0v];[0v][1v][2v]vstack=3

oh it works,thx!

@Gyan can you explain the parts of the above string?


text:
How long should video clips be to be in sync with a 90 BPM song?
I am making a home vacation video set to music. The song I selected has a BPM of 90.
I want the video clips to match the beat, so for example, every time you hear the beat a new video clip begins. How would I determine how long the video clips should be? If there is an equation I can use for other BPMs as well that would be great.

If you want a new image at every beat, start with the frame rate of your video. 30 frames per second gives 1800 frames per minute. Divide that by 90 to get the number of frames per beat, in this case 20. So if you change the image every 20 frames the pace will be the same. You do have to align the cuts with the beat; just matching the pace is only part of the battle.
In the general case:
(FPS x 60) / BPM = number of frames per beat


text:
What is the name of this type of transition?
What is the name of this type of transition in this video? How can I recreate it in Sony Vegas or other video software?

https://vimeo.com/254489721

It doesn't really have a specific name. Since it is an animation, the closest you could probably get with just editing software is a double linear wipe from the center.

Found this double linear wipe as "Barn doors" transition in Sony Vegas video editor.

Are you sure it isn't barn doors?

You can make it with animation composer plugin
animation composer plugin

Can you add some more detail to this? Maybe outline the steps needed to animate like the OP requested?


text:
ffmpeg drawtext timecode source framerate
I'm trying to burn timecode onto a video file with ffmpeg. Documentation notes that frame rate is a required parameter. It confuses me that I need to specify it manually when the information is available for the source file. This confusion suggests I'm missing an important assumption.
I'm batch-processing source files with different frame rates depending on their source (24, 29.97, 30). How can I set the frame rate automatically?

FFmpeg has a modular design. The module which unpacks a stream from a file and discovers/sets its properties, including framerate, is ffmpeg base code. drawtext is a filter module that operates upon decoded frames. It has no concept of a framerate because it receives a sequence of individual frames in series, and only gets to see the metadata pertaining to that frame.
Usual M.O. when performing such operations is to get the framerate information by running ffprobe beforehand and saving it to a variable, referencing that variable in the drawtext options so that the shell can substitute the value.
That ffprobe command is
FPS=$(ffprobe -v 0 -show_entries stream=r_frame_rate -select_streams v:0 -of compact=p=0:nk=1 "$file")

Thank you, @Gyan. This is a lot of command line! Can you elaborate on the output format compact=p=0:nk=1?

compact -> no linebreaks within a section; p=0 -> no section titles; nk=1 -> no key labels


text:
Digitize a VHS tape with FFmpeg and get a live preview
Digitize a VHS tape with FFmpeg
On this thread, I found a perfect command to digitize a VHS tape with FFmpeg using a USB video grabber. All good with that; it works like a charm. Acceptable bitrate, no dropped frames and, most importantly, a good output file.
Working command:
ffmpeg \
-f v4l2 -standard PAL -thread_queue_size 2048 -i /dev/video1 \
-f alsa -thread_queue_size 2048 -i hw:2,0 \
-vcodec libx264 -preset superfast -crf 23 -vf yadif=1 \
-acodec libmp3lame -b:a 128k -channels 2 -ar 48000 \
vhs_output.mov

Question: How to get a live preview?
I've read numerous threads talking about pipes and tee objects, but I still haven't figured out how to get a live preview.
My try for a ffplay pipe:
ffmpeg \
-f v4l2 -standard PAL -thread_queue_size 2048 -i /dev/video1 \
-f alsa -thread_queue_size 2048 -i hw:2,0 \
-vcodec libx264 -preset superfast -crf 23 -vf yadif=1 \
-acodec libmp3lame -b:a 128k -channels 2 -ar 48000 \
vhs_output.mov \
-f h264 - | ffplay -

The problem with this command is that there are now two x264 encoders active. Secondly, the preview isn't as fluid as the output since there are now lot's of dropped frames. Where have I gone wrong? How can I reuse the first output? Raw piping isn't an option since ffplay can't handle it.

The tee muxer is suitable for this.
ffmpeg \
-f v4l2 -standard PAL -thread_queue_size 2048 -i /dev/video1 \
-f alsa -thread_queue_size 2048 -i hw:2,0 \
-map 0 -map 1 \
-vf yadif=1 \
-vcodec libx264 -preset superfast -crf 23 -flags +global_header \
-acodec libmp3lame -b:a 128k -ac 2 -ar 48000 \
-f tee "vhs_output.mov|[f=nut:onfail=ignore]pipe:1" | ffplay -

Yes, now it can encode without dropping frames using the tee object. On the other hander, the FFplay window never appeared. I've got this message "pipe:: Invalid data found when processing input" after safely exiting FFmpeg. I also notice that there are two files created. ("vhs_output.mov" and " -")

See edited command

Thank you, that did the trick! I hope that it can help others for similar purposes.


text:
How to Achieve This Timelapse Effect
I can't really explain it so I'm finding it hard to Google for tutorials. I was wondering how to get this effect:
Instagram Video
By using something like Photoshop CS6 or a freeware program. I'm familiar with using the timeline to create normal timelapses, just not ones where the previous images linger on. Am I right in guessing a lighten blending mode is used?

That is something called Starlapse. In short it is a form of time-lapse, as you use the same techniques to shoot it but you use a different method to produce the final video. there are many ways in doing this using different programs and plugins. All you need to do is do a search (in a very popular web search program that rhymes with "poodle" and there are hundreds of posts, tutorials, and videos on how to do this.
I do it myself and use https://www.markus-enzweiler.de/software/software.html simple and easy to use but you are limited to editing the images outside of the app. There are other options of using plugins in LightRoom, PhotoShop etc
Hope that answers your question


text:
Calculating duration when changing playback speed
This maybe a pretty simple question, but I can't get around it for some reason.
When I speed up a video to say 1.5x or 2x, how do I get the total time that video would take?


text:
Should I export all edited clips before final composition?
If I have, for example, a 1080p project in wich I have to add some 4K videos which needs to be stabilized and noise reduced.
Which is the way to go?

add the clip in 4k into premiere and replace it with a AE comp where I fix it?
correct the clip in AE, export it into a single video file already scaled to 1080p, and then add that into premiere sequence?

Would the second method be faster while working inside premiere? I think so since it is already in 1080p and the software is not rendering a preview of noise reduction + stabilization, etc.

Would the second method be faster while working inside premiere? I think so since it is already in 1080p and the software is not rendering a preview of noise reduction + stabilization, etc.

Yes… and no. While the 1080p footage may play better in Premiere, doing the post work on all your rushes will chew up your time trying to correct clips that you may not end up using. If you do the noise reduction in After Effects first you will either have to render the clips, or if you use dynamic linking Premiere will be doing the render on the fly, which definitely will slow it down.
My usual workflow is to do the cut in Premiere. The footage will be ungraded, with no post effects or noise reduction etc.. Once the cut is locked off (ish) then I will select any clips that need post-work in my PP timeline and choose Replace with After Effects Composition. This will create an AE comp with the selected clips already cut to length and in order, ready to be worked on in AE. Once I've done the AE work the comp is already dynamically linked to Premiere, so changes I make in AE show up in the Premiere timeline.
This means I only have to export the final timeline from Premiere, thus saving an intermediate render. Obviously if there's a heap of After Effects stuff happening on it it will slow down your Premiere previews, that's why you do it after all the editing is done and dusted.

ok thank you!, that was kind of what I was doing the last time, replacing with after effects comp, then it appear red on timeline until I hit enter and render that part.

Yep, that's why you leave the After Effects stuff until the cut is locked off. It get's harder to make changes after that.


text:
Create Alpha channel-Videos (obs stinger compatible) with ffmpeg and 2 files
I have 2 video files. One file is the main content and the other file has an alpha channel emulated with black and white (white = opacity 100 and black = opacity 0). Sometimes the emulated alpha channel file has only full black and full white frames, but I think some videos that I want to create will have complex alpha channel emulation with gray scales.
Is it possible to make with ffmpeg an vp8,vp9 -pix_fmt yuva420p ready .webm movie?

The alphaextract/alphamerge filters are meant for this.
Since your alpha reference is already greyscale, we only need the alphamerge filter
ffmpeg -i main.mp4 -i alpha.mp4 -filter_complex [0][1]alphamerge,format=yuva420p -c:v libvpx -auto-alt-ref 0 out.webm

Wonderfull! A perfect result with b/w and complex greyscale alphaemulated movies:). Now i can relaxed wait that my Videoediting and Animating Software implement this automatically.


text:
After Effects preview with decreased image quality
I have some 3-4 year old AE projects which use bigger png textures. When I created, them they looked amazing in the preview. The quality was render quality. The images were displayed as they look like when I open the source png files.
So the problem is that when I open them now (with the exact same computer, with a newer AE version), the images look terrible with the preview. The quality of the textures has been lowered a lot. Changing the preview resolution to "Full" doesn't help. I am unable to preview my composition with normal quality while I can render it in almost real time, so it's not because the file ate all of my RAMs.
I would really appreciate if somebody could give me some tips about how could I try to solve the issue.

You're probably using "Fast Draft" as your preview. This is a new preview mode which uses the GPU to provide "fast"* rendering for previews. This mode will generally look pretty bad, with less or no antialising, lower resolution textures, and less accurate colour.
You can go back to the old adaptive resolution rendering for previews, or use final quality (it actually works faster sometimes, go figure) using the little widget at the bottom of the comp window:

*Adobe's words, not mine, IMHO the latest versions of AE are the slowest yet


text:
In final video how much is B Roll and how much is A Roll percentage wise
How much of the BRoll do you usually place in your videos for documentary work (not short films)?
By documentary, I mean talking head whether that's vlogs, interviews of different descriptions etc.
My end product usually has about 30% of BRoll. I.e. every 7 or so seconds ill add some BRoll.
Does anyone of you have any recommendations?

There is no one answer to this. It is completely dependent on your subject matter and creative process.

I agree with @MichaelLiebman 's comment, it depends ...

My end product usually has about 30% of BRoll, I.E. every 7 or so seconds I'll add some BRoll.

It's possible to adjust your percentage 20-30% either way. The way you'd have 60% broll and still call it B-Roll is that the A-Roll had a lot of failed shots and it was broll that saved the day.
As a rule seven seconds is short and > than 20 but < than 40 is probably good, but even 7 can be long (parkour, skateboarding, etc.) and 40 short (rowing to the crab traps, driving over the Golden Gate); it depends.
So basically what does it depend upon (limiting it somewhat to the scope of your question):

Subject and pace of the story (laidback vs. jarring).
The need to switch. If you must show wide and close with fast pace you'll be flipping back and forth in less than 7 seconds (showing what someone is doing or offering how-to advice), if you're panning around someone's surroundings or showing the parts or usage of something you can run well beyond 40 seconds.
What you got. You either have to make an edit with the shots you have and try to cobble them into your storyline or you need to shoot some more footage (which often, but not always, involves going back out to the location).
Style. It's yours, make it your's and be proud; assuming it's reasonably good.

Look at what other people do, read up on the subject; but make your own style.
Videos are easier than written advice for this topic but here's a mix of both:
Nikon's "Shooting B-Roll Footage with a DSLR". In particular see near the end of the video included on that webpage how B-Roll saved Grandpa.
Look at this video on the Gear Dads YouTube channel: "How To Shoot B-Roll". See what and how to shoot, so you come home with useful material.
Speaking of YouTube, there's lots of professional advice, or simply work done by professionals (that isn't explained, but you can see how it's done). Erik has been a Producer for over 2 decades, here he is interviewing at a Trade Show: "CAME-TV Gimbals – Newsshooter at IBC 2017". Single camera, single person crew, and he edits it too. Not perfect, not bad. One man job.
Look and learn, practice makes perfect. There's also short courses at Colleges or offered by local talent that can provide individualized advice.
If you edit your question and put a link to an example of your work then fine tuned advice can be offered.

Thanks for the extensive answer Rob!  You are correct in that every person will have their personal taste and it really depends on the video.  I usually record vlogs and so forth so when it's just a head talking I feel it's better with a lot of broll to illustrate what is being said. In most of my other footage, I'll try and have that rule of 30ish % of BRoll.

@Dalibor - Glad to be of assistance. If you put an example video in your question we might be more helpful.

When doing live webcast of a sermon, we will present slides and titles as they are referenced by the preacher. A 40 minute sermon typically has 20 slides. I will occasionally introduce some B-roll footage in post production before uploading to youtube to mask serious technical errors.
For special events such as concerts I will have up to 4 offline cameras to augment my two online cameras. the final cut typically ends up about 25% from the off-line footage.

Thanks! - Yeah, I know it really depends on the video being created. I do vlogs and just walk and talk videos hence I try and put a lot of BRoll.


text:
Highest quality way to extract a still from video
I have a MP4 that I really really want a still from.
I want to make a canvas from that still.
I have access to: Adobe premiere elements 12, ffmpeg and gimp.
I want the still to be the highest resolution and quality possible.
Using one or more of those tools, is there a method that will have higher quality than other methods?

Have you tried this?

@Ambo100  Will look into this,  Could be what I wanted.  thanks

I doubt there will be much difference in the rendering capabilities between any of the software you list, as long as they play the video correctly. The biggest quality loss has already happened when the video was compressed to mp4.
Use whatever is easier. This is how you do it with ffmpeg
ffmpeg -i themovie.mp4 -ss 1.23 -t 1 -r 1 -f image2 outputImage.png

where 1.23 is the time in seconds you want to capture.
How that works is it tells ffmpeg to -ss search to 1.23, then -t 1 means only export 1 second's worth of video, -r 1 means at frame rate 1 frame per second (i.e. export only one frame). If you don't do the -t 1 -r 1 dance it will complain about not being able to export the entire movie as a frame sequence. -f image2 just telss ffmpeg to export as a still frame (it's probably redundant because you're specifying a .png as your output).
Many free, video players like MPV, MPC-HC or VLC can do this from a gui, meaning you can line up the exact frame by eye. They all use high quality video renderers which share a lot of code with ffmpeg. Using one of these, the task would be basically hitting the s key (or whatever) when you find the frame you want.

This answer worked great.  One side note:  I had the  hardest time running this from cmd or powershell.  Finally did it in Mobaxterm linux window, like this:: "/drives/c/Program Files (x86)/ffmpeg/bin/ffmpeg.exe" -i VID_2012_1116787.mp4 -ss 77.0 -t 1 -r 1  outputImage.png

You probably need to add ffmpeg to your Path environment variable. Then you won't need to specify the full path to the executable. Another trick is that most terminal emulator apps let you drag files or executables, which will automatically generate the correct path


text:
Create splitscreen video using ffmpeg
I have two videos of different length. I need to create a new video with one video at the left and other at the right. I tried using this. Problem is my videos are of different length. I want to start one video a few seconds after the other started. Also, I want to keep the audio of the longer video only.

Do you know which of the videos is longer?

Yes. I know. The right one.

Use
ffmpeg -i shorter.mp4 -i longer.mp4 -filter_complex
 "[0]trim=0:3.5,drawbox=c=black[delay];[delay][0]concat[left];
  [left][1]hstack[v]"
 -map "[v]" -map 1:a -c:a copy out.mp4

where 3.5 should be replaced with the delayed start time (in seconds) of the shorter video.

Awesome! But there was one missing point. Sync was proper. But the right video didn't start until the delay (13s) elapsed. Then both videos started simultaneously. In essence, I lost the first 13s of the right video

See edited cmd.

No. The update distorted. Both videos began simultaneously. After few seconds, left video paused for few seconds. Then it resumed in sync with the right video

Show full log..

https://drive.google.com/open?id=1gaX3d2ccbUcNjS8TqIPBL1kRX-sB4z0y
I have put the logs here

You're using an older version of ffmpeg which needs manual buffering. Change first line of filters to [0]trim=0:3.5,drawbox=c=black,fifo[delay];[delay][0]concat,fifo[left]

Got an Error
https://drive.google.com/open?id=1vgDD6T0HlR7BBaUHLdybBzlfBQnJNqyx
I installed ffmpeg today from here http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.bz2. I'm running on macbook pro
Do, I need to install something else also?

Get a binary from https://ffmpeg.zeranoe.com/builds/

Let us continue this discussion in chat.

Use ffmpeg -i left.mp4 -i right.mp4 -i left.mp4 -filter_complex "[0]trim=0:13,drawbox=c=black:t=fill[delay];[delay][2]concat[left];[left][1]hstack[v]" -map "[v]" -map 1:a -c:a copy out.mp4 with the new binary. This is an outstanding buffer mgmt issue.

Error again!
https://drive.google.com/open?id=1fRWw03VP-GlCtDJOgHcWgs5dXUnRlb4t

What's the output of ffmpeg -hide_banner -filters

https://drive.google.com/open?id=13vBYu8M9wsiGXsJBTqgTB977sM7K2hlC

It shows the concat filter. Rarely, there's a character coding issue when pasting to/from Stack Exchange. Retype the command at your end and run.

Yes. Its working perfectly fine now. Thanks a lot!
Also, I have one more request. A small extension. How to handle the below scenario. Left video should start after right video. But the length is such that left video extends after the right video ends. The current command handles this, but after right video ends, audio stops. Left video continues without audio. How to make such that after right video ends, audio should be taken from left video?
Should I ask a new question for this?

Ask a new Q. It's more convoluted to switch audio like that.

I have asked here. https://video.stackexchange.com/q/23156/21062
Thanks!


text:
What should my aspect ratio settings be for an Instagram ad?
I am trying to design a video for my ad in Instagram, but when I upload the video, it says:

Story media aspect ratio has to be smaller than or equal to 9:16
Aspect ratios of videos need to be 1:1.

What should be the settings?

It means that the ratio between the width and the height of the content (in pixels) should be the specified one.
Specifically, for a video you need to have an aspect ratio (technically, a DAR - display aspect ratio) of exactly 1:1, so the width of the video should be the same as the height of the video. In other words, the video should be square. As an example, 1000 pixels x 1000 pixels is fine, because (1000 / 1000) == 1.0, while 1280 x 720 is not, because the division is not 1.
For what they call "story media", the aspect ratio should not exceed 9:16 (which is 16:9 in vertical). In numbers, that's 0,5625. So in this case the "media" you're uploading shouldn't be exceeding that 0,5625 value, when calculating the ratio between the width and the height of the content.

As you recommened 1000*1000 I set that still it says it should be lesser than 9:16. and what is 0.5625? I didn't get that part.

Are you uploading a video? From what you posted in the original post I understand that the aspect ratio should be 1:1.
9:16 means that for every 9 horizontal pixels you have 16 vertical pixels. When you want to check if a video resolution satisfies a certain aspect ratio, you calculate the division between the width and the height of the video and you compare it with the aspect ratio. In this case 9:16 = 9 divided by 16 = 0,5625. When you export the video from your editor you should be able to set either the x:y aspect ratio or the calculated decimal number

Okay,still didn't get that. I am able to export it as x = 600 and y = 600 which is 600*600 = 1,that should work right?

It should, yes. Can you check if the output video file has the correct resolution? With something like MediaInfo. Instagram should accept a video of 600x600 pixels without problems...

https://imgur.com/AZDXGH1 check this.

That's weird. Do you have any way of contacting Instagram about this issue? The video file seems correct to me, if the requirement is a 1:1 aspect ratio


text:
SJCAM SJ4000 How can I pause video recording?
When my SJ4000 is in video mode, I press OK to begin recording. Then, pressing the same button during recording stops recording and closes the output file.
Is there a way to momentarily pause the recording and then resume without starting a new output file?
I have searched the SJCAM forum and couldn't find a definite answer.

Nope this is not possible. just a limitation of the camera, all cameras work in pretty much the same way

I'll take your word for this and accept. My Panasonic flagship L810 even has the same limitation. Why? Lazy, thoughtless programming!!! e.g. Motion detection - necessary to inspect 100s of files instead of just one. Strong case for FW enhancement. Anyone else agree?

I have had and or currently have had Canon C100 (professional) Canon 7D Canon 100D, Panasonic DVX100, Panasonic camcorder (consumer) and have worked with some very professional cameras and non of them have a pause function. I don't think  have ever seen a "pause" recording option.


text:
Disguising the identity of a voice over
I consider making some kind of tutorial channel on YouTube about a specific subject where I do a voice over on my videos while using an Intuos to demonstrate on the monitor. However, I do not wish the whole world to know who I am and therefore I thought about if it is possible that my voice could be recognized from the voice over in any way.
So is it actually possible to quickly and easily change the voice audio a bit so it still sounds natural and wouldn't be recognized?
Also, I know about Audacity. Do any of you know how to do it there and are there better software solutions?

You have a few options for disguising a voice, but several of them intentionally make the sound unnatural.

Have someone else record the voiceover. This is the only technique that results in a truly natural sound because it is an unmodified voice. There are some relatively inexpensive voiceover services available if you don't already know someone. Because the person is never seen on screen in what you describe, you don't have to worry about lip sync, just rough timing.
A simple pitch shift. Change the key of your voice with a pitch shift filter and correct the timing. This is easily reversible if you have serious concerns about your identity. This video describes how to do that in Premier.
Randomize the pitch shift, layer multiple pitches, or add other distortions. Sound designers get creative with plugins.


text:
Use ffmpeg to remove specific chapters out of an MP4
I would like to know how to use ffmpeg to remove specific chapters from a video file. Below is an example.  I would like to remove all the Chapters marked "Advertisement".  I've searched everywhere and I can't seem to find a way.  I don't even mind re-encoding, but I just don't want to do it by hand.
 Duration: 00:52:24.45, start: 0.042989, bitrate: 3290 kb/s
    Chapter #0:0: start 0.000000, end 19.142000
    Metadata:
      title           : Video
    Chapter #0:1: start 19.142000, end 34.017000
    Metadata:
      title           : Advertisement
    Chapter #0:2: start 34.017000, end 810.551000
    Metadata:
      title           : Video
    Chapter #0:3: start 810.551000, end 915.283000
    Metadata:
      title           : Advertisement
    Chapter #0:4: start 915.283000, end 1206.940000
    Metadata:
      title           : Video
    Chapter #0:5: start 1206.940000, end 1291.963000
    Metadata:
      title           : Advertisement
    Chapter #0:6: start 1291.963000, end 1614.738000
    Metadata:
      title           : Video
    Chapter #0:7: start 1614.738000, end 1694.709000
    Metadata:
      title           : Advertisement
    Chapter #0:8: start 1694.709000, end 2068.249000
    Metadata:
      title           : Video
    Chapter #0:9: start 2068.249000, end 2173.261000
    Metadata:
      title           : Advertisement
    Chapter #0:10: start 2173.261000, end 2472.440000
    Metadata:
      title           : Video
    Chapter #0:11: start 2472.440000, end 2582.395000
    Metadata:
      title           : Advertisement
    Chapter #0:12: start 2582.395000, end 3143.276000
    Metadata:
      title           : Video
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720, 3088 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 193 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Stream #0:2(eng): Data: bin_data (text / 0x74786574)
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:3: Video: png, rgb24(pc), 640x360 [SAR 2834:2834 DAR 16:9], 90k tbr, 90k tbn, 90k tbc

This can be done using the concat demuxer. If the Video chapters begin with a keyframe, then encoding can be skipped.
#1 Copy/Paste the following into a text file, or pipe it to the command in the next step
    Chapter #0:0: start 0.000000, end 19.142000
    Metadata:
      title           : Video
    Chapter #0:1: start 19.142000, end 34.017000
    Metadata:
      title           : Advertisement
    Chapter #0:2: start 34.017000, end 810.551000
    Metadata:
      title           : Video
    Chapter #0:3: start 810.551000, end 915.283000
    Metadata:
      title           : Advertisement
    Chapter #0:4: start 915.283000, end 1206.940000
    Metadata:
      title           : Video
    Chapter #0:5: start 1206.940000, end 1291.963000
    Metadata:
      title           : Advertisement
    Chapter #0:6: start 1291.963000, end 1614.738000
    Metadata:
      title           : Video
    Chapter #0:7: start 1614.738000, end 1694.709000
    Metadata:
      title           : Advertisement
    Chapter #0:8: start 1694.709000, end 2068.249000
    Metadata:
      title           : Video
    Chapter #0:9: start 2068.249000, end 2173.261000
    Metadata:
      title           : Advertisement
    Chapter #0:10: start 2173.261000, end 2472.440000
    Metadata:
      title           : Video
    Chapter #0:11: start 2472.440000, end 2582.395000
    Metadata:
      title           : Advertisement
    Chapter #0:12: start 2582.395000, end 3143.276000
    Metadata:
      title           : Video

#2 Prepare the text file for concat
It should end up like this
file 'myfile.mp4'
inpoint 0.000000
outpoint 19.142000
file 'myfile.mp4'
inpoint 34.017000
outpoint 810.551000
file 'myfile.mp4'
inpoint 915.283000
outpoint 1206.940000
file 'myfile.mp4'
inpoint 1291.963000
outpoint 1614.738000
file 'myfile.mp4'
inpoint 1694.709000
outpoint 2068.249000
file 'myfile.mp4'
inpoint 2173.261000
outpoint 2472.440000
file 'myfile.mp4'
inpoint 2582.395000
outpoint 3143.276000

Each set of three lines corresponds to an included video chapter. The file entry is on the first line, chapter start and end times on the 2nd and 3rd lines.
I used the following command to generate it
grep -B2 'Video' chp.txt | awk '(NR-1) % 4 == 0' | sed -E 's/\ *Chapter #[0-9]:[0-9]+:/file \'myfile.mp4\'\n/g;s/\ *start/inpoint/g;s/,\ end/\noutpoint/g' > list.txt

If you don't have these utilities (if you're on Windows), get them from https://github.com/bmatzelle/gow/releases
#3 Concat the files
ffmpeg -f concat -i list.txt -c copy stripped.mp4

If the Video chapters don't start with a keyframe, you'll have to re-encode.


text:
How do they create that kind of "twisting zoom"?
I'm new to video production and editing. I'm wondering how I should use my camera (maybe with some other tools) to create a kind of twisting zoom, where the camera moves towards the front of the subject at the same time to the subject moves, without shaking the camera. I'd like to do something similar to what is in the video below:

This is not an editing technique and it is not a zoom. There is no change in focal length. The subject is on a product or photography turntable. You can even make your own. The camera is kept fixed on a tripod with no zooming. Just position the camera and the subject to capture the motion you want and rotate the turntable.


text:
Different in and out animations for text in After Effects
I can not figure out how to make text animate in using one style (for example, slide in based on characters) and later animate the same text out using a different style (like, slide out based on words). Animation based on characters/words can not be automated.
The only way I can think of how to do this is by creating 2 layers. But in case I need to change the text, I would need to change it twice. Are there any other ways to do this?

You can add more than one selector to a text animator. Selector 1 can control the slide in, twirl down the Animator>Range selector>Advanced properties and look for the control called Based On, and set that to character.
To have a slide-on you would add an offset to the position, and then change the selector so that it progressively de-selects the text. The best way is to set the start and end to 0% and 100% respectively, and the add keyframes to the offset property, starting at 0 and ramping down to -100%.
Now hit the Add button next to the Animator and choose Selector>Range to add another selector to it. Make sure that it is selecting none of the text to start with. Change the Based On property of this selector to words. You can change the way the two selectors interact with the Mode control, this changes whether the selection properties add together, intersect, subtract and so on. Using the **Add* mode should work for you. With this selector you would keyframe it so that it progressively selects the words in the text when you want it to slide out. Use the same technique as the first selector, but with the keyframes reversed.
This will make the slide go back to where it came from, you might want it to continue in the same direction. To do this you would add another animator with a different offset, rather than just a selector. You can add as many independant animators to a text layer as you like.


text:
Premiere pro cc 2014 Rendered out video not matching sequence, as well as sequence constantly changing
I have an issue to where the sequence preview resolution sometimes changes when certain objects are in play. My settings are all correct and match, but for some odd reason, it still comes out wrong. Here are some examples of that:

Does anyone have an answer to my issue?

Is page2 heart bigger than 1920x1080? are those black bars something you want or not: if not, shouldn't you be using a pixel aspect ratio of 1, the dv preset is meant for SD footage asfaik? side note: why are you using interlaced if you are outputting progressive?

I noticed a couple of issues on your sequence settings. Your pixel aspect ratio should be square pixels. You also shouldn't have interlaced fields. They should be progressive to match your output settings. If you are using a higher resolution image, you need to scale it down under motion in effects settings. I'm pretty sure that's what's happening.

The square aspect ratio was the source of my issue! apparently premiere doesnt like certain effects on things if your aspect isnt square, so thank you!

I'd say you may need to do nested compositions; and pre-renders with that many layers.
The honest truth is there are bugs in premiere... in terms of if you have a lot of layers; with specific opacity settings, or filters applied to them; in particular 3rd party filters; they simply don't always play well together.
Thats why AfterEffects tends to be a more useful platform for projects using lots of layers.
They are idiosynchosies... they don't make sense... in terms of what causes them. They might preview correct within premiere, but output with issues.
The fix is typically to either move to AE, or pre-comp grouped layers to reduce the total layers/effects. Render pre-comps of layers with effects applied, then use the new file as the source with no filter.
Lastly, as stated above, make sure you are interpolating your footage to the same standard, progressive or interlaced.


text:
Premiere: None of the sequence presets match my clip settings. What to do?
I'm a beginner with Premiere CC and following a tutorial that strongly recommends creating sequence settings to match one's clip settings. This seems reasonable enough, but I can't find any suitable presets to match my clip settings. I was not the one who shot the footage, so I don't know what type of camera was used.
ARRI is the default, it seems - should I use that? Oh wait, the footage I have is in 1280x720 resolution, but the only presets available for ARRI are in 1920x1080. Do I need to start looking for ways to upscale the video to match the sequence preset? Should I create a new preset that matches my clip settings (if that is possible)?
I should note that my final video must be 1920x1080. I can decide the frame rate, but I prefer 30fps over 29.97 because it will be easier to create animated content for if that needs to be added.
I don't yet understand enough about Premiere to know whether having a sequence with different dimensions or FPS than the project is a problem, or whether Premiere just handles the conversions automatically - just to give you an idea of where my knowledge level is at.
Clip properties:

Dimensions 1280 x 720
Frame rate 29.97
Source audio 48000 Hz
Project audio 48000 Hz - 32bit
Pixel aspect ratio 1.0

Thanks in advance for any help getting unstuck here.

Is your source clip progressive or interlaced? Did you shoot with an Arri camera or something else?

@MichaelLiebman As mentioned, I don't know what kind of camera was used, as I didn't shoot it myself. I also don't know if it's progressive or interlaced, although I haven't noticed any interlace lines. All I know for sure is what's in the metadata (listed above), and herein lies the challenge.

Sorry about asking about the source, I was skimming. The metadata should show if it is interlaced or progressive. You might not notice any interlacing artifacts even if it is. I'm not sure what you are using to view the metadata, but if you can't find interlaced vs. progressive, try MediaInfo.

@MichaelLiebman Thank you for that! MediaInfo will surely prove useful.

Those are just presets. Just select one. When you drag a clip into the timeline, Adobe will recognize the clip has different settings that don't match. Just select the option to automatically change the settings for you.
Edit: And you can't magically change smaller resolutions to higher resolutions without suffering some pixelation. Is there a reason you have to upscale to 1080? Devices nowadays automatically adjust to different resolutions. No need to mess with upscaling. Just follow my steps above.

Thanks. The reason for upscaling would be to match the other clips that will be added that will be rendered in 1920x1080, so the lossiness can't be helped in this case. It's just for an animatic, nothing final, so it's okay. If anyone else has the same questions as me, I found a good tutorial on choosing sequence settings as well as a good tutorial on Adobe Media Encoder, which is apparently the ideal way to convert between formats.

Will the different clips be in the same timeline or is this for archival?

They will be in the same timeline.

Then make sure to match the settings to the bigger resolution and scale up your smaller clips under effects->motion


text:
Is H264 an actual file format?
Is there an actual H.264 file or is it just the codec that renders the video into an .mp4 or .mov file?
For an application, I have to hand in a portfolio with videos. Their website says that, "Videos have to be H264 format and pictures JPEG." Now, JPEG is a file format as well as a compression codec. But I've never heard of H.264 as a file format before. Is it possible to render video into an "H.264 file" or should I encode my videos as H.264 into an MP4 container?

I'd bet cash money they don't know what they're talking about when they say h264 format. There is a raw h.264 bitstream format, with the file suffix .264, but it's pretty obscure (I can't duckduckgo any actual documentation on what it's for, possibly when dealing with live streams from cameras).
Give them an mp4 encoded with h.264 codec - it's a format you can be pretty certain anyone with software that's not completely obsolete can play. Conversely a .264 stream is fairly well guaranteed to be unplayable in all but rather specialist settings.
But if you have any doubts you could ask them if h.264 encoded mp4 is what they mean.

Theoretically, you could use the .264 file with a reference container. Like a Quicktime or MXF wrapper that doesn't contain any tracks within that file and just points to other files on the file system. Reference files have become far less common with the reductions in maximum file sizes.

That's interesting. Do you know of any links? I liked reference files, they were really useful for post production workflows, but I guess dynamic linking in the Adobe universe does the same job.

(BTW, I meant increases in maximum file sizes, above.) I don't have anything specifically for H.264. All the work I did with MXF and QT reference files was with MPEG-2. A lot of the work with MXF EDL style files (OP-2 and OP-3) never really materialized into practical use, so there hasn't been much call for newer codecs in reference files. Maybe on the AAF or IMF side, but I don't deal with editing and mastering much.

@Jakob Ringler - I like stib's answer, so I'll not add another for credit. Why the place doesn't ask for .mp4 and .png is another question. There is a ".264" (no h) file extension Format (Elementary Stream), to render modify this command line to suit you: ffmpeg -i file.extension -vcodec libx264 -f h264 test.264  [like stib said, it's unlikely they want what they are asking for].


text:
Best transition to fast forward video
I have about 17 minutes of footage which I would like to preserve "as is" as it has lots of authenticity to it.
The problem is that some scenes are just boring to watch, but I don't want to cut them. Ideally, I would like to fast forward them. But when I increase the  speed of the video, it just does not look very nice or natural. The video is from my motorbike, so some passages are interesting and some are not. But I would like to have whole route on the resulting video.
My question is, do you know of any transition which I can apply for such a situation?
I'm using Adobe Premiere and the footage is in Full HD 60fps. I can reduce the frame rate or resolution, if transition effect requires.
Thank you

There is no magic transition that will help you. Simple cuts usually work best. A fade through black may help convey a sense of time passing. The most important thing is to think about the story you want to tell. Select the material that is important to telling that story, edit it together with cuts, and then add complex transitions only if you need to work around something awkward like a jump cut. People won't want to watch the uninteresting parts if you keep everything.

Thank you for you answer. I also felt it that way, just I'm newbie in video production so I rather ask. Will cut it and use black screen for transitions

@MichaelLiebman, why not put that in an answer instead of a comment?

@RyanWeaver, I thought it was kind of a non-answer, but since you and the OP disagree with that, I'm happy to.

There is no magic transition that will help you. Simple cuts usually work best. A fade through black may help convey a sense of time passing. The most important thing is to think about the story you want to tell. Select the material that is important to telling that story, edit it together with cuts, and then add complex transitions only if you need to work around something awkward like a jump cut. People won't want to watch the uninteresting parts if you keep everything.


text:
shooting NTSC in Europe
On the Sony a7s II in PAL mode I get 100 fps video, but in NTSC I get 120fps.
I am in Europe. If I switch to NTSC and shoot inside, what effect would that have? As far as I can tell, it only plays a role when shooting inside, with artificial lighting, correct ?

The two principal reasons for shooting a region-specific frame rate are (1) reasonable synchronization with environmental electrical and lighting systems (thereby minimizing flicker) and (2) reasonable compatibility with playback devices and their assumed frame rates.
That said, there are reasons people want to shoot "off speed".  It is quite popular these days to shoot at altered frame rates and/or shutter angles for aesthetic purposes.  Such creativity requires a little knowledge about how those changes are going to be affected by environmental electrical and lighting systems, and how those choices are going to play when finishing the footage to be played at the given frame rate of a particular market.
Shooting at 120 fps in an environment lit with lights fed by 50Hz mains is very likely to result in unpleasant light power phase problems.  Shooting at 120 fps in sunlight and slowing the frame rate down to 25Hz will provide 20% more slow-down than shooting at 100fps, which might be desirable for your subject (and not a problem for other reasons stated above).  If you are shooting exterior night scenes lit by sodium, mercury, xenon, and/or neon lights, you are back in trouble again.


text:
Convert video from 24 to 25 fps while keeping video and audio length and also correct audio pitch
With ffmpeg is possible to convert an input 24 fps video/audio to a 25 fps one while keeping the same exact duration, and also keeping as much as possible the original audio pitch ?
I was thinking about the -r option and also a sound filter but I don't know what to add to my command line:
ffmpeg -i input.mov -r 25 -c:v libx264 -crf 18 -c:a libfdk_aac -global_quality 3 output.mov

Audio and video are processed independently. Changing video framerate won't affect the audio.

@Mulvya Oh so my problem is to make audio match the video perfectly and also correct the pitch, can you add a solution for that?

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

Thanks but I need a solution that allows me to have audio matching perfectly the video rather thank be kept untouched, and I also need an audio filter applied to lower the pitch accordingly.

The audio will perfectly match the video, since both streams are synchronized based on their frame/sample timestamps. And the pitch will not be changed in any way if you're just re-encoding. Again, you're asking for keeping the same duration and pitch, and that's exactly what your command does. (If you think it does not, please show an example of that.)

Ah i see, ffmpeg provides duplicating the frames, nice :)

Hello, isn't the -vbr tag for Variable Bit Rate mode? What's the purpose of using this tag, if we want to end up with a fixed fps with the -r tag?

@ocramot Video frames per second do not have anything to do with a variable bit rate in an audio stream. -vbr applies to the AAC encoder only.


text:
ffmpeg - video conversion with multiple audio tracks
I am converting an mkv h.264 video to HEVC. The file has two audio tracks. How can I copy all audio tracks?
I used this command (from a .bat file):
ffmpeg -i "!original!" -c:v libx265 -preset medium -crf 28 -c:a copy "g:\Prepare\Convert\!file!"

This exports only one audio track, but I always I need to copy all audio tracks.

Use
ffmpeg -i "!original!" \
    -map 0:v \
    -map 0:a \
    -c:v libx265 \
    -preset medium \
    -crf 28 \
    -c:a copy \
    "g:\Prepare\Convert\!file!"

FFmpeg by default only picks one video, audio and subtitle track (if they are present) from among the sources. Express map assignments are required in order to include other streams. 0:a selects all audio streams.

I have found that using -map 0 will select all tracks, including subtitles if available.
ffmpeg -i "!original!" -map 0 -c:v libx265 -preset medium -crf 28 -c:a copy "g:\Prepare\Convert\!file!"

Saved my day !!


text:
Remove datestamp (watermark) from videos
I accidentally enabled a datestamp "feature" on my camera and now all my videos have the date embedded.
What's the best way to remove those datestamps?
I'm editing a compilation of the videos with kdenlive, so I would only need to remove the datestamp from the parts of the videos I'm using or the final compilation, whatever gives best results.

Use ffmpeg (download a static build for your operating system) and its delogo filter, which will try to cover up a logo or watermark by interpolating neighboring pixels.
ffmpeg -i input.mp4 -vf "delogo=x=100:y=100:w=150:h=20" output.mp4

Here, x and y specify the top left coordinates of the “masking” rectangle, and w/h specify its size. You can add the show=1 option to help locate that rectangle.
If you want to play with the filter values, you can use ffplay to directly show the result:
ffplay -f lavfi -i "movie=input.mp4,delogo=x=100:y=100:w=150:h=20:show=1"


text:
Why headphones doesn't work with mic out port?
It seems I'm the only person who doesn't understand why Mic out port on Sony ecm-xyst1m external microphone doesn't work with headphones, while having the same jack.
I bought that one and first thought it is broken, but at service they told it is not supposed to be used with headphones. I tried to google the topic but it seems nobody even care about that.
At the same time very similar microphone from Sony, just wireless - Sony ECMW1M does have headphones output.
Taking into account that A6000, A6300 and even A6500 cameras doesn't have headphones output as well, that sounds like a really stupid design from Sony.
What's the point of having all those switches on sound recording if you can't hear what is being recorded?

Microphones output at mic level, which is a signal that ranges from around 0.001 volts to 0.01 volts. Headphones work at closer line level, which is around 1 volt. Based off that information, you can see there isn't enough power in the output of a microphone to hear it by directly plugging headphones into the microphone. Just because they have the same connector, doesn't mean that the signals are compatible. This isn't Sony design flaw, it is how all microphones work.
Instead of plugging the headphones directly into the microphone, you need to use a headphone amplifier. Connect that directly to the mic and then plug your headphones in to the amp. There are headphone amps available in a number of price ranges, depending on the features and quality you need.

Thank you for explanation and workaround! But I'm still not considering it right from Sony to not provide a normal way of hearing the recording.

I'm not sure how you think you are going to record anything if you are using the mic out for monitoring. The proper way to monitor would be through your recording or mixing device as a first choice. The second choice would be with an inline headphone amp, as mentioned above. That way you can record and listen at the same time.

Michael, Sony doesn't provide any way to monitor recording in their mirrorless cameras (it is supposed to be included in microphone and one option has headphone jack in fact, but this model doesn't for some reason). Also, do you think "FiiO A1 Silver Portable Headphone Amp A1" will work for this task? I'm not sure it is intended to recognize such low signal voltage and it seems nobody on Amazon knows...

Whatever amplifier you buy has to have a mic input—one that can take the very low power signal from the mic and amplify it for headphones. It also needs two outputs, one for your headphones and one for the recording device. Since it will most likely output at line level (0-1v) you'll need to make sure your camera can take a line level input.

Because it's a line out jack and is meant to go to the Mic In of a recorder. That device is used as an external microphone.

Excerpt from manual, from your link
What's the point of using the external mic as a hearing aid?


text:
How to calculate the overhead of wrapping multiple elementary streams?
I run a web service which muxes multiple elementary streams (e.g., H.264 + FLAC) into a single matroska container/wrapper/file. There is no transcoding as I only copy the streams, using a process like ffmpeg  -i i.mkv -i i.flac   -map 0:0 -c:0 copy -map 1:0 -c:1 copy out.mkv.
The problem is that the service must provide the total file size (in bytes) of the file (out.mkv) resulting from the mux up front (i.e., before the actual muxing completes).  Is it possible to calculate it?

No, since different containers have a different overhead over actual data. But you can predict size, if you calculate average difference of source and destination files on actual files.
Other way - calculate size, using actual data, but it may be very slow, as you must walk throw all your data and calculate every chunk size. For this, you can use tool ffprobe to get size of every frame or chunk.

The only exact approach is to simulate the muxing. On a *nix system this would be
ffmpeg -i i.mkv -i i.flac -c copy -map 0:0 -map 1:0 -f matroska /dev/null

At the bottom of console readout, there's this line:
frame=152217 fps=71723 q=-1.0 Lsize=  551301kB time=01:41:28.66 ...

The Lsize is what you want. This operation is pretty quick as there's nothing written to disk.


text:
Cropping a video by timestamps
I am new to video editing.
I have a video of 30 minutes. I want to delete some part of it and keep some part. for example

00:00:00  till 00:05:00 (keep)
00:05:01  till 00:10:00 (delete)
00:10:01  till 00:30:00 (keep)

I have many timestamps like above. What is the best quick way to do this?

Does this answer your question? Good open source Video Editors?

I have done this sort of thing using ffmpeg and powershell core (both free software).
You can use any other scripting language to loop over ffmpeg once for each section of video that you want to keep. The ffmpeg command that you want looks like this:
ffmpeg -ss [start_time] -i [input_file] -to [end_time] [output_file]

So, and example would be:
ffmpeg -ss 00:10:01 -i source_vid.mp4 -to 00:30:00 output_vid_2.mp4

And if you have a whole lot of such pieces to cut in a batch, you can then use powershell or some other scripting language to loop through a list of pieces to cut:
$segment_list = @(
@{ id = "1"
   start_time = "00:00:00"
   end_time = "00:05:00"
},
@{ id = "2"
   start_time = "00:10:01"
   end_time = "00:30:00"
}
)

foreach($segment in $segment_list) {
   ffmpeg -ss $segment.start_time -i source_vid.mp4 -to $segment.end_time ("output_" + $segment.id + ".mp4")
}


text:
Resolve Bad public atom found when using ffmpeg copy
I have a .mov file with a number of streams both audio and video I'd like to demux (if thats the correct term) into separate files (1 per stream to start with) without loosing quality or resolution
When I use the command
ffmpeg -i c:\ffmpeg\VideoFile.mov -c copy -map 0:v:1 -map 0:d Vid1.mov

I get a video file Vid1.mov but it throws an error when I try to playback in QuickTime, the original played back fine without errors. During the copy execution the following error is listed
fps 600 is too large1 q=-1.0 size= 1455730kB time=01:06:34.72 bitrate=2985.3kbits/s speed= 470x

Below is the ffprobe output for the file I'm trying to demux (break into component parts)
>ffprobe c:\ffmpeg\VideoFile.mov
ffprobe version N-78964-g5061579 Copyright (c) 2007-2016 the FFmpeg developers
  built with gcc 5.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 28.100 / 57. 28.100
  libavformat    57. 28.100 / 57. 28.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 39.102 /  6. 39.102
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] multiple edit list entries, a/v desync might occur, patch welcome
    Last message repeated 8 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] Using non-standard frame rate 250/1
[aac @ 0000026982a22020] element type mismatch 1 != 0
[h264 @ 0000026982a22dc0] Increasing reorder buffer to 1
[h264 @ 00000269850ea500] Increasing reorder buffer to 1
[h264 @ 0000026982a2f920] Increasing reorder buffer to 1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\ffmpeg\VideoFile.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2015-11-14 19:26:59
  Duration: 01:08:02.11, start: 0.240040, bitrate: 14867 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/bt709), 702x576, 3226 kb/s, SAR 59:54 DAR 767:576, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
      encoder         : H.264
      timecode        : 01:10:08:99
    Stream #0:1(eng): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 74 kb/s (default)
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2992 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      rotate          : 0
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
      encoder         : H.264/AVC
    Side data:
      displaymatrix: rotation of -0.00 degrees
    Stream #0:3(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
    Stream #0:4(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 3005 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      rotate          : 0
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
      encoder         : H.264/AVC
    Side data:
      displaymatrix: rotation of -0.00 degrees
    Stream #0:5(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
    Stream #0:6(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5020 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
    Metadata:
      rotate          : 0
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
      encoder         : H.264/AVC
    Side data:
      displaymatrix: rotation of -0.00 degrees
    Stream #0:7(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
    Stream #0:8(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2015-11-14 19:26:59
      handler_name    : Apple Alias Data Handler
      reel_name       : CUSTOM TimeCode track [P 1]
      timecode        : 01:10:08:99
Unsupported codec with id 0 for input stream 8
Update: May 4th 2016
VLC does play the multiple streams without (obvious) issue. I noticed it was mentioned in the comments. I did split the file into its component streams. Mediainfo reports them as being different sizes (height,width in pixels) but all are 25.000fps.
If I playback frame by frame using OpenCV and python the individual streams playback ok (but look a bit jumpy like the frame rate of 25 frames per second isn't correct)
If I playback (using OpenCV and python) the original file I get 1 stream and the message [mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] Timecode frame rate 250/1 not supported is listed in iPython console to go with the Jupyter notebook I'm using to run the python code

This is kinda tricky. Apparently, the video track you're trying to copy consists of multiple video streams of possibly differing properties stitched together. ffmpeg's MOV muxer (the part that copies over the stream into a new container) does not reliably process such streams.
What you can try is expressly specify the output framerate.
ffmpeg -i c:\ffmpeg\VideoFile.mov -r 25 -c copy -map 0:v:1 -map 0:d Vid1.mov

Would the full version of QuickTime allow me to demux the file?

Don't know. Only use regular QT for occasional use.

Tried using the -r 25 but still got the error

Add -t 01:06:34.68 and check. And another command with -ss 01:06:34.72 before -i and check.

Whats the significance of the values you selected for -t and -ss?

The error message you get for large fps happens at 01:06:34.72. So I'm checking if there's a stitch there. The ss for the 2nd commands trims in from there for the 2nd extraction. The error message produced there should be useful.

Your demuxed stream may be fine. QuickTime may be confused by the mov extension. Try outputting an .h264 file instead. Verify playback with ffplay. If it plays, you can mux it back into a mov file for QuickTime.

ffplay is more forgiving of non-uniform streams. Snapchat, for instance, has this facility where they allow you to stitch together multiple videos into one without re-encoding. VLC plays those just fine, but other players like WMP don't decode it correctly.

Very true. I am making assumptions as to the intended use of the streams. It also seemed significant that the QT error occurred before playback started.