text:
Audio and video track doesn't match in Premier pro
I use Movavi for screen recording and after recording it's about 7 min video of the tutorial. I played in VLC media player it's fine perfectly matched audio and video. (Audio and the video track is same and has not been manipulated — captured from Movavi Software).
And for editing, I create a new project in Adobe Premiere Pro, and when I import my clip to timeline I can see that the starting point and ending point of that video and audio clip are the same. But when I play that clip Video is delayed why is that? And when I play at last around 5-sec track it's fine.
Can you guys assist me what's the problem? I tried many creating many new projects to start from default but no progress. I guess I must have messed something up, Couldn't figure out what is that.

This might be a performance issue.
You could change playback resolution, quality, use proxy videos, render preview videos and some more. Tutorials for these steps should be easy to find.

There are lots of reasons for this problem.
I have found this useful thread from Adobe.
Audio and Video not matching

Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.


text:
how to automate interviews
I have many short interviews (50). All are shot same condition and the same settings of cam.
My question is does DaVinci Resolve have some sort of templating, scripting to automatically apply my lut, prepend intro clip, then append ending clip, and export?

Resolve supports scripting with Python, though you’ll need to write your own script. Fusion, included with Resolve, supports scripting with both Python and Lua. There aren’t really templates, per se, but you could probably hack something together by saving a fusion composition as your template and driving the file selection with scripts. I don’t think the render queue is very well supported by the scripting API though, there’s a steep learning curve, and not a lot of documentation.  If you’re just bookending a list of trimmed interviews with static, boilerplate intro/outro, FFMPEG would be more direct.  But yes, it would be possible.
edit Feb 2010
Resolve 17 Beta has added some features which make this process easier, including the ability to execute scripts on render completion, and Fusion Effects templates for the Edit page.

source: Stack Exchange

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

sort: votes


text:
Issue with sony vegas rendering small parts of video
I am trying to render a video in Sony Vegas Pro 13.0 and I have something strange going on. Please see the attached screenshot:

That section of the video is rendered as full black screen. It should contain 0.5 seconds video cuts, followed by black screens in order to obtain a clipping effect but Sony Vegas will render it as black screen without taking into consideration the small cuts.
Do you have any idea why this is happening?

If I interpret your timeline correctly, your video pieces are way shorter than 0.5sec. I would guess, they approx 1/60 sec long. So depending on the rendered framerate and exact the position of the pieces, the image may stay dark. I would suggest you extend your video pieces to the desired length of 0.5sec, that should solve the issue.

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


text:
What is the best way to export a Motion movie to Youtube?
I just finished a video that uses an audio interview to create a EQ bars animations.
I want to export this video (including the audio) for uploading to YouTube.
The problem is that my 30-min video exports to 3.5 GB size.
Isn't this file size too big for a simple animation and audio?
Can I export it at a smaller file size so the upload to YouTube won't take the whole day?

my 30-min video exports to

This sounds to me that you are not paying any attention to what settings you are using.
What program, what container, what codec, what settings?
On whatever program you are using If possible export to MP4, h.264, AAC.
As you already have rendered the file (assuming it took a long time to render, let's say if it was exported with special effects) another option is to recompress it.
If you are on Windows, you can try VirtualDub2 with the same settings.
You can also use FFmpeg. There are several users that know how to use it well. I'm not one of them :o)
The problem with this second option is that this will be recompressed more times. The initial, this recompression, and probably a third one by YouTube.


text:
Can this be created in a free animation software like Synfig or OpenToonz?
This animation is made in After Effects but can this be made in a free software??

Welcome! In general, the ability to create a given animation (or any creative/artistic work), is more about the skill of the artist and not about the tool. For example, people have created impressive art with just MS Paint.

Open toonz is used by a world leading animation studio, the marvelous Studio Ghibli. Sp of course you could use it for this. Or more to the point, of course someone with the right skills could use it to create such an animation.

I think you can use Krita 4.0+ for this animation.

Actually After Effects isn't even well suited for character animation (regarding commercial proprietary tools, Moho, ToonBoom Harmony would be much more appropriate for the task), but Synfig might probably be your best choice.
While it's true that Open Toonz is used by Ghibli they are also a traditional animation house, and Open Toonz is a 100% adaptation of old-school analogue techniques and frame-by-frame animation. This is very time consuming and you'll need a lot of man-power to get even short scenes animated this way.
Synfig uses a more modern approach by implementing IK chains and bones to do "puppet" animation, which is closer to what is shown in your linked video and will get you the desired outcome much quicker than having to draw every single frame by hand as you'd have to do with Open Toonz.

Blender https://www.blender.org/ is your best friend.
It is not only for 3D characters, it is also not only for 2D hand-drawn animations. The specific animation like the example or like a lot of animated gifs on Dribble can be animated on blender. You can add a bone structure, or having elastic limbs using curves.
I have made some 2D animations but I first prepare the base assets on a vector-based program. I use Corel Draw but you can use Inkscape.

Prepare the elements of the animation on the drawing program.
Export the assets.
Animate them in Blender.


text:
Avidemux shows better preview than VLC player
I shot a video in Nikon D3400 and tried to play in VLC and native player of Ubuntu. But Avidemux preview is much greater than any of these two. Any way to get the quality of that preview for my video.
Do I need to do any editing to video to get that quality? I will put two images of the two video for comparison. Avidemux-image, VLC-preview.


text:
FFmpeg read, ignoring remaining -vf options: Use ',' to separate filters
Getting error

"read, ignoring remaining -vf options: Use ',' to separate filters"

My code:
ffmpeg -i "/root/nisar/a.mp4" \
-map 0:0 -map 0:0 -map 0:0 -map 0:0 -map 0:0 -map 0:1 \
-c:v:0 libx264 -b:v:0 3000k -filter:v:0 "scale=1920:1080" -preset fast -profile:v high -level 4.0 -tune film \
-c:v:0 libx264 -b:v:1 2000k -filter:v:1 "scale=1280:720" -preset fast -profile:v main, -level 3.1 -tune film \
-c:v:1 libx264 -b:v:2 1200k -filter:v:2 "scale=960:540" -preset fast -profile:v baseline -level 3.1 -tune film \
-c:v:2 libx264 -b:v:3 800k -filter:v:3 "scale=640:360" -preset fast -profile:v baseline -level 3.1 -tune film \
-c:v:3 libx264 -b:v:4 500k -filter:v:4 "scale=480:270" -preset fast -profile:v baseline -level 3.0 -tune film \
-c:a:0 aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" \
-async 1 -vsync 1 \
"/root/nisar/output.mp4"

Error:
Only '-vf scale=1920:1080' read, ignoring remaining -vf options: Use ',' to separate filters
Only '-vf scale=1280:720' read, ignoring remaining -vf options: Use ',' to separate filters
Only '-vf scale=960:540' read, ignoring remaining -vf options: Use ',' to separate filters
Only '-vf scale=640:360' read, ignoring remaining -vf options: Use ',' to separate filters
Only '-vf scale=480:270' read, ignoring remaining -vf options: Use ',' to separate filters
Only '-af aresample=async=1:min_hard_comp=0.100000:first_pts=0' read, ignoring remaining -af options: Use ',' to separate filters

Please find the attached screenshot
 and advise me.

It's a false positive in this case. You can ignore it. The check is supposed to catch duplicate filter invocations for the same output stream, e.g. -filter:v:0 scale=hd1080 -filter:v:0 hue=s=0 where only the hue would get applied. The correct way is -filter:v:0 "scale=hd1080,hue=s=0". But the check is buggy.
Fixed in version 4.3.


text:
Is there a tool that lets me cut video with frame precision?
I'm able to use Avidemux with enough ease and it's mostly enough for my video need. I can also choose codecs to recompress the video.
Unfortunately, it doesn't let me cut video outside the scope of keyframes, even when I recompress. I'm not really willing to pay for an expensive software, and I'm not sure I need DaVinci Resolve to do just this.
I know VirtualDub is not developed anymore. Are there other tools that would do frame by frame selection?
I guess I'm able to use FFmpeg too, I guess I could do with a script, but it's not really easy either.

You may use free open source AviSynth+ — it's a scripting language with the very good documentation.
Example:
clip   = AviSource("MyVideo.avi")    # Reading clip from disk
clip   = clip.ShowFrameNumber        # Showing frame numbers of individual frames

part1  = clip.Trim(   0,  1000)      # Selecting frames with numbers 0 to 1000
part2  = clip.Trim(8000, 12000)      # --- similar ---

result = part1 + part2               # Joining two parts
return result                        # This will be the resulting clip

Note:
The second command
clip   = clip.ShowFrameNumber

is used only in working process to see frame numbers, in the final result you have to remove it.


text:
After Effects - Trying to Export Video with RGB Alpha (I get a black background in the export)
In After Effects I'm trying to Export Video with RGB Alpha (I get a black background in the export) please see notes below:
Here's my setup (on canvas transparency is toggled on)

have you viewed the video that you rendered in an application that is aware of alpha channels (e.g. after effects?). Most video players don't show alpha as transparent (ask yourself how they would do this—show the desktop through the player? Checkerboxes like potatoshop?), but as black. Import the file into after effects and see whether it contains transparency.

^ This. Can you try to re-import the finished video into Premiere or After Effects, drop a color matte behind it to verify that the background output was indeed black?

Looks like it should work to me. You could try using ProRes 4444 instead, with millions of colours+ and Alpha turned on.


text:
combine stream and multiple videos to live output, with transitions
I am using FFmpeg to combine a radio stream with a video but my target is to read from a playlist file (own format) and combine multiple videos with the audio in the background. The most important thing is that I want to grab the output and pipe it to VLC or FFplay (I would prefer VLC because somehow sometimes FFplay displays vertical scanlines with some videos where VLC doesn't).
The playlist reading part and so on is already done, so I just need the FFmpeg part combining everything in a FFmpeg command.
Also, a goal is to get it to work locally on a Raspberry Pi so no transcoding should happen because rpi is busy decoding video.
I have the following playlist:

video test1.mkv with audio stream (mpeg2)
video test2.mpeg with audio stream (same as above)
video with audio from video
video with audio from mp3
... and so on
if needed loop to playlist item 1

So you can see those videos can have a different formats and sizes and the audio can be from the video or from a stream/mp3.
First of all I am wondering if I should actually start to use the library and not do it with the command line, is this even possible with the command line?
the main problems are:

Video transitions do not work because stream is playing (doesnt stop)
I cannot get the video to pipe to VLC
I cannot get the transitions to work properly
Should not transcode to work on a RPI
Loop 1 item for x or the whole playlist for x or infinite doesn't work

simple map of video and audio stream:
    ffmpeg -i "SampleVideo_1280x720_1mb.mp4" -i "https://www.mpeg2stream.com/" -map 0:v:0 -map 1:a:0 -f mpegts udp://127.0.0.1:23000
in this i combine the video with a video, this works nice and i grab the output from the stream (meh, i dont want to transcode)
piping:
i tried different pipe methods to get this to work but i cannot get it to work well, especially on the windows testbox.
ffmpeg -i "test.mkv" -f mpegts -codec copy - | vlc -

here i still transcode to transportstreams, but also vlc doesnt display it and somehow only a bar is running back and forth.
I gave up on piping and now only put it on an mpegts stream:
-c:v libx264 -preset superfast -tune zerolatency -c:a aac -ar 44100 -f mpegts udp://127.0.0.1:23000

Transitioning:
making the transition i do with the following:
ffmpeg -i "SampleVideo_1280x720_1mb.mp4" -i "test1.mkv" -filter_complex "[0]fade=t=out:st=0:d=1:alpha=1,setpts=PTS-STARTPTS[va0]; [1]fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS[va1]; [va0][va1]overlay[outv]; [0][1]amix[outa]" -map [outv] -map "[outa]" -crf 10 out.mp4

here i write in an outfile, this should also be piped, i would understand that this does not work without transcoding. isnt there an easier method? also it does not work without scaling to something. so i probably could just use concat without transitioning. Also here i gave up and use just normal concatinating
Concat and scaling:
ffmpeg -i big_buck_bunny.mp4 -i SampleVideo_1280x720_1mb.mp4 -i "file_example_MP4_1920_18MG.mp4" -i "https://teststream.de/stream/"`
-filter_complex `
"[0:v]scale=1280x720:force_original_aspect_ratio=increase[v0]; `
[1:v]scale=1280x720:force_original_aspect_ratio=increase[v1]; `
[2:v]scale=1280x720:force_original_aspect_ratio=increase[v2]; `
[v0][0:a][v1][1:a][v2][3:a]concat=n=3:v=1:a=1[v][a]" `
-map [v] -map [a] `
-c:v libx264 -preset superfast -tune zerolatency -c:a aac -ar 44100 -f mpegts udp://127.0.0.1:23000

the problem with concatinating shows that the first audio plays correctly (from the video) but it does not concat to video 3 because the stream is obviously not finished, how can i concat the stream for video 3 dynamic length? Also i cannot get it to scale automatically to the best resolution without hardcoding it.
Loop:
the next thing is i cannot get loop to work. stream-loop doesnt work or is it possible to do this via complex filtering?
any ideas how to get all of this to work or is this not possible with ffmpeg and i should think of another solution?
Cheers and thanks a lot!
Edit 1:
Most of the questions now are obvious (some of them are just because i dont know much about video stuff)
So far i have come to create some of it, but i still have some problems, but 2 of them currently stop me the most:
https://github.com/martinlierschof/ffmpeg_test/
Problem 1: audio stream starts from beginning every time i amix it. It should always play from the "live" position.
Problem 2: the [videoout] and [audioout] should be able to be looped (after concating) for x amounts or -1 (infinite)

In your ffmpeg -i "SampleVideo_1280x720_1mb.mp4" -i "https://www.mpeg2stream.com/" -map 0:v:0 -map 1:a:0 -f mpegts udp://127.0.0.1:23000, when you don't want to transcode, why don't you add -c copy? Regards.

It sounds like you want to live transition from one video playback to another and mix these videos as you go (like a video DJ) and stream them to some kind of website like Twitch. Just use OBS for this and then load all the video files into two different players and then use OBS filters to transition as you go. You will need at least a quad-core (8 threads) machine to handle all the processor overhead, but if you have a decent video card it can assist with the x264 compression for the outbound stream. It would be the shortest distance to what it sounds like you want to do. Because of the command line system of FFMPEG it is hard to have a fluid and smooth interface in a live stream like what you are looking for.

Thanks for the Help, i wasnt aware of OBS. Seems like a good product but iam looking to do this with ffmpeg. The playlists can be created and from that i want to make a ffmpeg command. This does not need to be live editable. Also i want it to be able to  run on a rasberri pi where i can check the status of the output (ffplay etc..) The goal is to create an easy video player which mixes on the box because of bandwith reasons. i edited the original to include a github repo for the tests.

How have you solved your problem with ffmpeg? I am still interested in make a realtime mix of videos and stream.


text:
How to 2-pass h264 with CRF and maximum bitrate with ffmpeg?
Based on CRF Guide (Constant Rate Factor in x264, x265 and libvpx), quoting:

Streaming nowadays is done a little more cleverly. YouTube or Netflix
  are using 2-pass or even 3-pass algorithms, where in the latter, a CRF
  encode for a given source determines the best bitrate at which to
  2-pass encode your stream. They can make sure that enough bitrate is
  reserved for complex scenes while not exceeding your bandwidth.

also the article Saving on Encoding and Streaming: Deploy Capped CRF also claims that "Capped CRF" is the highest quality while also making sure bitrate does not go above X but they propose a single pass with:
ffmpeg -i input_file -crf 23 -maxrate 6750k -bufsize 6750k output_file

What's the correct way to generate the highest quality possible file inside a bitrate constraint using ffmpeg with x264?

I'd hazard a guess that unless you were dealing with the volume of content that YT and NF are, the small decreases in file size probably aren't going to give you a good return on the time spent doing the extra passes. But I don't know your use case.

@stib Time is not relevant, as long it stays under 24 hours for a 3 hour input. Saving on the bitrate while delivering very high video quality is the goal

What's the correct way to generate the highest quality possible file
  inside a bitrate constraint using ffmpeg with x264?

There is no "correct" way. This is still an evolving area of research, and about half the articles you have read on the subject are more marketing that they are science. The "correct" way may also be different for every video. Netflix for example just encodes the video a couple dozen ways, and keeps the one it thinks is best and throws the rest away.
The closest thing to a "best" single answer, would be 2 pass placebo capped CRF.

Ok but still, which one is better, single pass CRF capped or the other ?

“Best” is not caped CRF next I guess would be 2 pass caped CRF

Best quality inside a X bitrate

I'm not sure you gathered the spirit of that article as intended. The author's point was to describe "capping" or constraining the CRF setting by creating a bandwidth ceiling per frame. The purpose of which is to constrain/limit the overall file size to a pre-defined maximum. This forcibly limits the freedom of the CRF algorithm with respect to its upper limit of bits-per-frame.
Now, take that concept and think about applying ffmpeg's 2-pass model to it. Running 2-pass on capped CRF (aka Constrained CRF) is redundant and a waste of time. First, how would you constitute the 2nd pass? If you repeat the first pass logic, you'll likely attain a smaller target file, but you'll also likely dilute the overall image quality to some extent. The target file size will still have the same maximum possible size it had before. The 2nd pass will almost undoubtedly take longer to process than the first pass, because of how the 2-pass process works in ffmpeg, and the fact you'll be compressing already compressed images again.
Overall, it's just plain a bad idea. It's a time waster and you'd likely end up with worse quality versus the first pass result. Best case scenario, they will look the same. If file size is your top priority, you need to move away from H.264 and choose a more recent codec library optimized for compression (such as h.265/HEVC or VP9, possibly AV1). Constrained CRF is not a poor idea at all, but attempting to run 2-pass encoding with it is.


text:
Re-encoding Lossy formats with Lossless formats
I was re-encoding videos downloaded from YouTube with Lossless H.264 (using FFmpeg) because I'm experimenting with CRF=0.
I found that resulting videos are much bigger (1 gigabyte) than the original video (100 megabyte).
However, from my knowledge of lossy compression, it is basically like lossless compression (plus, it's the same codec) except it throws away lots of minor details that won't be noticed but take up lots of space. Hence, shouldn't I achieve a similar file size if I encode the decoded file using CRF=0 because lots of data are already thrown away? I don't quite understand this.
I use the following command:
ffmpeg -i 'file' -an -c:v libx264 -crf 0 'out file'

You have a fundamental misunderstanding of how lossy compression works.  It doesn't throw away information so much as ignore the portions of the image that don't conform to the patterns it is looking for.  It does care about small amounts of error, so it doesn't spend time to store them, however it still decodes to a complex video.  The lossless compression doesn't use the same algorithms as the lossy, the shortcuts taken by the lossy algorithm can't be reused by the lossless one.
The lossy algorithm is optimized towards using patterns that will have minimal error with minimal data usage.  Lossless algorithms are optimized towards minimizing the data required when not losing any data, so they work quite differently.

When data “thrown away” by the encoder, the decoder must still render a full image. The image is just not faithful to the original image, but it is a full image. When you reencode with CRF 0 you are telling the encoder, “I want the output to be identical to the input” and the encoder doesn’t know information was lost on a previous encode. so it must spend bits to encode the “new” image losslessly.

But since the new picture is less complex, shouldn't it take less space?

The new picture is not less complex

Think of it this way. If you compress with a very low bitrate in the first pass, you get a lot of artifacts and blocking that was not in the original images. Compressing that a second time would attempt to preserve that blockyness. Every time you compress, the generational loss is amplified and preserved, not reduced.

Maybe this helps you:
We'll work with images, not video. It's a bit easyer.
Imagine you have a 10x10 pixel image, every second pixel is whitenand every other is black.
Now you lossy compress it, instead of storing black-white-black-white...
It just stores "Display 100 Grey Pixels".
Now you open the image in your NLE and reencode it lossless, now it has a 10x10 pixel image that is grey, so it will store 100x "This Pixel is grey"
So instead of 1x "Display 100 Grey Pixels" in the beginning, you have 100x "Pixel is grey".
This is really really really simplified as even s lossless codec can store it just as 1x "Display 100 Grey Pixel"


text:
Setting up a shadow catcher layer in Cinema4D Lite
What's the best way to set up a shadow catcher using Cineware Cinema 4D lite and After Effects?
I'm following the tutorial Shadow Catcher plugin in Cinema 4D,
but it's not working in AE.
I've installed the plugin in
/Applications/Adobe After Effects CC 2019/Plug-ins/MAXON CINEWARE AE/(CINEWARE Support)/lite/plugins

(not sure whether this is doable).
Any tips?


text:
Why is ffprobe showing another bitrate than the one I encoded with?
First I tested Jahzzar_-02-_FM.mp3:
ffprobe Jahzzar_-_02_-_FM.mp3

and I found out that it was encoded with 224 kbps:

Duration: 00:02:15.11, start: 0.025056, bitrate: 224 kb/s

I encoded Jahzzar_-02-_FM.mp3 with 128 kbps:
ffmpeg -i Jahzzar_-_02_-_FM.mp3 -b:a 128k output128.aac

and then I tested again:
ffprobe output128.aac

I get the following statement:

Duration: 00:02:36.34, bitrate: 113 kb/s
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 113 kb/s

Why is the duration changed?
What is the difference between the first bitrate (from Duration: ) and the second one (from Stream: )? For some tracks they are different, here for instance:

Duration: 00:02:15.11, start: 0.025056, bitrate: 138 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s

Why is it encoded with 113 kbps (I used b:a 128k)?

Why is the duration changed?
MP3s may not display accurate duration, depending on whether a Xing header was written, and whether the MP3 encoding is Variable Bit Rate (VBR) or a Constant Bit Rate (CBR).

What is the difference between the first bitrate (from Duration: ) and the second one (from Stream: )?
The first one is the division of the total file size (including metadata) by the probed media duration. The second is the division of the media data size by the probed media duration.

Why is it encoded with 113 kbps (I used b:a 128k)?
The native AAC encoder does not have a CBR mode. It will treat the target bitrate as an average target. This is fine and more efficient than forcing a CBR mode encode.

If you insist on CBR, then get or compile an ffmpeg build with the fdk-aac encoder, which does do CBR encoding.


text:
Different names for video resp. audio filters
There are many pairs of video and audio filters for the same purpose - one for video streams and the other for audio streams.
For example fade - afade, trim - atrim, split - asplit, loop - aloop.
The names for audio filters have the a prefix.
Why? Why they are different names for video and audio filters?
After all, every filter is applied to a particular individual stream, isn't it? So FFmpeg knows in advance the type of that stream, and is able to decide itself what type of filter have to use (video or audio), even if the names would be the same.

The main reason lays in selecting an appropriate stream (audio or video) for filterchains with no input labels, for example
-filter_complex "[0:v]hue=s=0,split=2[outv1][outv2];fade;afade

The first filterchain [0:v]hue=s=0,split=2[outv1][outv2] has specified input label ([1:v]) but two others not.
So:

for the fade filter will be selected the first unused video stream, while
for the afade filter will be selected the first unused audio stream.

(In the case of only 1 video stream and only 1 audio stream in both input files in ffmpeg -i input1 -i input2 ...), the first unused video stream will be the video stream from the second input file, and the first unused audio stream will be the audio stream from the first input file.)
If there would be the same names for both video and audio filters, then filterchains with no input labels could't be allowed.

This is not a fatal problem. See the concat filter, which has options to set number of segments, and types of media. Even without linklabels, the filtergraph can be made to autoselect inputs based on that info e.g. fade=media=audio:type=out:...

@Gyan, thanks for your useful info, but you would still have to specify media=audio, while for afade you needn't.

True. I'm just pointing out that the main reason isn't technical. It's historical as Paul says.


text:
Speed multi part of video
I try speed up a part of video but when completed, the output has the wrong duration video, and it contain some freeze frames. My command:
ffmpeg -i /storage/emulated/0/Screen_Recorder/ScreenRecord/Audio_VD_1560242359654.mp4 -preset ultrafast \
  -filter_complex \
     [0:v]trim=0:12,setpts=PTS[sv]; \
     [0:a]atrim=0:12,asetpts=PTS[sa]; \
     [0:v]trim=12:50,setpts=0.50*(PTS)[v0]; \
     [0:a]atrim=12:50,atempo=2.00[a0]; \
     [0:v]trim=50:57,setpts=PTS[ev]; \
     [0:a]atrim=50:57,asetpts=PTS[ea]; \
     [sv][sa][v0][a0][ev][ea]concat=n=3:v=1:a=1 \
  -profile:v baseline -c:a aac \
  /storage/emulated/0/Screen_Recorder/ScreenRecord/Speed_VD_1560242925087.mp4

and when I try atrim audio, and merge it to video if trim form more than zero frame before of video after trim can't play. How can I fix it?

Use
-filter_complex [0:v]trim=0:12,setpts=(PTS-STARTPTS)[sv];[0:a]atrim=0:12,asetpts=(PTS-STARTPTS)[sa];[0:v]trim=12:50,setpts=0.50*(PTS-STARTPTS)[v0];[0:a]atrim=12:50,asetpts=(PTS-STARTPTS),atempo=2.00[a0];[0:v]trim=50:57,setpts=(PTS-STARTPTS)[ev];[0:a]atrim=50:57,asetpts=(PTS-STARTPTS)[ea];[sv][sa][v0][a0][ev][ea]concat=n=3:v=1:a=1
concat filter expects all inputs to start from 0, so each instance of PTS should be replaced with PTS-STARTPTS.


text:
Greatest Common Denominator format for ffmpeg -f concat -i mylist.txt -c copy output.mp4?
If I have a bunch of clips to merge that are the same frame rate and same dimensions, but ffmpeg barfs when I try to ffmpeg -f concat -i mylist.txt -c copy output.mp4 (or any other output format), to what format should I first convert them before attempting a concat?
Let's call such a format the Greatest Common Denominator format into which one can convert all one's videos so that -f concat will work.
For instance, one would presume that if there are two streams, one at 60fps and the other at 31fps, that there is a command that takes it as an input, without specifying that it is at 31fps, but specifying that the output should be 60fps.  This would re-encode that stream of course.  Then one specifies the same command for the 60fps input stream which, of course, will do nothing (presumably).  The point is that now you have two “intermediate” files that are as they should be for the fps parameter.
Also, presumably, there would be a higher output resolution specification that would capture much if not all the resolution of both streams and, again, only re-encode in the likely event that one or even both need to be so-re-encoded.
We can go down the list of parameters output by ffprobe -i and compile a complete list of output specifications that end up with the Greatest Common Denominator output format that is virtually guaranteed to behave itself when given as input to -f concat.
This is all with full awareness that the re-encoding could take days and an order of magnitude more disk than the original files.
ffprobe shows so many moving parts that it's kind of ridiculous to track down each and every one of the possible contributors to concat failures.
It is entirely acceptable to have this process run for hours, so don't be shy about suggesting very generic output formats that get rid of all possible incompatibilities.
PS:  I've tried the supposed free replacements for YouTube's defunct video editor like OpenShot and Shotcut as well as the suggested ffmpeg conversions/merges to/from intermediate formats.  Nothing works.  Indeed, VLC ends up crashing.  There must be some way to just nuke this.

Codec and codec/bitstream profile* must match. Without these, concat will fail. Other attributes like stream order can be different if working with MPEG-PS/TS inputs. Timebase should match for producing output that plays at correct speed. What does ffprobe -i say for the individual inputs?

Well, that's responsive to a different question than the one I asked.  I understand there are a slew of stream parameters that must match.  I also understand there are no utilities that will automatically detect and correct these mismatches (short of paying Adobe for Premiere).  I'm not sure how I can make the question clearer.

I've tried to clarify the question.

ffmpeg won't do conditional transcoding. If you know the set of properties which is acceptable, then you can transcode all clips to those properties. Almost any output format will do, but I would suggest .mkv (Matroska) container. H264 codec for video, and pcm_s16le for audio. Set a common resolution and pixel format: -s 1280x720 -pix_fmt yuv420p and for audio, common channel count and sampling rate -ar 48000 -ac 2.

Most concat operations don't fail because of the container, although there are a couple of container-level properties which can throw a wrench.


text:
Editing/Changing Cluster Timecode Element in mkv files (Amazon Kinesis Video)
I've tried researching this very thoroughly, but have not come across a similar issue.
To sum up my problem first, I'm sending 3 second .mkv clips into Amazon Kinesis Video. Then I pull back random intervals of those clips. These pulled clips have “bad” timecode data. The clips keep the original Block timestamps (e.x. between 0 and 3 seconds). The Cluster Timecode is set to 0.
When I pull the video, I get something with block timecodes like this: [00:00:02:20, 00:00:02:80, 00:00:03:00, 00:00:00:20, 00:00:00:80] (It restarts). When played in something like VLC, it will play until it reaches a timecode less than the previous and then stop.
I'm not sure if this is a AWS Kinesis Video issue, or just a general mkv issue.
I record the original clips in Python from a series of images at 15fps with the following code:
self.video_writer = cv2.VideoWriter('path/to/some/file.mkv',
                                     cv2.VideoWriter_fourcc(*'XVID'), 15, self.size)
self.video_writer.write(self.input)

I then run ffmpeg on it with the following command before sending:
ffmpeg -i 'path/to/some/file.mkv' -c:v libx264 -r 15 -codec:a aac \
       -vf scale=960:720 -y -async 1 -shortest 'path/to/some/encoded-file.mkv'

I THEN send the video using the Java producer library provided by AWS
with the important part here:
 dataClient.putMedia(new PutMediaRequest()
             .withStreamName(STREAM_NAME)
             .withFragmentTimecodeType(FragmentTimecodeType.RELATIVE)
             .withPayload(inputStream)
             .withProducerStartTimestamp(
               new Date([timestamp in milliseconds of start of video])
             ),
             responseHandler);

Everything streams to AWS just fine, and it's visible in the console viewer
I then go to download the video, also using the AWS provided Java consumer library:
FragmentSelector fragmentSelector = new FragmentSelector().withFragmentSelectorType(FragmentSelectorType.PRODUCER_TIMESTAMP).withTimestampRange(getTimestampRange(request));
...
ListFragmentsResult result = this.archivedMedia.listFragments(fragmentsRequest);
...
fragments.sort(Comparator.comparing(Fragment::getProducerTimestamp));
List<String> fragmentIds = fragments.stream().map(Fragment::getFragmentNumber).collect(Collectors.toList());

final GetMediaForFragmentListResult mediaForFragmentListResult = this.archivedMedia.getMediaForFragmentList(
  new GetMediaForFragmentListRequest()
      .withFragments(fragmentIds)
      .withStreamName(streamName)
);

OutputStream fileOutputStream = Files.newOutputStream(path);

BufferedOutputStream outputStream = new BufferedOutputStream(fileOutputStream);
OutputSegmentMerger outputSegmentMerger = OutputSegmentMerger.createDefault(outputStream);

StreamingMkvReader mkvStreamReader = StreamingMkvReader.createDefault(new InputStreamParserByteSource(mediaForFragmentListResult.getPayload()));

try {
   mkvStreamReader.apply(outputSegmentMerger);
} catch (MkvElementVisitException e) {
   ...
}

Again, everything seems to work, until I go to play the video. It will max out at that original 3 seconds of clip, even less if the video started halfway through one of those clips. Putting the video into MKVToolNix shows me the following info (notice the track timestamps near the bottom)
+ EBML head size 47 data size 35
|+ EBML version: 1 size 4 data size 1
|+ EBML read version: 1 size 4 data size 1
|+ Maximum EBML ID length: 4 size 4 data size 1
|+ Maximum EBML size length: 8 size 4 data size 1
|+ Document type: matroska size 11 data size 8
|+ Document type version: 4 size 4 data size 1
|+ Document type read version: 2 size 4 data size 1
+ Segment: size unknown size is unknown
|+ Seek head (subentries will be skipped) size 72 data size 66
|+ EBML void: size 148 size 157 data size 148
|+ Segment information size 87 data size 75
| + Timestamp scale: 1000000 size 7 data size 3
| + Multiplexing application: Lavf57.83.100 size 16 data size 13
| + Writing application: Lavf57.83.100 size 16 data size 13
| + Segment UID: 0x14 0x0e 0xa4 0x81 0x58 0x75 0x40 0x7e 0x15 0xd2 0x28 0x97 0xa4 0xe0 0x27 0x4d size 19 data size 16
| + Duration: 00:00:02.134000000 size 11 data size 8
|+ Tracks size 160 data size 148
| + Track size 142 data size 133
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0) size 3 data size 1
|  + Track UID: 1 size 4 data size 1
|  + Lacing flag: 0 size 3 data size 1
|  + Language: und size 7 data size 3
|  + Codec ID: V_MPEG4/ISO/AVC size 17 data size 15
|  + Track type: video size 3 data size 1
|  + Default duration: 00:00:00.066666666 (15.000 frames/fields per second for a video track) size 8 data size 4
|  + Codec's private data: size 42 (H.264 profile: High @L3.1) size 45 data size 42
|+ Tags size 211 data size 199
| + Tag size 68 data size 58
|  + Targets size 14 data size 4
|   + Track UID: 1 size 4 data size 1
|  + Simple size 44 data size 34
|   + Name: DURATION size 11 data size 8
|   + String: 00:00:02.134000000 size 23 data size 20
|+ Tags size 243 data size 235
| + Tag size 235 data size 229
|  + Simple size 97 data size 91
|   + Name: AWS_KINESISVIDEO_FRAGMENT_NUMBER size 38 data size 32
|   + String: [aws fragment number removed] size 53 data size 47
|  + Simple size 65 data size 59
|   + Name: AWS_KINESISVIDEO_SERVER_TIMESTAMP size 39 data size 33
|   + String: 1568225058.665 size 20 data size 14
|  + Simple size 67 data size 61
|   + Name: AWS_KINESISVIDEO_PRODUCER_TIMESTAMP size 41 data size 35
|   + String: 1568225048.750 size 20 data size 14
|+ Cluster size 209722 data size 209710
| + Cluster timestamp: 00:00:00.000000000 size 3 data size 1
| + Simple block: key, track number 1, 1 frame(s), timestamp 00:00:00.000000000 size 94684 data size 94680
|  + Frame size 94676
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.267000000 size 32150 data size 32146
|  + Frame size 32142
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.133000000 size 156 data size 153
|  + Frame size 149
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.067000000 size 227 data size 224
|  + Frame size 220
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.200000000 size 49 data size 47
|  + Frame size 43
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.533000000 size 27221 data size 27217
|  + Frame size 27213
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.400000000 size 469 data size 466
|  + Frame size 462
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.333000000 size 237 data size 234
|  + Frame size 230
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.467000000 size 221 data size 218
|  + Frame size 214
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.800000000 size 24236 data size 24232
|  + Frame size 24228
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.667000000 size 395 data size 392
|  + Frame size 388
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.600000000 size 250 data size 247
|  + Frame size 243
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.733000000 size 276 data size 273
|  + Frame size 269
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.067000000 size 1724 data size 1721
|  + Frame size 1717
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.933000000 size 207 data size 204
|  + Frame size 200
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:00.867000000 size 206 data size 203
|  + Frame size 196
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.533000000 size 228 data size 225
|  + Frame size 221
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.867000000 size 7294 data size 7291
|  + Frame size 7287
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.733000000 size 181 data size 178
|  + Frame size 174
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.667000000 size 160 data size 157
|  + Frame size 153
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.800000000 size 52 data size 50
|  + Frame size 46
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:02.067000000 size 59 data size 57
|  + Frame size 53
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:01.933000000 size 74 data size 72
|  + Frame size 68
| + Simple block: track number 1, 1 frame(s), timestamp 00:00:02.000000000 size 42 data size 40
|  + Frame size 36

So I'm not sure where to go from here. I've tried ffmpeg's -ts abs option as well as -fflags +genpts but those didn't seem to do anything. I'm thinking if I can set the Clusters Timecode element to be the time the video starts in milliseconds, AWS might ingest it properly, or at least break up the clusters to have multiple. I'm fine with a solution that requires some post processing as well.
(Sorry for the long post, but just making sure everyone has all the info needed!)

MKV frame timestamps are relative to the start of the cluster. The cluster timestamps, however can be absolute or relative to the beginning of the "presentation". The frame timestamps are the presentation timestamps (PTS) whereas the frames are ordered in the decoding order (DTS). MKV doesn't have explicit DTS.
The snippet of the MKV you showed contains a single cluster and the frames which are simple blocks indicate relative timestamps from the cluster (these are B-frames).
Could you dump the content of these MKV and send it to kinesis-video-support@amazon.com?
P.S.
From the post, seems that you are not using Producer SDK but AWS KVS SDK and using PutMedia API call to upload the generated MKV fragment.
KVS has two producer specific SDKs
CPP: https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp
Java: https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
These are useful for device integration scenarios.


text:
Long distance, low light
I'm taking a video next month which will be in a dark conference room with a well lit stage. I need to set up a camera to video the presenter, but this year we have many more attendees, more tables, etc — so the camera will be 100 ft away from the podium (last year we got decent results from 40 ft away). It's a JVC GY-HM180U camera.
Any suggestions / recommendations on how to get the best possible image quality?

Parameters have changed. We'll now be 30-40ft away from the stage, but we have to be at the side of the hall (no space anywhere else). So the distance is less, but the shooting angle is about 45 degrees :(

People need to define the priorities, if the video footage is important to assign a good place to the camera. A television studio with a live audience is a good example of the priority.
Of course, this is not the case, but I am pretty sure these days is not the opposite to that. It has some importance to be streamed, "Youtoubed" or something. So, talk to the organizers and define a good place.
On the case, you really, really can not be closed or in a better spot, Define if the lens is long enough for the case. Define if the camera shake at that distance, moving the camera to follow the presenter is good enough, define if that shake can be compensated filming on 4K and cropping to stabilize.

Forgot to mention (sorry!) - We won't be recording (apart from stuff for B-Roll use in the future). The camera is used as a live feed to two side projection screens during the talk. Good stuff in your answer, though. Thanks!

Oh, so the video is actually more important! First row then!

Be aware that some presenters lecture to the audience and some lecture to the screen.  It's about 50/50 in my experience, and I've done quite a number of these.  If you draw a line from the speaker to the main screen, and another line from the speaker to the audience center, make sure your camera is between the two lines, unless you can get two cameras, then have one on each line.


text:
How to add an image from the video to the beginning of composition? (Just an image, not a clip)
I have a composition which is a union of 2 composition, and I want to add a snapshot from the composition to the beginning of it - is there any shortcut for it?
I tried searching for it Google but did not find relevant results.

In the menu (at the top or by right-clicking a layer) choose Layer>Time>Freeze Frame
Adobe have a user's guide, it's a good place to start. Read more here.


text:
OS X: What software for cutting videos?
On Windows, I've used Solveig Multimedia Video Splitter and it will cut the video on exactly the time range listed (example: 00:11:34.004 to 00:34:45.005)
I've tried a freeware app LosslessCut (which uses FFmpeg) and it only trims cuts on the B-frames I think.
Any suggestions? Thanks.

If you're looking to only trim videos, I would recommend checking out ffmpeg. It's easy to use from the mac terminal and is able to trim videos with -ss and -t. For downloads and documentation visit:
ffmpeg.org

If you want something free and pretty easy which has visual display as well: Blender
There are loads of tutorials on Youtube how to use this program for various reasons.
It's main usage is 3D Modelling and Rendering, but it also has a very good video editing section, which uses ffmpeg for export compression.
It handles both B-frames, frames and ss:mm:hh.


text:
FFmpeg : Desktop Recording for YouTube
I was reading YouTube Help Recommended upload encoding settings page, and I found this command from a site Youtube recommended encoding settings for FFmpeg.
ffmpeg -f gdigrab -framerate 60 -i desktop -f dshow \
  -i audio="Microphone (2- Realtek Audio)" -c:v libx264 -preset slow -crf 18 \
  -profile:v high -level 4.0 -pix_fmt yuv420p -bf 2 -coder 1 -b:v 15M -c:a aac \
  -ar 48000 -ac 2 -b:a 384k output.mp4

I modified the command to capture my desktop and microphone, but I was wondering if this is the best quality I can get or whether there are any improvements I can make. My goal is to get the best quality for a 1080p60 video.

@MarianD, note that by breaking lines using \ you made this command linux (and mac) only, when there was no any information about OS and it's possible that the question is about windows.

@Qwertiy, you're right, I'm aware of it, but by scrolling the long line disappears the big picture (and the answerers' will for answering such a question). So I decided to use the POSIX continuation symbol \  (except questions with windows tag) — for FFmpeg users it is “lingua franca”, well-known to Windows' users, too, which have no problem to translate it to the ^ symbol.

Remove:

-profile:v high -level 4.0 - You don't need to set a profile or level because you're not targeting any specific, limited, or outdated devices. These options don't matter because YouTube is going to re-encode whatever you give it and set its own profile and level.
-pix_fmt yuv420p - You can let YouTube deal with the pixel format.
-bf 2 -coder 1 - These are already handled automatically by -preset.
-b:v 15M - This is mutually exclusive with -crf. Just use -crf instead. It will let you set the quality instead of you trying to apply an arbitrary bitrate.
-ar 48000 -ac 2 - No need to change the audio rate or channel layout. If you do what to change those do it via the dshow -sample_rate and -channels input options.

So your command can look like:
ffmpeg -f gdigrab -framerate 60 -i desktop -f dshow -i audio="Microphone (2- Realtek Audio)" -c:v libx264rgb -preset slow -crf 18 -b:a 384k output.mp4

The input is RGB, so you can avoid the RGB to YUV conversion by using -c:v libx264rgb.
If your computer can handle it then consider using a slower -preset.
You can use flac or libopus for audio (change output.mp4 to output.mkv), but for microphone it will hardly matter.
You can try -crf 17 if you think you can see a difference. I wouldn't bother with the huge file increase from using lossless (-crf 0).
You can see if dshow is faster than gdigrab for capturing the desktop. I don't use Windows so I can't test for you.

Note that a non-FFmpeg based player may not be able to decode the file, but I'm fairly certain YouTube will have no issues with it.


text:
Change the timecode with ffmpeg in the middle of the track?
I know you can change the timecode of a file with FFmpeg with the option –timecode. This modifies the whole timecode of the file starting from the  -timecode added.
Can you change the timecode with FFmpeg in the middle of the file? Jumping to another timecode (always in the future). This can be useful with the –concat option. Merging a bunch of files into a unique file. Reflecting the actual time every isolated file was recorded.

Timecode set by the -timecode options sets the starting TC so it will always be continuous.

So, I assume that’s no possible with FFmpeg. That would be an interesting feature, although.  Imagine the following scenario (a real scenario): You are shooting a long press conference (or whatever) where you’re turning your camera on and off when necessary. Then you merged all clips you recorded into a unique file. You desire to keep the original timecode of every clip into the merged clip in order to localize into your unique file when some action occurred. A continuous timecode will fail after the first interrupted clip

The MOV/MP4 formats only store starting timecode, so that's a format limitation.

Ah! OK. thanks for your reply. All the files -I use- are .mxf by the way-

Depending on your final use case, a non-standard way to deal with that would be to keep the original TC as LTC (audio TC) on an additional track. Concatenating clips would then preserve the original TCs on that separate track.


text:
Final Cut output to FFmpeg workflow
If I use Apple Compressor, I could just 'Send to Compressor', without first exporting a ProRes master.
However, I would like to use FFmpeg/x264 for better quality (at low bitrate).
Do I have to export the master first? It is 150 GB/hour and exceeds my remaining disk space. Or is there a 'streaming workflow'?

You could try and add your own share destination setting into FCPX.
Click on the Share button in FCPX, then in the opened share window click on 'Add Destination'. In the right half of the window, you see all the possible options. Click on 'Compressor Settings' and another window will open. You might find and can finetune one of these settings.


text:
60 fps vs 50 fps in 24 fps timeline slow motion difference
If my math is correct, shooting 60 fps, playback 24 fps will allow me 2,5x slower motion.
Shooting 50 fps than should give me about 2x slower motion.
Is that difference significant in real time, or it's just in theory?
Will 60 fps bring “slower” slow motion over 50 fps on the same 24 fps timeline?
Thank you.

The difference is noticable but the question is if it is worth it.
Many low-end cameras compress High Framerate videos more than "normal" framerate videos, thus you loose quality.
So best thing in this case is just to try it out, if you think that the quality loss if worth the slight slower speed

The difference in the speed of playback up to 5 % is considered as tolerable, unnoticeable.
By this rule of thumb 60 fps compared with 50 fps are too different (20 %).
As an example of a tolerable difference is a common case of playing back a movie with 24 fps on TV set in Europe with 25 fps (4 % difference in speed).

Where does this rule come from? Do you have a reference?

I think we do not really understand each other.
Let's say, I want slow motion of my dog
I will record him with 2 cameras, one will be set to 60fps, another to 50fps
both of them will be slowed down and played back in 24fps timeline
Will original 60fps fotage show my dog in slower speed ?

"Will original 60fps footage show my dog in slower speed ?" — of course. It will play at 24/60 = 0.4 of its original speed, while 50fps video will play at 24/50 = 0.48 of its original speed, presuming that you slow down the original video without losing frames or creating fake frames. Whether the difference is significant or not is totally subjective.

@Rusty, you're right with your calculation and objective consequences. But we humans are not so different. It's 20 % difference, so it recognized everyone.

Yes, no, probably, probably not... depends.
Ok, you have two questions here. Yes, a 60fps clip will have more frames per second, pretty self-explanatory.
But the other question is pretty subjective.
In real life (Not real-time), it can be a total disaster, for example, if you are working on a music video clip where dancers were shot at the wrong speed given a specific beat.
Another case would be where you need to fill a specific timeline with the clip, and having fewer frames could not be enough to fill that space.
But if your clip does not have a specific element that can be timed accurately, it does not matter, because our perception is not that exact. It can be just a cool moment in our video.
Even better, modern programs have some neat features to re-warp the frames, it invents new frames with the information on other frames. So, now days is a lot easier to adapt slow motion and time warp clips in the videos.


text:
Why my workstation PC is rendering too slow on Adobe Premiere Pro CC 2019?
I'm wondering why my desktop workstation render too slow the video on Adobe Premiere Pro CC 2019.
I tried to edit (cut, music, simple graphics) video of 15 minutes.
But when it renders, it takes more than 1 hour.
Here is my specs:

I7-8700k 3.7 GHz
Ram 16 GB ddr4 2133
Samsung ssd m2 nvme 256 GB
Kingston 120 GB SSD
Toshiba 1 TB
Motherboard : MSI z370 gaming m5
Watercooling thermatalk

The only thing  I doubt in is, I do not have a graphic card as I know it's not very important in video editing and 2D as a CPU.
Please give me a solution, or where is the problem?
Thanks

Have you read Adobe's system requirements for Premiere Pro? I think you'll find that a GPU is absolutely crucial for Premiere renders. Looking at your specs you seem to have got everything fairly well specced up except for the one thing that will massively decrease your render times for PP.
TL;DR: get the best GPU you can afford.

Well after a week of research, you are right, thanks brother


text:
How to take an object and pause it in a moving video?
I understand that this question doesn't make much sense, so allow me to explain.
I have seen many videos, most of them involving sports and cars, where a person/car is frozen, and the object that was frozen is moving somewhere in the video will approach the frozen object and when it makes contact, the object that was frozen will now move with the object in real time/delete itself and the video keeps playing.
I use After Effects and I wanted to know how this is done. If anyone can help, I'd really appreciate it.
I just spent an hour trying to find a video to at least give an example as to what I was talking about and I just can't find one, but I know I've seen it before.

could you please provide a link to a video that shows what you mean?

In simple terms you split the video at the frame you want the objects to join up at, then also make a still image of the object at that frame (Layer 1 = video end of sequence, Layer 2 = still image Layer 3 = video beginning of sequence). If the camera is moving you will have to track the still object to match Layer 3. So the still image gets closer to the moving object as Video/Layer 3 plays, then when the objects join video/layer 1 cuts in and continues.

I think you're looking for how to create Speed Ramping-type effects?  Maybe something like this?

No, it's not a speed ramp, thanks though. I'll try to create a graphic of what I'm trying to describe when I can.

I do not fully understand what you are asking, but if it is what I think you want there are two options.
1. Gren screen, so you can have your objects with a really fast way to mask them, and then having any manipulation you want.
2. Rotoscoping them, if it is from an already filmed video and no green screen can be made during filming.
Here is an example of rotoscoping with Natron, and I think you mean ta similar effect to this one.

It is using a manual mode of rotoscoping. As tech evolves some new methods of masking, especially if the background is fixed, can be done to automate this. Some new tracking system, pixel by pixel and AI-based would be a good option.


text:
Remove files from a folder not used in Premiere Pro
I have a folder in which I save all my video recordings, I used some video files in Premiere Pro but I would like to delete those that I haven't used.
The problem is that I have over 3100 files which weight over 1.5 TB and many Premiere Pro projects, it would take me a very long time to open each project and see which files I've used. When I used Vegas Pro I remember that each video I opened, the program made a .bak file with the same name, so I knew that I was using that file, but not Premiere.
I hope I've been clear enough, if you know a way to delete the footage that I've never used in any Premiere project, please help me. :D
Thanks

Do you want to delete footages, which you didn't use in Premiere or you even didn't import them in Premiere?
In first case I don't know how to delete them.
In second case I think that you can look at the names of cache files, which premiere have created, then open program like “Beyond Compare”, compare “video folder” with “cache folder” by names. And then you should get, which names don't have in cache folder.
This names will be not used. If your cache are full, you will have full list.
Maybe this idea will be useful for you, but I am not sure.


text:
What is this effect used by a lot of voice actors called?
I am looking for a specific voice effect that I have listened to in many videos on YouTube and other places. I don't know what it is called and it also does not sound natural. Here are examples -
Arpha Hub - Explainer Video
Addison Anderson
Ankit Arora
Do you notice the subtle 'errrrr'/crunchiness/vibration/distortion/robotic sound at the end of many words? I understand it may be difficult to understand by my explanation but hope someone recognizes it.
I would like to know if this effect has a name or something to search further into it or is there is a YouTube tutorial somewhere that I can follow, to begin with.
Any kind of pointers would help.

I think the sound you're talking about is "vocal fry'. I hate it like cancer personally, but whatever floats your boat.

This is not an effect, it's the way these people talk. Some people have a rather raspy voice, other a smooth one. There is no effect to make your voice more raspy, unfortunately.


text:
Understanding pts_time and frame extraction with time stamps
I am attempting to extract frames with their timestamps from videos using the command line, but I am struggling to relate both the output of the showinfo filter to the actual frames outputted by the command, and the corresponding output file names from the -frame_pts option.  I am extracting 1 frame per second using the following command:
ffmpeg -y -i GOPR3427.MP4 -r 1 -vf showinfo -copyts -s 640x480 -frame_pts 1 \
        GOPR3427.MP4-frames/%d.jpg > GOPR3427.MP4-frames/output.txt  2>&1 -hide_banner

This output a series of jpg's from 0 -11, for example, 0.jpg, 1.jpg, 2.jpg etc. According to FFprobe, my video has a duration of 10.581333
My understanding from this superuser answer to the question Extract I-frames to images quickly is that the -frame_pts sets the numeral portion of the output image filename to represent the timestamp based on the frame rate.  So in my example, the frame rate is 50/1 and according to the logic in the answer, I should be able to calculate the pts_time as follows 3.jpg would be:  3/50 = 0.06
If I check in the output.txt file I can see a line that reads
[Parsed_showinfo_0 @ 0x563d384a5080] n:3 pts:5400 pts_time:0.06 pos:451041
    fmt:yuvj420p sar:1/1 s:1920x1080 i:P iskey:0 type:P checksum:D56E24BB
    plane_checksum:[A1E26C9D C6294D84 DB726A8B] mean:[131 145 104 ] stdev:[27.4 23.2 20.8 ]

This corresponds with the calculation above, however, my output.txt contains 528 parsed line entries like the one above, yet my command outputs only 11 files, using the logic above the file named 11.jpg would be a pts_time of 0.22, this doesn’t represent 1 x frame every second.
Can anyone help tie this together for me, at the moment I am struggling to understand the outputs here?

The output filename numbers should be interpreted in terms of the output -r value. Input fps is only relevant if no fps transformation has occurred, via -r or fps filter..etc. Since your video is 10.58 seconds and output rate is 1, 11.jpg should correspond to the 11th second, which is correct.

Thanks, @Gyan - sorry just to clarify, I am going to load the images into the browser in a web application, if a user clicks on an image, say image 11 and chooses to delete, I will trim the video using that images corresponding timestamp, in this case, the 11th second. if I am to do any seek to operation in FFMPEG, given that the FFPROBE duration is 10.581333 what timestamp would I use? I'm trying to map the output files to their corresponding timestamp in the input file.

Use ffmpeg -y -i GOPR3427.MP4 select='if(eq(n\,0),1,floor(t)-floor(prev_selected_t))' -vsync 0 -r 1000 -copyts -s 640x480 -frame_pts 1 GOPR3427.MP4-frames/%d.jpg

For complete accuracy, you would use -r 1000000 and %10 in the filename

Thanks very much, @Gyan, I'm receiving an error when running your cmd, possibly a syntax error but I can't seem to figure it out. [NULL @ 0x560db35d1cc0] Unable to find a suitable output format for 'select=if(eq(n,0),1,floor(t)-floor(prev_selected_t))'
select=if(eq(n,0),1,floor(t)-floor(prev_selected_t)): Invalid argument

Oops, add -vf before select


text:
Exporting from Premiere as WAV and ProRes - audio is not in sync
My workflow:
I've completed work on a complex edit.  I have made two exports:

I have exported the video (with audio) as a ProRes file with 48kHz 16-bit PCM audio.
I've also exported the sequence as a 16 bit PCM WAV file 48 kHz.

Both exports were from the beginning of the sequence to the end.
We recombined the files in After Effects on another Mac.  The same project settings (25 fps video, 48 kHz, 16-bit audio).
The audio on the two files was out of sync, by less than a frame, but definitely out of sync.
I re-imported the files into a new Premiere project on my mac to check.
The waveforms were visibly out of sync, by less than a frame.
My question is why, and what's the right way to export audio only in a file which will correctly maintain sync?


text:
Render failed - Davinci Resolve 16
I have a problem with exporting an old timeline from Resolve. In 15 it worked fine, but I did some changes in an old composition and want to export the updated version. Error message says:

Render job 1 failed as the current clip could not be processed. The Fusion composition on the current frame or clip could not be processed successfully.

The fix of copying and moving to a new time project hasn't worked for me.

In the 'Deliver' panel, under the Advanced Settings, try enabling/ticking “Use render cached images”.

The "Use render cached images" solution worked for me. I also output to H264 and used optimized media. Thanks a lot. I was really stuck with this problem some time ago, now it cropped up again. I am on the free version of Resolve, btw.

Try transcoding and relinking the media: File → Media Management.


text:
Exporting 360 video in a 360 video format (not plain video)
I have the Insta360 One X camera and want to edit the video I take.
Basically I am putting the camera on a tripod and videoing 60 seconds. Then in Insta360 studio 2019 software I can edit the video to change the view angles (using keyframes) so when I play it looks like it is panning round.
When it is exported it always ends up as a plain video.
I want it to play as a 360 video so the user can pause it and also change the view angle if they want to look somewhere in particular then carry on playing the video again.
So far I can only find a way to export in a plain video & not in 360 video — can't this be done. Is there any other video editing software I can use (I don't mind paying a one off amount to buy it)?
Hope all that makes sense.

Note...I just used 'Spatial Media Metadata Injector.exe' to inject the metadata and the result was that it allows me to play the video and pause it & change the angle of view BUT it has changed the video to be a fish eye view and everything is close up and looks wrong.

Yeah Spatial Media Metadata Injector destroys the video. I was somehow able to export a video using insta360 studio as an actual 360 video but have no clue how I did it.
It seems all anyone wants to do is make claims to all these types of features but no one wants to explain how they're doing anything. The information people are leaving is useless.
I was on the phone with insta360 today for about 40 minutes trying to have them explain to me what a keyframe is, what purpose it serves and why it's even in insta360 studio to begin with.


text:
I am having problems using xml list in transporting timelines from Adobe Premiere to the DaVinci Resolve
If I use XML list to transport a timeline from Premiere to REsolve, I find strange results.

I have a shot that I cannot transport without it arriving to Resolve 33 frames shorter on the start (the original time codes are changed in Premiere)
change in nesting, zooming or doing anything with the shot are not transported.
Now and then I get the Premiere report written

Translation issue:
  Effect  on Clip <A001_C010_10245N_001.R3D> not translated.

Or it Resolve just does not want to use the XML saying in the pop in window

DOM parser error. Line 532

Anybody understands what is happening?

At the Big Picture level, commercial NLE companies' raison d'etre is to make money.  As such, they are obliged to protect their own intellectual property, and distinguish themselves from their competitors.  While a certain level of interoperability is required to appease their customers, they will never co-operate well enough with each other to provide each other with perfect, seamless project exchange file formats.  This is nothing new or surprising to video, not to mention computers, or capitalism in general.
However, DaVinci Resolve happens to be better than its competitors at the process of interpreting an edit created by a different NLE.  This process, by the way, is known as "conform" (that'll be a helpful search term).
Before you conform an edit from PP to DR (or anywhere), the following steps are best practice:

Export a Master Version of your sequence for reference in DR.
Create a backup of the sequence in the PP project.
"Flatten" the edit in Premiere; delete any hidden, disabled, or otherwise unused media, AND overwrite lower-level video tracks with higher-level ones, as much as possible.  Ideally, everything should fit onto V1, but realistically, 2-4 tracks of video is OK.
Remove any unsupported effects, transitions, and plugins from the remaining clips.  This step is a matter of personal preference, because Resolve actually imports and exports unsupported effects, passing them through the pipeline unchanged, at least theoretically, YMMV.  A list of supported operations is in the Resolve manual (pp. 873, Oct 2019 edition).  The "Translation issue: Effect on Clip..." error is telling you exactly which clip contains an unsupported effect.
Finally, export the .XML

The conform process begins once these steps are complete.  Some colorists will do this for you as long as you pay their day rate, others will flat out reject your project.  Patrick Inhofer encourages colorists to include conform time in their budgets on MixingLight.com (which is an excellent resource on this subject.)
Conform isn't a difficult process to comprehend, or even execute.  It is a little bit labor-intensive, and it involves checking the entire program, frame-for-frame, against the Master you export in the first step above (and manually re-creating anything which doesn't match).  Like I said before, Resolve's tools for doing this are unparalleled, but they're also too extensive to explain here.  So, you'll want to cozy up with Part 6 of the Resolve User Manual, "Import and Conform Projects" (pp.867-940 of the Oct 2019 revision).  But basically, the steps are like this:

Import your .XML from Premiere
Re-Link your footage in Resolve
Set up the Master Export you generated in Premiere as an "Offline Reference" in Resolve.
Watch the Offline Reference, side-by-side against the interpreted XML, and mark discrepancies.
Fix the discrepancies.
Do whatever it is you came into Resolve to do -- presumably, color grade.
Optionally, "round-trip" back to Premiere.

Historically, Resolve was designed as a "finishing" program.  It was meant to add the final touches.  But because the real world is messy, and edits never really get locked, BMD fully supports round-trip workflows.  They've also built some very nice NLE, DAW, and VFX/MG software into their first-class color suite.  So, if the whole round-trip thing gets tiresome, you can always just... not.


text:
FFMPEG: How can I cut a mkv without considering keyframes?
I have a MKV video and I want to cut from seconds 3.3 to 22:07 minutes, but I can't cut at that start timing because there isn't a keyframe. How can I bypass that?

You can’t “bypass” it. If that was possible it would be the default option. If you use -codec copy, you must cut on key frames, otherwise re-encoding is required.

ok, thanks for your help

While in many cases it is impossible, there are cases where it may be theoretically possible. I will ignore here cases where no keyframes exist, since your question clearly stated that you are dealing with the codec with keyframe, but codecs differ in whether they allow keyframes in specific locations, or a keyframe may appear at any point.
If you have the latter, it would be possible to set up a case like the following:

Here the green frames are Key Frames, and the red is the new keyframe that will be created. You can see that most blocks can be copied as is, without reencoding, that is because every frame that follows the keyframe that can be just copied, can just be copied itself. We can also simply drop the unneeded frames from the last block without any issues (in many cases).
So what is happening with the red keyframe? It is generated from the information that come from the keyframe of the first block, plus all the changes that were applied by the frames following it up until the specific timestamp. This is 3.3 seconds in your example.
I will repeat myself once again, that in order for this to generate a playable file, you would need to be dealing with the codec which allows you to have as few frames between keyframes as you have left in the first block.
I am unaware of any tool which makes this approach easy, however.


text:
Decrease size of a avi video with lowest quality loss
I have been working on an animation with Blender. Further I rendered it at 24 fps at 1080p resolution.
The problem is that the rendered video is around 30 seconds and has size around 4.3 GB.
Is there any way to decrease the size without losing much quality?

What do you mean by "is to m " Stib

What is to m???

Now you've actually finished your question, the simple answer is to encode it using h.264/mp4. Blender can render to h.264, using ffmpeg video in the render settings but the better way is to render to image sequences and convert.
Since you have a render, you can convert it to h.264 / mp4 without having to re-render. There are many ways to do this, ffmpeg being one of the best, but if you prefer a GUI then Handbrake is a good option.


text:
Change Text Animation Direction With FFMPEG
"drawtext=fontfile="+fontPath+":text="+topText+":fontcolor=#FFFFFF:fontsize=40:box=0:boxcolor=black@0.2:boxborderw=5:x=min(4*(tw\\+10)-(abs(4-2*(t-1)))*(tw+10)-tw\\,w/3.5):y=main_h-(text_h*5)

With above script I am moving text from left to right and stay in middle and then move back to left.
How can I can animate it from right to left and then move back to right?

x=tw-min(4*(tw\+10)-(abs(4-2*(t-1)))*(tw+10)-tw\,w/3.5)

With this script I can animate text from right to left and stay in middle for a second and then go back to right side.


text:
re; using 2 i-phones simultaneously in adjoining rooms for video input to macbook pro
I would like to 'overlay' two individual video feeds from two i-phones (with individual audio feeds from each person via XLR cable) to an existing video so as to stream both the prerecorded video as well as the live video simultaneously.
Meaning: I would first create a 'zoom-like' video with 2 'missing' squares.  When going live, I want to fill in the missing squares with the live video (and audio) from our i-phones.
Any suggestions?  Many thanks in advance!
Bill

You need a video switcher and real cameras, not iPhones.

OBS could function as a video switcher and I think it supports multiple iPhone video inputs. But I'm not sure.

Thank you so much Matt!


text:
Wanna learn to make videos that use documents
I want to make videos that are documentary, and will often have documents and images in them.
I figured out how to do simple animations and Ken Burns Effects with Motion. Just wondering if I am going to end up making every scene in Motion and exporting it to drop into Final Cut Pro, or if there are easier ways to do it.
A good example would be suppose I want to show a document. I might want to swipe it in, then zoom to one part of it, then highlight some of it. I think I could do that with Motion. Wondering if instead though I should be finding or making effects in FCPX instead, then just dropping the document into it, reframing the zoomed portion, and where the highlight goes.
Here is a good example:

of some types of effects, although I think some of these are a little hokey. I just wonder if they are making each zoom and animated transition. Thinking no.

When you want something to happen on screen, at the very minimum, you need to tell it:

When to start
When to stop
Where to be

Motion lets you create templates for generators, transitions, and titles.  So you'll build the details of an effect in Motion, and then apply, and re-apply that template in FCPX as often as you need.  You can also decide which parameters you'd like to retain control over while designing your templates in Motion, and make them available to Final Cut, so that you can tweak elements as necessary.
Designing the movement of these graphic elements is the domain of a profession known as "Motion Graphics."  Like any other artistic practice, being a good motion graphics designer requires much talent, dedication, and practice.
Often, motion graphics designers will sell their designs, so that people who are less practiced can apply a polished look to their own projects, the same way a typographer might design a font for licensing to a broader audience.  If you search the web for "Apple Motion templates," you will find many of these pre-designed packages, complete with built-in controls for tweaking various elements to taste.

So in other words, I can't learn this because there are professionals who do it for a living. Right.

You can do anything you want, given enough time, dedication, hard work,  and practice.  And after you do that, someone will ask you if there's an easier way to do it.


text:
Can ffmpeg calculate a new starting keyframe when being asked to split/copy on a non-keyframe?
I understand from a question here that keyframes can (and do) occur anywhere in an h.264 stream, so I'm wondering why most of the advice I see where users want to cut on a specific time or frame (that is not a key frame) is that they'll have to go to the next/previous keyframe and start cutting from there if they want to do a straight stream copy,
Is it possible to make ffmpeg cut anywhere, from any frame and if it just so happens that the start frame is not a keyframe, then seek back to the nearest keyframe, then work forwards composing a new keyframe that will be used much nearer to the non-keyframe the user wants to start from?
For example if we have rules that a keyframe K must be followed by a pattern of any number of n and o starting with n, and the user wants to cut on some o:
KnononononoKnononononoKnonononono
      ^                                 //and the user wants to cut on an o

    knononoKnononononoKnonononono       //use Knono to generate a new k, place it near the o
           '

And then just encode this new keyframe plus original non keyframes knonono and then start stream copying from the frame above the apostrophe?
Does the encoding of the whole of the second Knonononono rely on some output from the first and hence there's a chaining effect/replacing the first block ruins the stream? (And if so then how does cutting on an existing keyframe help in that regard?)

In principle, this is possible, and is usually called "smart" encoding or rendering in the video editors / apps that offer this facility, typically in limited circumstances. FFmpeg does not have support for it.
The main complication is that the parameters of the encoded portion has to match the coding parameters of the existing stream. That is specific to each codec, and ffmpeg supports hundreds of video codecs. It would require significant redesign to parts of ffmpeg to have different handling for parts of an output stream, and to correctly parse the existng stream and ensure a compatible encoding. It's quite a bit of work and testing required for a feature that can be accomplished manually using a few more commands i.e. segmenting the input file, transcoding the changed /trimmed portions, and stitching the transcoded and old segments.


text:
Is there a list of input variables?
There is an article that says you can scale a video to be a multiple or fraction of the input size like this:
-vf "scale=iw/2:ih/2" to scale by half

Are there any other symbols for input variables in addition to iw and ih?
I've done multiple web searches and forum searches and I can't find anything that says what list of input values there are that are like ih and iw.
Thanks.

Welcome to Video Production! What should I do when someone answers my question?

Documentation for ffmpeg is at http://www.ffmpeg.org/documentation.html
scale here refers to the scale filter, whose documentation is at http://www.ffmpeg.org/ffmpeg-filters.html#scale-1
The list of variables available in this filter is listed at the bottom of the Options section.

I did try the documentation, but it was difficult to find the values. Are the values for scaling the only variables of this kind?  I was hoping for one that would give the frame rate of the video being read, or the bit rates of the video and audio of the file being read.

The variables available in a filter are specific to it. By convention, filters will use similar names for a parameter. But you need to consult an filter's doc for that info.


text:
FFmpeg help . Need to be able to zoom and pan on a video at specific points and then be able to zoom out and pan in a different area of said video
We are currently working with a 4k video file, and we need to be able to zoom in and pan the x- and y-axis to specific areas at specific times in the video to then be able to once more zoom out and pan again to a different area on a 1280×720 canvas.
Smooth transitions to ease in/out between the two commands would also be preferable.

Interesting, I would also like to know, Maybe by using the crop video filter:
ffmpeg -ss 33:40 -t 30 -i input.mp4 -vf "crop=width:hight:x:y'' part3.mp4
Creating several video parts and then joining them together.


text:
How does scaling work in ffmpeg?
I am new to FFmpeg. I just want to know how I could keep the original scale of the video. The original size of the video is that its frame width is 1820 while its frame height is 720. The original data rate is 1429 kbps, while the original total bitrate is 1589 kbps. The original frame rate is 30.00 frames/second.
How can I keep the original ones. Like I mean is that what should be my version of this below:
ffmpeg -i Happy.mp4 -vf scale=800:-1 -r 20 Lucky.gif

You see I am trying to make a gif while keeping the original properties of the video, so please help me.
Also, how does scaling in general work in FFmpeg?

Remove -vf scale=800:-1 to avoid rescaling. Remove -r 20 to avoid changing frame rate. You're transcoding from a stream in a MP4 to the GIF codec, so the bitrate will not remain the same, nor is there any sense in trying to keep it the same.
A stream is scaled by using the scale filter in a simple filterchain -vf or a complex filterchain -filter_complex or using the -s WIDTHxHEIGHT output option.


text:
FFMPEG - Apply opaque white with mask
This seems like a simple thing to do, but for my life I cannot find an answer that does this the way I need to.
Using a mask image, I want to make the white parts of the mask still be white (not transparent) in the video output, while the black pixels of the mask would not appear in the output. This would make it easier for a particle tracking software to work properly as there would be no confounding particles coming from the background+text. Like so:

I can almost achieve this using the code:
ffmpeg -i video.mp4 -loop 1 -i mask.png \
       -filter_complex "[0]split[m][a];[m][a]alphamerge[keyed]; \
              [1][keyed]overlay=eof_action=endall" video.mp4

However, the result is not an opaque white due to the overlay function, and I would further need to blur it as the clock is still very visible and becomes a new trackable particle.
So specific questions would be:

Is there a way to make the masked overlay be opaque white?

Alternatively, is there a way I could still use the code above but make just the white part of the mask blurred? (right now, it blurs everything if I add boxblur=5)

To get the outcome in the image, swap the order of the inputs.

Should have clarified better, but I want the outcome in the video, not the image.

Found the answer to this problem in here. The mask should be first be white + transparent, instead of black and white. New code would be:
ffmpeg -i video.mp4 -i mask.png \
-filter_complex "[0:v][1:v] overlay=0:0" -c:a copy \
output.mp4


text:
replace video track and keep everything else
I want to use FFmpeg to replace a certain video track but keep everything else including chapters, audio, fonts etc…
I know I should be using -map and -map_metadata but not sure how to do it.

I ended up using this and it worked
ffmpeg -i "original video file" -i "video file I want to insert" -map_metadata 0 -map 0 -map -0:v:0 -map 1:v:0 output.mkv

this tells ffmpeg to remove the 1st video track from the 1st file and insert the 1st video track from the second file while retaining everything else as is.

Are you sure this worked? Are you sure this hasn't reencoded it for you? I do not see any directve to copy without reencoding.

It works well for me, I didn't notice if it is reencoding or not because both videos always have the same codec in my use case, I will check later and update the answer. And there is no need to add audio and subtitles manually, they are automatically included by -map 0 this is important because I don't always know how many tracks will be in the file.

Although Farahats9 has said that their command worked, i have tried it out, and i believe that it is not doing what they think it should be doing. Namely it reencodes the data, when that was not what was needed. In addition to this, perhaps there was an error in copying the command, but they are mapping two video tracks with no audio tracks in sight.
ffmpeg -i 01.mkv -i 02.mkv -map_metadata 0 -map 1:v -map 0:a -c copy output.mkv

What this command does is it reads 01.mkv and 02.mkv, then it copies the video from 02.mkv (-map 1:v) and all audio tracks from 01.mkv (-map 0:a). If there are subtitle tracks that need to be copied, one would need to add -map 0:s, unfortunately ffmpeg will fail if there are no subtitle tags and you will try to copy them.
Also note -c copy, this instruct ffmpeg to copy without reencoding, which is definitely what is needed in this case.


text:
Learning FFmpeg: video from webcam, audio from headset mic
I've read through the 62-page FFmpeg doc. It's a great reference but not so good a teacher for someone new to video production. I joined the mail list but there seems to be no traffic on it. I hope here is where I can learn what I need to be productive.
Using ffmpeg -devices shows me that my Logitech c925e webcam is video0 and video1, but the command ffmpeg -list_devices true -f dshow -i dummy found on several web pages results in this output:

Unrecognized option 'list_devices'. Error splitting the argument list:
Option not found

Using
ffmpeg -i /dev/video0 -i pulse -c:v copy -c:a aac output.mp4

results in:

pulse: No such file or directory

How do I specify the webcam and headset mic to record a video?

dshow only applies on Windows. Are you on linux?

I apologize. Yes, I run linux and I had learned that dshow is only for Windows. I've saved a number of web pages with example for various ffmpeg tasks and most don't specify that they apply to one OS only.


text:
How to rip two dvd's on the same disc?
I'm trying to rip two movies on the same drive and I can't figure it out, handbrake keeps wanting to rip the first but not the second and I wanted to ask here if anyone knew how to rip the second movie, thank you.

By default Handbrake selects the longest duration track, it assumes this is the main content - usually a DVD has one main feature, and then may have a bunch of smaller tracks (extras, trailers, intros, etc).
Using the "Title" drop-down near the top left of screen, you should just be able to select the other track. You could also use the Add To Queue -> Add All option to add everything from the disc to the encode queue in one batch.


text:
Quality control in DTS to AAC(stereo) conversion using ffmpeg
I am trying to convert a DTS stream to AAC(stereo) using the following command:
ffmpeg -i "input.mkv"
-c:v copy
-c:a aac -q:a 2 -ac 2 -ar 48000
  "output.mp4"

[ffmpeg version : 3.4.8]
Here q:a 2 controls the output bitrate or quality of the audio stream (VBR). In FFmpeg docs its effective range is given as 0.1-2 where 2 is the best quality. But I have tried increasing this number up to 5 or 6 and the bitrate of output stream keeps increasing.
So I want to know the best possible way to convert the DTS   stream to AAC stream with the highest quality. For example, is there a number n  such that q:n will set the highest quality conversion?
Thanks.

The native AAC encoder goes upto ~260 kbps. Set it usising bitrate.

Thanks @Gyan  I will try it using bitrate.


text:
Are there any Windows video players that don't stutter when looping?
Title. I have spent the past few hours trying to smoothly loop a short 6-second animation I made in Blender. No matter what I use (VLC, Windows Movies and TV, heck I even tried installing MPlayer), there is always a few-frame delay. GIF format doesn't work for me because the animation is 60fps and not heavily compressed. Any ideas?
P.S. I have read about 30 pages mentioning Linux/Ubuntu players that don't have this stutter, but is there anything for Windows 10?

If all players show the problem, it is likely that the fault is either with the clip or your hardware. You could share the clip, this may help.

Sites like imgur and giphy work when looping and VLC is supposed to fix the issue in version 4.0, but imgur/giphy use compression and 4.0 hasn't been released yet. Here's imgur https://imgur.com/a/HQKBJ1E

As mentioned, if all players stutter for you then the issue probably isn't the players.
Check the clip to see if the last GOP is 'ragged'. Looping works best when the clip ends cleanly, that is, exactly at the end of a GOP.
ETA:
Many modern codecs are very good at minimizing file size and bandwidth, but one of the things they assume is that the material will be played straight ahead. A clip as short as yours may in fact have only one I-frame (complete frame), at the beginning.
Try encoding in an all-I-frame codec like MJPEG and see if you have better luck.

It isn't an issue with my animation; a gif format works when I convert it but it loses too much image quality to be viable.


text:
How to delete unused file parts that are not used in the FCPX timeline?
I want to clean up my hard disk and delete large unused GB files on my macbook. In the FCPX timeline I have  several hours of footage cut down into a 3-minute movie, with all short 2-second pieces.
I want to delete the folder with unused long hours files from my disk. How do I save the new short files that I want to keep into a folder?
So the old folder is filled with useless long hour files that I want to delete, and the new folder is filled with short good files that I want to keep.

i found the answer , it is not possible , how do i delete this question ?

it is possible , but not how i hoped with 1 menu click ,

Answer your own question so that others may learn.

You might want to look at this technique: https://larryjordan.com/articles/fcp-x-media-manage-your-projects/

As you already know you can't easily export just the used parts of your clips. But given FCPX uses XML there must be utilities to do that.
You can get something like clipexporter that will do it automatically.
However you can "share" your final project and then slice that up into shots -- I don't know why you want to do that slicing. AVcutty will slice AVI's automatically (windows OS only).
If disk space is a real problem and you don't mind losing your original footage, just share your final timeline.
Personally I buy an external HDD every two years (whatever $200 gets me) and archive all my personal projects to that. I then copy all the old projects from the old HDD to the new HDD.

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


text:
Getting a model to hit same exact mark
I am trying to see if there's a term for what I'm about to explain or a better way of doing this.  Basically, my company is filming an actor from the waist up for short, 1 or 2 sentence clips.  These clips need to be strung together to look as seamless as possible.
The main problem is that the model has to rely on muscle memory to remember where her head (specifically eyes, nose, mouth) and shoulders are in the frame.
My solution would be to use a mirror with a hole cut out for a camera lens.  On the mirror would be marks showing where her features should return to after she says something.
Is this typical, or is there a better way to do this? Or possibly to have another monitor with an overlay of the original position on it?
I'd just like to try to make sure she doesn't constantly look away from the camera to achieve this.
Any thoughts?

This seems incredibly difficult. The mirror-with-a-hole option is smart! I'd like to find out more about how this footage will be used and why the clips need to be strung together to look nearly seamless. As for a solution, one option would be to have 2 cameras on the actor:  one directly in front, and one off to the side. Cut back and forth between the two, so it appears seamless but disguises variations in her position.

Thanks @BrettFromLA, want to hear something funny?  We're good friends IRL! The footage would be used on a mobile device, basically talking to a person, so we can't have cuts like that...

@ntgCleaner  If all the footage has to be head-on, you could start each new segment with a quarter or eighth turn into the shot. Everything spoken will be face forward, with any small change disguised in the turn. As Brett says, anything else is likely to be imperfect -- even a very small discrepancy will be noticeable. Good luck, though.

@JimMack, Thank you.  I'll take this into consideration, though what I didn't mention is that we have this "idle" clip where the actor is "waiting" for you to talk to her and that's pretty static.

@ntgCleaner Hey Nathan! Small world!

@ntgCleaner  Consider also another old editor's trick. If you begin and end each segment with the idle pose, you can have the model obviously blink at the start of each new clip, maybe even blink and smile slightly right afterward.  Any such motion draws the eye and will mask other small changes (I would cut during the blink -- a jump cut).

@JimMack, Great suggestion.  I will add that to what we're doing here too!

@BrettFromLA, It certainly is!  I'll email you!

@ntgCleaner Great! One of these days, I'd love to work on a project together. (I've got a good app idea that you could build in one day.)

Have here revert to the same resting facial position whether it be a smile or neutral face at the end of each sentence. I'm not sure but I think you need them to go back to back with different variations depending on options the user selects since it's mobile. Maybe it would be a good idea to film all the iterations in entirety or stitch together with morph (avid has the best). Without more details it's like guessing what your favorite color is

Why do you have to do it in multiple takes? Is the problem remembering the lines? If so, you could use a TelePrompTer

@NoahL, It's not about remembering lines.  It's all a part of machine learning that we're adapting to use video responses, instead of TTS responses.  It's basically a canned response, but we're going to have hundreds (eventually thousands) of videos that should all feel like they line up together.

One option, if you don't mind the actor keeping her head still, is to be partially lying down. She could be in a recliner, leaning back, with her head against the headrest so she never moves it.  She would feel the headrest behind her so she could tell if she'd turned her head, and it wouldn't "drift" left or right because the friction of the headrest would keep it in place.
Of course you would want to shoot all her lines in as short a session as possible so she didn't get uncomfortable - like 5 minutes for all the lines and retakes.

You could have something like a headrest but for the model standing up—like a bit of foam on a C-Stand or something, which you could matte out of the final shot.

Great suggestion!, maybe an incline wall too?  just enough to lean on.  and @stib, also a great suggestion!

Back in the "golden age" of movie production, they had a "continuity person" or a "script supervisor" whose job it was to keep everything matched so that shots could be inter-cut without discontinuities.  They used a Polaroid camera to record exactly what the actor looked like, what facial expression, angle of gaze, tilt of head, how empty the cup or half-burnt the cigarette, etc. etc. etc.
These days with video, it is easier because we have instantly available video recordings (or still frame captures) which can be compared by half-dissolving them on a monitor to exactly match the new shot with a previous reference frame.

That's what I was thinking about too!  We're going to need a continuity person in there while filming at the very least.  Thank you! I will add this to the list!

(This idea is similar to the one in Richard Crowley's second paragraph.)  If you can view your spokesperson on a full-sized monitor, have her take her position, and then put small pieces of opaque tape on the screen:  one just to the left of her head, one just to the right of her head, one at the top of her head, one for each elbow, one for each hand, etc.  Then it will be easy to tell her how to realign after each take. (It would not be easy for her to realign at the end of each take.)

An oldie, but let me do some brainstorming.

If you are going to have thousands of clips, you definitely need to construct a rig, not only for the models but also for the lights and cameras.
For the model make one structure to be adapted on a comfortable chair that gently directs the orientation of the head.

Prepare a digital projector to shot a grid or a silhouette from one side of the model (be careful with the eyes) as a reference image.

Or prepare a set of orthogonal cameras, that can Livestream to a computer. If you are using windows, there is a small program called "Ghost win Real transparent windows" that can overlay one application over the other, a reference image. These cameras need to be also attached to the rig.

You could use a flat background, so you can align the clips in post pro.

Combine all the above.


text:
How to automatically enrich a video stream with dynamic overlay (text, images, ...)
In my company, we are currently looking for a solution to enrich a given video stream (which is being broadcasted via RTMP) from a remote webcam with some dynamic information, such as current date/time, special measure values which are available on a server, or the most recent entries in a database.
Basically we want to achieve a simple, dynamic on-screen display, as - for example - TV stations are using. The modified stream should then be restreamed, for example to be viewed in VLC Player or on YouTube.
So far, I came up with the following ideas:

Using OBS with some own scripts and plugins - that's disadvantageous because we would like to run the solution on a high-network performance server 24/7 without a GUI. Basically I'd need a fully command-line based version of OBS.
Using FFmpeg: I know that there are text filters available, but they are mainly static (or periodically polling a file with text) and don't allow for any design adjustments other than font, font size and color. It would be great if there was some way of overlaying a Webkit browser view onto the stream, because this would allow us to design the overlays in HTML5 and CSS and using WebSocket technology for updating the data.
The overlay could be captured with PhantomJS, but how should we unify it with the stream and would it be fast enough to render 30 FPS?

Are there additional (preferably open source) tools we could use? What would be the best strategy to implement this without buying expensive TV broadcasting software?

Look into zmq filter.

Any more info on this? I asked a similar question recently but I'm not getting any answers sadly

The studio version of DaVinci Resolve is $300, and includes Fusion and Python 2,3, and Lua scripting.  I'm not a software engineer, and never took a programming class in school, but I managed to figure out how to get an RSS parser to update and auto-upload a daily youtube video.

Have a look at CasparCG. It should be able to do what you want.
An alternative would be to create something using MLT and, say, Python, but that requires some programming, though it should be mostly assembling modules together.