text:
How can I sync audio in Premiere with a comp in After Effects?
I've got a track in Premiere that's composed of a lot of screen shot stills and there's an audio track that narrates across all of them.
As the narrator talks, I want to illustrate what she's saying with FX from AfterEffects. For instance, when she mentions a specific region in the image, I want to animate in a highlight like so:

But I can't figure out how to sync the audio with the effects. If I replace the one still image with my AE comp, then I have no audio and I don't know when I need to apply the highlight.
The only other alternative I can see is to finish the entire track and then import it, audio and video, into AE and apply the effects. But then I'll have a massive AE track with hundreds of layers, each one targeting a different part of the timeline, and that seems like it will be very hard to manage.
Is there a better workflow or technique that I could use here?

Go to the in and out points of the clip and add edits (ctrl / ⌘k) to the audio track, so that the section of audio underneath the image clip you want to replace is separate (don't worry you can rejoin it later).
Now select this audio and the image clip and replace with an After Effects comp (using the right-click menu and choosing Replace with after Effects composition). The new AE comp will have the selected video and audio clips in it, so you can synch up.
If you don't want your audio to be chopped up, just alt-click the audio that comes from the AE comp and delete it, then stretch the ends of the original audio clip to cover the gap, select the match-cut edit and hit delete and the added edit will disappear.

This is very helpful, thanks. Giving it a try now. But how do you rejoin cut clips. I've been looking all over the net and there doesn't seem to be any way to do this (even though it seems like a very basic bit of functionality). I'm still using CS5, if that is relevant.

Select the edit (i.e. the line that separates the two clips, as if you were trimming it), and hit delete. If it's a match-frame edit it will disappear.

In CS5, at least, this doesn't seem to work. I tried making a cut and then selecting that same spot, but it selects either the left or right sub-clip. I can't see how to select the cut itself.

Ok, I normally have the "allow Selection Tool to choose Roll and Ripple trims without modifier key" preference selected (it's in preferences>trim), so I just place the cursor over the cut and it turns to the roll tool. Otherwise you need the roll tool to select a cut (hit n). Then you can click the cut and it will go red. I'm pretty sure that behaviour goes back to the dim darks, pre CS even.

How come premiere/after effects doesn't do this automatically if you select a clip and audio underneath it, it's perfectly intuitive that they should be linked and in the same position in the comp. I have to google this issue every time I replace a sequence in premiere because I keep forgetting your answer :P

Because Adobe need to pay me lots of money to tell them how to design their programs so that they're not super frustrating.


text:
Exported video doesn't look like the preview within Adobe Premiere
I've edited some footage on Adobe premiere and did some color correction.
I applied some luts directly to my master clip to convert from Log to RGb, then I added a creative LUT in the Lumetri Color panel of the adjustment layer I created.
Once happy with the result I was having by playing my timeline, I selected the sequence, then did go to  File -> Export -> Media.
I selected the whole sequence and set some settings(basically, youtube export in 4K).
I check the preview, everything was fine.
But once the video rendering is finished, the video looks like if I didn't applied any LUTs(not sure, but it's the feeling).
What could I have done wrong?
Here is two screenshot:
Preview before export

Screenshot of the rendered result

It's the first time I have such kind of results, I applied in the past many LUTs and all went fine.
What could be wrong?

Be sure media encoder has the same LUTs in same order - otherwise it will take a different lut...
its a better way to browse to your lut in premiere - Media Encoder will use the same path and therefore doesn't screw up the correct lut.
Took a while for me to find out!

I finally found the solution. I did put my LUT in the premiere folder, but it seems it was also required to put them in the Adobe media encoder.
I was thinking it would reference them, but doesn't seems to be the case

That is super strange. I can tell you my workflow with luts has me using them on individual clips and on adjustment layers with the luts being stored in a folder unrelated to premiere and i haven't seen them not being applied when rendering through premiere or media encoder. I can't imagine the solution you found being the proper one based on my experience. Something is funky.

make sure that "Import sequences natively" is unchecked in AME preferences?

@Alex Yes, but what I did initially is put them directly in the folder of Adobe Premiere because it was allowing me to see directly in the list MY luts without having to browse them.

I had a problem with exporting as well. After almost two weeks of trial and error, we realized that using a picture before your footage causes the rest of the file to transform to the dimensions and the form of the picture. So, if the picture is very large, the whole sequence of video will be too large to see anymore. It would show up on the preview correctly, but wouldn't export how I wanted it to. So if you have a picture at the beginning, try reformatting it to a smaller size to work for the entire sequence?

There could be a lot of reasons:
1.)  Your GPU settings; are they set to global for color for both VLC and PPro?
2.)  Have you opened Bridge; and used the the Edit - > Color Settings - Synchronize Button - and make sure you are using Web Standard sRGB?
3.)  Unfortunately; there is no way; and trust me it took me a long time to figure this problem out; to guarantee that what you see is what they will see (your end user); due the fact that:

Broswers, such as chrome; Ignore embedded color profiles.
Color Settings via GPU; and Video Color Settings; in your GPU control panel; may be adjusted differently; causing your video to appear differently.

4.)  Lastly; in VLC, which is what you are using to preview your output, ensure all your filters are turned off under preferences... Image Control Effects, Saturation, Hue, Etc. There may be something turned on there.
You want to make sure:
Bridge is synced across all Adobe programs;  GPU settings (assuming NVidia) is set to have programs use a specific "profile" which matches".  Having "Let the program decided" will provide mixed results based on various players.
Understand lastly; that the file you have output is compressed; and the player; whatever player it is; may simply not interpret the colormetrics the same; it may ignore color profiles; it may use it's own standard sRGB, or Adobe RGB, profile by default, it's really a crapshoot.
It's very much like broadcasting a "perfect signal" across cable. The home user - and their TV; can be set up a million different ways; Cinema Mode, Dynamic, Power Saver, Night Time; thus-- what you see going out, is unlikely what the viewer sees on their display.
Annoying. I know.

Dude, before saying it could be normal, check the difference between the two screenshot. I agree some variation could occurs, but here it's not the same color at all. My LUT were not applied

clearly didn't look at the pictures

First. Uncheck Use Maximum Render Quality. This setting only applies to resizing of content on your sequences. (Unless you are in fact scaling in, but judging by your settings, your source and output are the same resolution).  This will only increase render time; and will provide no visible improvement.  - Second. Uncheck Render and Maximum Depth. Export a short sample with those two unchecked... see if that solves it.  Lastly; if that doesnt work; uncheck Match source. Change from Main to High for H.264. Also; I recommended CBR over VBR... For reasons I can't go into with the characters left.

And to add... I did look at the images. If VLC is using your GPU settings... or if you have image adjustments on under the VLC Tools Effects settings... your image could CERTAINLY look that different. It's not a question of if or if not the LUT was applied. Its how your player if displaying the file. Did you try playing in another player? Quicktime, Windows Media Player? Same Result?

@MartinAndrews i'm not sure what kindof screen you are running, but I can tell you that the most I've seen is a minute color change on output render due to compression. Not a total un-lutting.

I am familiar with LUT tables, and LUT cards, I own an Epic and use them frequently. I'm offering my best advice here. I also cut in premiere, although I stuck with CS6 because we own 36 seats and didn't want to go monthly. My monitors are calibrated with spyders. All I can say is I see the difference. I see the problem. I don't have answers other than what I thought you "could" check. Honestly; if what you are seeing in your export has your LUT applied, and then the file lacks those color attributes when playing back the output... I'm at a loss.

I'd add, that the final export (your output from AME/Premiere), would not rely on the LUT from that point forward. The LUT is only used in applications like Premier and AE to "interpret" the data, nothing is permanantley changed or saved/altered. It simply says treat x value as y based on the LUT in use (far more complicated but thats the jist). Therefor, my thoughts (original thoughts); still hold to a point. Does your output match your source pre-LUT - precisely? If you output your program with no LUT; how does it play back in VLC? Does it still match?

source: Stack Exchange

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

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

sort: votes


text:
Importing XML into Premiere Pro - numbered stills / image sequence
I'm trying to make life a bit easier by generating an XML file to quickly import a number of image sequences into a Premiere Pro project (PPro 2017.0.2 in case it matters).
It almost works - but when I import this XML file into premiere, it imports the first file in the sequence as a Still Image rather than an image sequence.
The path to the file is correct, and the first frame does show up just fine.
It feels like it's only a small change that's required, but I have not been able to find any information on it anywhere.
Since the (sample) XML is very short, I also included it here (the real file has a few hundred clips, they all behave the same way).
I tried manually importing an image sequence into premiere and exporting the result as FinalCut XML, but if I re-import that file, it also gets imported as a Still Image, so no help there.
<?xml version="1.0" encoding="UTF-8"?>
<xmeml version="4">
  <bin>
    <name>mpf_07 Images</name>
    <children>
      <bin>
        <name>Preview</name>
        <children>
          <clip id="mpf_07_01">
            <duration>229</duration>
            <in>0</in>
            <out>229</out>
            <name>mpf_07_01</name>
            <media>
              <video>
                <track>
                  <clipitem id="clipitem-Preview-mpf_07_01">
                    <name>clipitem-Preview-mpf_07_01</name>
                    <file id="file-Preview-mpf_07_01">
                      <name />
                      <pathurl>E:\mpf_07_01.0101.jpg</pathurl>
                      <rate>
                        <timebase>24</timebase>
                        <NTSC>FALSE</NTSC>
                      </rate>
                      <duration>320</duration>
                      <timecode>
                        <rate>
                          <timebase>24</timebase>
                          <ntsc>FALSE</ntsc>
                        </rate>
                        <string>00:00:00:00</string>
                        <frame>0</frame>
                        <displayformat>NDF</displayformat>
                        <reel>
                          <name />
                        </reel>
                      </timecode>
                      <media>
                        <video>
                          <samplecharacteristics>
                            <width>2048</width>
                            <height>1126</height>
                          </samplecharacteristics>
                        </video>
                      </media>
                    </file>
                  </clipitem>
                </track>
              </video>
            </media>
            <rate>
              <timebase>24</timebase>
              <NTSC>FALSE</NTSC>
            </rate>
          </clip>
        </children>
      </bin>
    </children>
  </bin>
</xmeml>

To clarify, this is the setting when using the Premiere UI to set it up, everything else works except Premiere doesn't see the Bin as an image sequence, but rather as a still image:

The answer is that this is not possible - at least as per the time of writing this answer, since the concept of "image sequence" does not exist in the XML spec Premiere utilizes - namely, XMEML version 4, also known as Final Cut Pro 7-style XML.

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


text:
Slow ffmpeg h264 performance software and NVENC
Platform: x79 i7 3970x @4.3GHz 64gb, GTX 1060 6gb, Windows 10.
I have a bunch of jpegs I need to scale and encode.
ffmpeg -f concat -safe 0 -i file.list -vf scale=1920:1440 -c:v h264 -b:v 5M name.mp4
ffmpeg -f concat -safe 0 -i file.list -vf scale=1920:1440 -c:v h264_nvenc -b:v 5M name.mp4

They both run at the almost the same FPS, libx264 ~10, nvenc ~8.5.
The only difference is cpu usage, libx264 is around 25% (regardless of the -threads setting) and nvenc around 8%.
I tried different settings but nothing changed appreciably.
I'd love to hear suggestions to speed it up.
All testing is done on a NVM with 3GB/s read speed to exclude possible drive performance.
FFPMG details:
ffmpeg version N-85266-g1229007 Copyright (c) 2000-2017 the FFmpeg developers

built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 59.100 / 55. 59.100
  libavcodec     57. 90.100 / 57. 90.100
  libavformat    57. 72.100 / 57. 72.100
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 83.100 /  6. 83.100
  libswscale      4.  7.100 /  4.  7.100
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100

With nvenc, try -vf hwupload_cuda,scale_npp=w=1920:h=1440:format=nv12:interp_algo=lanczos,hwdownload,format=nv12

Thanks, tried that already, but my build errors out with No such filter: 'scale_npp'.

scale_npp requires --enable-libnpp configure option.


text:
Can I add motion blur to make animation less jerky?
I am doing an animation, and if I do things the easy way, fast moving objects end up jerking across the screen, rather than appearing to move smoothly – in other words, I have a temporal aliasing problem. One possible solution is to oversample the animation and blend the frames back together at the output frame rate.
To illustrate, at 24 frames per second:
frame
  0    **
  1        **
  2            **
  3                **
 ...                   **

Oversampled at double speed (though realistically I'd probably oversample quite a bit more than double):
frame
  0    **
 0.6     **
  1        **
 1.5         **
  2            **
 2.5             **
  3                **
 3.5                 **
 ...                   **

Blended back to 24 frames per second (all mixed with the background):
frame
  0    ****
  1        ****
  2            ****
  3                ****
 ...                   ****

The problem with oversampling is that if I just use Premiere Elements 14, if I take the oversampled clip and slow it back down to regular speed, it appears to just skip frames rather than blending them.
This seems like something that ffmpeg probably does, but I've barely started trying to understand it, and my reading of the documentation, tutorials, and the forum messages that have turned up with web searches hasn't been enough to figure out what switches would do the job.
So, questions:

Is there an option in Premiere Elements 14 to blend frames from an oversampled clip, rather than just skipping frames?
If ffmpeg is the smart way to do this, what kind of switches do I need to use to get the job done?
Is there some other reasonably easy-to-use software that could do the frame blending instead of skipping them? (And if so, how do I use that?)

Even if there's a way to do it directly in Premiere Elements, answers to #2 and #3 are likely to be helpful to people who use other editors.

I just wanted to ask the same! Important question.

Please share how did you eventually solve the problem? I'm considering the tmix filter to evenly blend, say, 8 frames at 8x framerate. Then drop 7 out of 8 frames going to original framerate.

@Serge , I did the blur entirely within Premiere. It was pretty tedious,  however. I split the frames into groups (for example, 0, 1, 2, 3, 4), and overlay them at alpha 20%, 25%, 33%, 50%, and 100%, respectively. With some mathematical reasoning, or with experimentation, you can find that to equally blend an n frame oversample, the top later should have alpha 1 ÷ n, the next 1 ÷ (n - 1), . . .,  and the bottom layer 100%.

Although tmix may be a good general solution, I struggled with ffmpeg enough that I went ahead and did it entirely within Premiere. Maybe I should write up a full explanation of what I did, since this is now a "notable question", and a detailed explanation might be useful across all video editors if I explain it well. Doing it entirely within an editor may be preferable in some cases because it doesn't add a generation of codec artifacts and distortion to the video.

I can't test the ffmpeg method below now but it notionally does what you ask:
Let's say your source is 25 fps.
ffmpeg -i in.mp4 -vf minterpolate=50,tblend=all_mode=average,framestep=2 out.mp4

I'm looking at the manual, and I can see what some of this means: -i for the input file name, -vf to define a filtergraph, and no prefix for the output file name. But I'm not clear which of minterpolate, tblend, all_mode, average, and framestep are keywords. None of them show up on https://ffmpeg.org/ffmpeg.html . I'll test and tinker, but I need to generate an oversample file for the testing first.

minterpolate, tblend and framestep are filters. The first does the oversampling. The 2nd, the blended frames, and 3rd reduces the stream back to 25 fps.

That's a big help. That list of filters is not linked in context on https://ffmpeg.org/ffmpeg.html – only in the "see also" section at the end, where I didn't know to look for it.

I tried a test case, and got the error message: "[Parsed_minterpolate_0 @ 0000000001fa9000] Failed to configure input pad on Parsed_minterpolate_0
Error opening filters!" (The long hex number changes each time I run it.) Web searches for "Failed to configure input pad" have been unhelpful so far.

Need to see full console output. The hex numbers is the address of the filter in memory. Ignore that. Add -report and run. Share the report.

The actual clip is 1800 frames at 50 frames per second, or 36 seconds. I want to downsample that 36-to-one, so that it's just 50 frames, one second. But I used the exact command line you gave (except adding -report), along with minterpolate=25 and 100. This is the log file for minterpolate=50:
http://steve98052.powweb.com/debug/ffmpeg-20170415-121855.log

Newer ffmpeg since version 4.1 includes new tmix video filter that mixes N adjacent frames together using weights.
Now it is possible to do exactly what you have suggested: take an animation rendered with a N times higher framerate, merge every N frames together and lower framerate N times down to normal one, dropping out extra frames.
Here's a script I created to test this flow:
#!/bin/bash

let WIDTH=640
let HEIGHT=480

let MID=$WIDTH/2

let BUFFER=16
let FRAMERATE=30

let XRATE=$BUFFER\*$FRAMERATE

let DURATION=8
let FPERIOD=$XRATE\*$DURATION

ffmpeg \
  -filter_complex \
  " \
    color=white:${WIDTH}x${HEIGHT}:d=$DURATION:r=$XRATE,format=rgb24[bg];  \
    color=black:8x${HEIGHT}:d=$DURATION:r=$XRATE,format=rgb24[bar];  \
    [bg][bar]overlay=x='$MID + $MID * sin(8 * PI * n / $FPERIOD)':y=0:format=yuv444,format=yuv420p[motion]; \
    [motion]tmix=frames=$BUFFER \
  " \
  -c:v libx264  \
  -r $FRAMERATE  \
  -an  \
  -hide_banner \
  -y  \
  output.mp4

It creates an 8-seconds long animation of a black bar running left-right in a sine speed motion. See it on YouTube.
Thanks Gyan for the tip on achieving smooth animation by forcing full chroma sampling.

Excellent! I found a work-around within Premiere, but it was pretty tedious: split the frames into groups (for example, 0, 1, 2, 3, 4), and overlay them at alpha 20%, 25%, 33%, 50%, and 100%. Yours looks much better if I need to do this again. (And isn't there a badge for a good answer to an old question? )


text:
Multitrack video export in OBS Studio
OBS Studio composites various video inputs into a single video stream, but it lets users configure local recording on the side. Is it possible to save each video input separately, preferably as multiple channels within the same file or alternatively as separate files? I see multitrack audio options but am not sure whether the live export option only works for the composite video stream.

I have been looking for the same answer and found a thread in the OBS forum.
OBS does not support multitrack video support yet. The thread contains two workarounds:
Run two instances of OBS simultaneously
Directlink to post in thread

Open OBS Studio.
Sitting > hotkeys > Gave Start recording and Stop recording nice Hotkey (I use Ctrl+Shift+S and Ctrl+Shift+D)
Close then Open OBS Studio.
Open OBS Studio Again (Now you have 2 OBS Studio)
in the first OBS Go to sitting > Output > Recording > Select recording path
in the 2nd OBS Go to sitting > Output > Recording > Select recording path "Gave it another name"
Ex : Rec\FaceCame and Rec\GamePlay
Start the game and press Ctrl+Shift+S or the hotkey you pick

Drawbacks: A lot of manual steps to execute.
Increase the canvas size, place multiple videos side by side on it and split it in a video software afterwards
Directlink to post in thread
Drawbacks: No usable video output during recording.


text:
Adjustments on clip don't seem to take effect in multicam in Adobe Premiere
I have a multicam project in Adobe Premire CC. Unfortunately, one of the source clips used was from a different model of camera from the other two, so I need to make some adjustments to make it match the other two. It needs to be colour corrected a bit, and deinterlaced.
By pressing CTRL and double clicking on the multicam clip in the timeline, it opens up a timeline where the 3 cameras are in separate tracks. I then tried making adjustments the problematic camera clip. However, when I switch back to the timeline that has the multicam clip, all my adjustments don't seem to have taken effect. It looks like the original settings for that camera's clip.
How do I single out and edit one of the clips used in a multicam edit so that any adjustments will apply when viewed in the multicam view?


text:
Low quality video after exporting Still Image from Adobe Premiere Pro
I'm creating Audiobooks via Adobe Premiere Pro and to do so I've created an image via Adobe Photoshop (3200x1800) and applied that as the only still image in the Adobe Premiere workshop with the audio of the book playing along.
I've noticed that the quality of the video is very poor even if it is exported in 720p. How can I get the quality same as the original photo? Ps: I'm new to Adobe Premiere Pro.
This is the comparison between the original image and the quality of the frame from the exported video :

And my Export Settings are:

Firstly it looks like your sequence is 720x480, i.e. standard definition DV NTSC. This is the default sequence for Premiere, and has been since dinosaurs roamed the earth. Since it's about 1/16th the resolution of your image, not to mention that the pixels are non-square it's no wonder that there will be some quality loss.
If you're finishing at 720p (i.e. 1024*720) you should set your sequence to match. You'll have to either start a new sequence using the HDV 720p setting and copy everything across to it…

or cut everything from the timeline, change the sequence settings to match those in the picture below and paste everything back.

N.B make sure that as well as setting the right resolution you also choose square pixels for your pixel aspect ratio. To make your clips match the sequence size you can right-click them and choose Set to frame size. If there are a lot of similar clips you can do the first one, copy it, select the rest and choose edit>Paste Attributes.
Secondly, you're better off creating your image at the final resolution - you won't gain anything by working at a higher resolution than your final product. Working at the native resolution also gives you a good idea of how it's going to look. Photoshop has film and video presets, so choose the correct one when you're setting up your image file.

Out of curiosity, how are you taking those nice clean screenshots with the dropshadow? °v°

On a mac: Shift+cmd+4 to bring up the screen grabber tool, then hover over the window and hit the spacebar, which selects the window then hit return to take the screenshot. On windows there's a good tool called Greenshot that does a similar thing.


text:
ffmpeg: Why did my capture speed drop? (can no longer capture using same command)
I've been using the following command to capture video with ffmpeg for the past two months using my Blackmagic Intensity Pro 4K capture card:
ffmpeg -bm_v210 1 -rtbufsize 1500M -threads 4 -f decklink -i "Intensity Pro 4K@20" -c:a copy -c:v prores -profile:v 1 movie1.mov
This has been fine although occasionally I get a "Decklink input buffer overrun!" error, in which case I have to restart the capture.
However, starting yesterday, I am getting a "Desklink input buffer overrun!" error every time.
[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=479405.2kbits/s speed=0.849x
    Last message repeated 1 times
[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=480001.5kbits/s speed=0.842x
    Last message repeated 8 times
[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=480685.0kbits/s speed=0.842x
    Last message repeated 15 times

So it looks like my SSD is no longer fast enough to write the data-- but why?  It worked fine for the past two months.
I'm capturing onto a Sandisk Extreme Pro SSD (960 GB).  The drive only has 10GB of data on it.  I manually ran TRIM just a moment ago, but that didn't help.  The SanDisk SSD Dashboard shows it has "99%" life remaining.
I have also disabled OneDrive, Dropbox, and all other software I could find that might write to the system during capture.

Replace movie1.mov with -map 0 -f null - to see if it's disk-related. Note: no file will be saved, so this is just for testing purposes.

@Mulvya When I make the replacement, I get the same error.  What does that mean?

More info: When I capture to dnxhr (hq) instead of prores (lt), even though the dnxhr bitrate is ~850000 kbit/sec vs ~450000 kbit/sec for prores, dnxhr works, but not prores.

What's your ffmpeg version?

3.2.0.  Can't use the builds of 3.2.2 or 3.2.4 because the "enable_decklink" flag isn't turned on so the capture card doesn't work.

Since it also happens with -f null, but not with another Codec, the CPU load during the capture is a possible explanation. You did not mention it in your question. Is there any specific reason to use -threads 4? Try raising that number or omit the parameter.


text:
Warp points binding in After Effects
I need to do an effect In After Effects, and this it: Imagine I have a video of a dotted ball and another one with a talking mouth.
I want the ball have the talking mouth, but in way that whenever the ball opens and closes the mouth, the texture of the ball streching accordingly.
What I tried so far:
Created a mask on the mouth video.
Tracked and saved the motion of the upper and bottom lips into null objects.
Now I need an effect similar to Distort/Mesh Warp which is able use my saved motion on the ball (by binding to my null object as a parent).
I hope you understand what I'm trying to say.
Thanks in advance,
Mate

Puppet pin. https://helpx.adobe.com/after-effects/using/animating-puppet-tools.html

If you haven't found it yet, the Puppet tool likely what you're looking for.  You will create specific anchor points and you can keyframe their motion.
There's several tutorials out there for the right way to use the tool, but the best advice I can offer is to just play with it till you get the desired effect.
Personally I put more points where I DONT want it to move and use fewer points where I do.    To practice just create a solid and drop points on it, then grab a point and start moving it around.   It will become clear.


text:
What timing settings in VirtualDub should be used for VHS capture via EasyCap?
I want to digitize my VHS (PAL) home video tapes using an old video cassette player and EasyCap. Here is the photo of my EasyCap chips for reference:

After several days of reading how to perform video capture properly I found the VirtualDub most suitable. But I am completely lost in timing options. How to set them properly?

Please give some suggestions.
Especially unclear:

Is there sense in "Drop frames..." and "Insert null frames..." options or of I just can tick "Correct video timing..." while using "Sync audio to video..."?
On the other hand maybe that is better to sync video to audio?
Should I use audio/video sync at all?
Should I tick "Use audio timestamps..."?
Should I use automatic audio latency compensation?

I'll appreciate any advice on all the options of the timing dialog.

see 11.10 quite a usefull guide using Virtual Dub , if you want to convert PAL ignore the NSTC stuff https://www.youtube.com/watch?v=sn_TDa9zY1c&t=936s


text:
Final Cut Pro (FCPX)- Scrolling credits speed
How can I set the speed of scrolling credits? For example, I want to set a consistent duration of time that it takes from the time a name appears at the bottom of the screen to the time it takes for it to disappear of the top.
I don't want to just estimate it and drag the duration randomly until it LOOKS about right. I want to set a consistent scrolling speed regardless of the number of names I may have to scroll through.

The built-in Credit Tile from FCPX does not work like that. As far as I know, the scrolling speed is determined by the duration and the amount of text.
So if you have a long duration and few text the scrolling speed will be slow and vice versa short duration and lots of text fast scrolling. The Tile makes sure that all text is shown in the duration given.
You might consider to try and make your own copy with Motion 5. Left Click on the Tile >> "Open a copy in Motion" or go for a 3rd party Title or Generator.


text:
Collapse Transformation and Layer Styles (bug)
AE 2017.2 Release. I'll try to be as clear as possible:

I create a comp with two text layers:

I precompose those two text layers and set Nested Comp's Opacity to 30%:

In Nested Comp I apply Bevel and Emboss to the upper text (setting Shadow's and Highlight's Opacity to 0%, so B&E is effectively nonexistent):

In Containing Comp I switch Collapse Transformation On and upper text's opacity goes to 100%:

The end.

Add 1. It's not like upper text's Opacity is not affected by Nested Comp Opacity parameter. More like it becomes binary. If I set it to any value >0%, upper text will be 100%. If I set it to be 0%, upper text becomes 0%.

Add 2. In Layer Styles it's not about B&E but rather Blending Options. I may delete B&E and everything remains the same:

Add 3. Upper text's Opacity on the Containing Comp is not just 100%. It actually equals to the Fill Opacity parameter of Blending Options of Layer Styles of upper text in the Nested Comp:

Add 4. The whole issue disappears if a dummy Transform Effect is applied to the Nested Comp. Moreover, not only the Transform Effect may be dummy, you can actually SWITCH OFF all the effects for the Nested Comp but the very existence of that not-applied effect fixes the problem:

Due to the Add 4 I assume, it's a bug. Looking forward for your comments and explanations on how does it happen and further insights on how Collapse Transformation works and Layer Styles place in rendering hierarchy.
Thanks.

CS6 is the most recent version I have, but I'll try this in it later and see if I get similar behavior.  My best guess might be that it has something to do with how nested opacity is being calculated, there are some settings for this but I don't recall exactly where they are.  I've had a similar issue in the past when using comps imported from Photoshop or Illustrator and having odd behavior from nested opacity.  I remember I was able to work them out, but can't remember exactly how.

it's not a bug, it's the nature of collapse transformation switch, and when you've added this dummy effect you simply have disabled the collapse transformation.


text:
Creating a video from a text and an audio file
I have a text and an audio file. I want to create a video that simply displays the text with the audio file playing in the background.  I have to create many such videos, so I'm looking for an automated solution. What program/script  could achieve that?

So, subtitling, basically?

@Mulvya I guess that could be one approach, one difference being that we don't have any video as input.

ffmpeg can do it. Like Mulvya says I'd use subtitles if you want the te\xt to change over the course of the video.

ffmpeg can create a blank video as canvas. I mentioned subtitling because I assume you want the displayed text to sync with the audio. If not, you can scroll the text - see https://superuser.com/q/1273424/114058

The Amara website offers a free service that accepts audio and text files, synchronizes them, and lets you download a .srt file (synchronized SubTitle). Source of suggestion: Photography TutsPlus.
YouTube also accepts text files without time coding as SubTitle files and then you can enable auto-sync, you ought to be able to download a .srt file after processing is completed (not tested by me).

To do it manually (with some automation) try the following.
If you convert the text file to a .ass or .srt file then you can use the following commands:

ffmpeg.exe -i subtitles.srt subtitles.ass
ffmpeg.exe -i video.mp4 -vf ass=subtitles.ass video-new.mp4

That will show the words hardsubbed on the video synchronized with the audio. The video can be a moving image (video) or a static image.
Using a .ass editor allows more control over color and other font features than using .srt files.
Without using a SubTitle Format file you won't get synchronized text.
You can add the audio to a video and upload it to YouTube, then wait 15 minutes, after which YouTube will have used audio recognition to convert the audio to subtitles (with better than 80% accuracy). Then you can download the .srt file from the Video Manager and edit the SubTitle file by comparing it to your (presumably accurate) text file.
If you were hoping for a program that automatically syncs raw text files with audio and makes a video I have found nothing by Googling (outside of pay services).
There are a few questions over at SO, but they remain unanswered.
I will do some more searching and improve this answer in a few hours.
Not a one-mouseclick solution but it's about as automated as I can suggest, for free (other than Amara).
[I welcome Mulvya to edit and improve this answer.]

I wrote a Python script create a video that simply displays the text with the audio file playing in the background.
Example of file structure before running the script (in this example, the three pairs of audio file + transcript):
C:\Users\Franck\Documents\GitHub\code>tree /f
Folder PATH listing
C:.
│   generate_videos.py
│
├───audio
│       file1.wav
│       file2.wav
│       file3.wav
│
└───transcripts
        file1.txt
        file2.txt
        file3.txt

After running the script (output.mp4 is the concatenation of videos\*.mp4):
C:\Users\Franck\Documents\GitHub\code>tree /f
Folder PATH listing
C:.
│   generate_videos.py
│   output.mp4
│
├───audio
│       file1.wav
│       file2.wav
│       file3.wav
│
├───images
│       file1.png
│       file2.png
│       file3.png
│
├───transcripts
│       file1.txt
│       file2.txt
│       file3.txt
│
└───videos
        file1.mp4
        file2.mp4
        file3.mp4

Code:
from PIL import Image, ImageDraw, ImageFont
import textwrap
from pathlib import Path
import glob
import os
import shlex
import subprocess

def draw_multiple_line_text(image, text, font, text_color, text_start_height):
    '''
    From unutbu on [python PIL draw multiline text on image](https://stackoverflow.com/a/7698300/395857)
    '''
    draw = ImageDraw.Draw(image)
    image_width, image_height = image.size
    y_text = text_start_height
    lines = textwrap.wrap(text, width=40)
    for line in lines:
        line_width, line_height = font.getsize(line)
        draw.text(((image_width - line_width) / 2, y_text),
                  line, font=font, fill=text_color)
        y_text += line_height

def generate_image(transcript_filepath, image_filepath):
    '''

    '''
    #image_width
    image = Image.new('RGB', (800, 600), color = (0, 0, 0))
    fontsize = 30  # starting font size
    font = ImageFont.truetype("arial.ttf", fontsize)
    #text1 = "I try to add text at the bottom of image and actually I've done it, but in case of my text is longer then image width it is cut from both sides, to simplify I would like text to be in multiple lines if it is longer than image width."
    #text2 = "You could use textwrap.wrap to break text into a list of strings, each at most width characters long"

    text1 = open(transcript_filepath, 'r').read()
    text_color = (200, 200, 200)
    text_start_height = 0
    draw_multiple_line_text(image, text1, font, text_color, text_start_height)
    text2 = transcript_filepath
    draw_multiple_line_text(image, text2, font, text_color, 400)

    image.save(image_filepath)

def create_folder_if_not_exists(directory):
    '''
    Create the folder if it doesn't exist already.
    '''
    if not os.path.exists(directory):
        os.makedirs(directory)

def get_basename_without_extension(filepath):
    '''
    Getting the basename of the filepath without the extension
    E.g. 'data/formatted/movie_reviews.pickle' -> 'movie_reviews'
    '''
    return os.path.basename(os.path.splitext(filepath)[0])

def run_command(command):
    print('command: {0}'.format(command))
    process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
    while True:
        output = process.stdout.readline()
        print(output.strip())
        if output == b'' and process.poll() is not None:
            print('Done running the command.')
            break
        if output:
            print(output.strip())
    rc = process.poll()
    return rc

def main():
    '''
    Generate videos based on image+text
    '''
    transcript_file_extension = 'txt'
    speech_file_extension = 'wav'
    data_folder = 'transcripts'
    transcript_filepaths = list(glob.glob('{1}/**.{0}'.format(transcript_file_extension, data_folder)))
    transcript_filepaths.sort()
    speech_filepaths = list(glob.glob('{1}/**.{0}'.format(speech_file_extension, data_folder)))
    speech_filepaths.sort()
    print('transcript_filepaths: {0}'.format(transcript_filepaths))
    print('speech_filepaths: {0}'.format(speech_filepaths))

    output_folder = 'images'
    audio_folder = 'audio'
    video_output_folder = 'videos'
    create_folder_if_not_exists(output_folder)
    create_folder_if_not_exists(video_output_folder)
    output_folder = os.path.abspath(output_folder)
    print('output_folder: {0}'.format(output_folder))

    ffmpeg_concat_filepath = os.path.abspath('ffmpeg_concat_file.txt')
    ffmpeg_concat_file = open(ffmpeg_concat_filepath, 'w')
    for transcript_filepath  in transcript_filepaths:
        image_filename = get_basename_without_extension(transcript_filepath)
        image_filepath = os.path.join(output_folder, '{0}.png'.format(image_filename))
        generate_image(transcript_filepath, image_filepath)
        audio_filepath = os.path.join(audio_folder, '{0}.wav'.format(image_filename))
        video_filepath = os.path.join(video_output_folder, '{0}.mp4'.format(image_filename))
        os.system('ffmpeg -loop 1 -y -i {0} -i {2} -shortest {1}'.format(image_filepath, video_filepath, audio_filepath))
        ffmpeg_concat_file.write("file '{0}'\n".format(video_filepath))

    ffmpeg_concat_file.close()
    # [How to concatenate two MP4 files using FFmpeg?](https://stackoverflow.com/a/11175851/395857)
    # Note: the following command only works in Microsoft Windows.
    # See the Stack Exchange link for the command for Linux and Mac OS X
    os.system('ffmpeg -safe 0 -f concat -i {0} -c copy output.mp4'.format(ffmpeg_concat_filepath))

if __name__ == "__main__":
    main()
    #cProfile.run('main()') # if you want to do some profiling

Tested with:

Python 3.6
Pillow 5.3.0
ffmpeg version N-50911-g9efcfbe Copyright (c) 2000-2013 the FFmpeg developers, built on Mar 13 2013 21:26:48 with gcc 4.7.2 (GCC)
Windows 7 SP1 x64 Ultimate:

It should work on any operating system as long as ffmpeg is available (e.g., in the path on Microsoft Windows).
Video output example:


text:
Premiere 2017: First Keyframe Works Third Does Not
I am trying to change the scale and position of the video with keyframes in one of my videos. I turn on animation for both scale and position and it adds a keyframe. I make the adjustments in scale and position. It changes at that point of course. I move the play head to the next appropriate position and add another keyframe at the point, so that it stays the same up until that point. Then add a third set of keyframes in the next frame over. I try to make adjustments on both scale and position, nothing, absolutely nothing happens. It's ignoring any change I make, utterly and completely ignoring me. Nothing in the video preview changes. I can change the scale to 1000, it's like I'm not doing anything. What am I doing wrong here?


text:
How do I check codec for a video(mp4) in windows 10?
I'm devleoping an Android application. The official site lists all the codecs which are recommended for videos in Android platform.
I have 2 videos. One of them cannot be played by Android. I would like to check the codec for both files to see is the codec the problem.
What tool do I need in Windows 10 to check such property?

With ffprobe (included in the ffmpeg build), run
ffprobe yourvideo.ext

Or with MediaInfo, just use the GUI. If you set the display mode to Text you'll be able to see all the details for the streams.


text:
Crop a video with a moving crop area of fixed size
I have 3840 × 2160 videos where I want to cut out a moving person on stage (e.g. music video). The crop area is fixed (1080 x 1920). The problem is, the person is moving around. Not much, but in a 3min. video the crop area would move a couple of times.
Example: Frame 0-889, area(500,34,1080,1920) - Frame 950-1735, area (800,10,1080,1920) - Frame 1820-2530, area(600,40,1080,1920)
I gave some example numbers above. The solution should interpolate the crop area between Frame 889 and Frame 950; Frame 1735 and Frame 1820. Ideally I would like to define those areas in a visual editor which allows me to move a fixed size crop rectangle for the Frames and coordinates given above.
Optionally I could also figure out the crop areas without visual help and then use that data to crop the video in something like ffmpeg (although I don't know how to do this properly including the interpolation step).
I am on Linux and tried different video editors but their crop filters are not useful to solve my task. I have Windows available but no commercial editing software installed at the moment.
Thanks for the help!

related https://video.stackexchange.com/questions/15417/moving-crop-in-video has laborious but workable ffmpeg command line solution

I recommend AVISynth (a script based video editor for VirtualDub) and the DeShaker plugin.
You can learn a minimum amount about AVISynth and simply load DeShaker, have it stabilize on the person's body and it will follow them smoothly as they move.
You will have a finished product that is stabilized as a bonus.
You can also learn more about AVISynth, establish precise crops that are animated to follow the person, and get a perfect result (based on the quality of the input). You can set your moves with frame and pixel accuracy by typing numbers into the script and reloading the frame in VirtualDub.
It might be worth 5 mins. exploring those links to see if you want to try another video editor.
If one of the current video editors you've installed has image stabilization you can try it, but DeShaker is one of the better free ones (as of a year ago) that I've used.

Thanks Rob. I was hoping to preferably to get a solution for Linux as this is my much more powerful machine. My Windows PC is not really for video editing. Still, I will check AviSynth out if everything else fails.
In the meanwhile please suggest more stuff!

OK, while there may be a port of AVISynth the deshaker plugin isn't available for Linux. Can you use stabilization in the Linux Video Editors that you have, choose the person and crop to the moving frame?

I did a bit of research. Basically image stabilization is technically what I need but the way it is done (for example in Blender: https://www.youtube.com/watch?v=DpIXqAepfxY) is more of an automated approach. As I said, I want to move a fixed crop window around manually to crop out a person. If the person does not move I just define the crop window position for the first frame of the video.

If the person moves a lot I have to define new crop window positions for several frames of the video and the cropping is interpolated between the specified crop window positions. It seems really simple and I can do it with A LOT of effort using only ffmpeg. The same job could be done in seconds having a GUI that supports defining a fixed crop window and moving it around.

The best and easiest (and only) way that I have found to do this in Linux is to use OBS with the window size set to the desired crop output dimension. Add your video file as an input source, arrange the video output relative to the OBS window so that the desired rectangle that you wish to display initially is lined up with the OBS window, and start recording in OBS at the same time as you start playing the video. While the video plays, use your mouse to drag the video around in real time so that the part which you wish to view continues to line up with the OBS window. If you have a slow moving subject and you only need a couple of slow pans within a 3-minute window, this works really well. It can be a little more annoying if your crop area shifts around a lot.
If you only need to crop in one dimension (e.g. 1920x1080 to 1080x1080) then you can temporarily lock your mouse pointer to move in one direction only, at least on X (not sure about Wayland). For example:
xinput set-prop 'Microsoft Corporation Microsoft ® Laser Mouse 6000' 'Coordinate Transformation Matrix' 1 0 1 0 0 0 0 0 1

is what I use with my hardware (the idea for this comes from https://askubuntu.com/questions/1153697/screen-detection-and-mouse-reverse-x-y-axis). To get back normal mouse movement:
xinput set-prop 'Microsoft Corporation Microsoft ® Laser Mouse 6000' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1

Of course the details will differ if you have a different mouse. This is useful while recording your crop because it prevents you from dragging the video in any direction other than the direction in which you need to pan.


text:
Video to Panorama in Android
Is it possible to convert video to panorama in android using  FFmpeg?
I have found below command from this https://github.com/ibaaj/awesome-OpenSourcePhotography#video-to-panorama
ffmpeg -i video.avi -r 5 -qscale 3  tmp/images/image-%3d.jpg
pto_gen -o tmp/hugin.pto tmp/images/*.jpg
cpfind --multirow -o tmp/hugin.pto tmp/hugin.pto
cpclean -o tmp/hugin.pto tmp/hugin.pto
linefind -o tmp/hugin.pto tmp/hugin.pto
autooptimiser -a -l -s -m -o tmp/hugin.pto tmp/hugin.pto
pano_modify -o tmp/hugin.pto --center --fov=AUTO --canvas=70% tmp/hugin.pto
pto2mk -o tmp/hugin.mk -p tmp/output tmp/hugin.pto
make -f tmp/hugin.mk all

Any idea how can I use this for Android or any other helpful command, it would be very helpful !!!

While that command may well be the right one to convert video to panorama in ffmpeg, you don't get ffmpeg by default on Android.
You can get a version from the SourceForge FFmpeg for Android project, but I'll warn you that compilation may have its challenges. We have an old question on StackOverflow on this. Top answer there gives some detail on these headings:

Build static libraries of ffmpeg for Android.
Create a dynamic library wrapping ffmpeg functionality using the Android NDK.
Use the ffmpeg-wrapping dynamic library from your java sources.

Any questions on the technical implementation / compilation aspects should be raised over on Stack Overflow (or possibly Android Stack Exchange)


text:
Does a Content Management Tool/Software exist to help me quickly build video trailers from a large collection of content?
Does such a program exist whereby I can query a keyword in a database of all my transcript and audio content, and all instances/time-stamps will be displayed? The goal is to prevent my editors from having to do the manual search, as we need to create many trailers very quickly each week.

Convert all your transcriptions to subtitles (with timestamps) and save as one big plain text file, then just use ordinary search tools. This question more related to software for movies catalog.
But I think, you want not just keywords. You want "hot" places from your videos. I experimented a bit with automatic trailer creation:

https://files.catbox.moe/afoyu2.mp4
https://files.catbox.moe/hu91ip.mp4 (same, but other song)
https://files.catbox.moe/mzhc7v.mp4 (funny bug: credits as scene)

There videos was produced in full automatic way, including scene selection, beat matching and re-timing. As you can see, this is very cool, but not perfect. So, I not finished this tool.


text:
Optimizing HTML5 video for best quality
I have a 3 minute video I'd like to embed on a web page. The problem is that despite best efforts, the file size of the video ends up being over 30 mb. I would like the size to be near 10 mb. I have over-compressed the video to the point where it is barely watchable.
So far I have used fast start encoding, compressed bit rate and smaller frame size as low as 300 width, exported for web including moving the moov atom to the beginning. Still the file is too large.
How does one get hd mp4 video small enough for web without losing an insane amount of quality?

10MB for 3 mins == 450 kbps. For live-action 720p that's not achievable. Recommended rate is 5 times that.

For lowest bitrate you have to use H265 codec, see here https://stackoverflow.com/questions/36382568/h-265-hevc-web-browser-support
In any case you need to spend as much processing power on the encoding as you can. Also you should use software encoders instead of NVENC, Quicksync or similar. There are many tuts out there
https://superuser.com/questions/582198/how-can-i-get-high-quality-low-size-mp4s-like-the-lol-release-group But to be honest i dont really get your question. Please edit your question and add some details so it can be acutally answered

You might be able to encode it as a black and white gif and package the audio separate.  Probably would be annoying to keep them in sync though.  Honestly I don't think what you are stating is possible.


text:
Video Broadcast within Retirement Community
We would like to send a video/audio stream from an auditorium in our retirement community to a large screen TV in the health center.  They are in the same building but probably 500 feet apart.  There is good wi-fi coverage in both areas. We need something VERY user friendly on the health center (receiving side) of the operation.  Anything more complicated that switching the input on the big screen TV from one HDMI port to another is not going to work.  We have demonstrated the potential of doing it using YouTube Live and with a couple of "baby monitor" apps using an Android TV Box but that is too complicated on the health center side. Any suggestions would be appreciated.

Thanks to all for helpful suggestions. We ultimately pulled a coax cable between the auditorium and health center.

Short of doing a live stream which you've already ruled out, your best bet sounds like it will be a fiber link between the auditorium and the health center.  HD-SDI has a technical limit of around 100 meters, so you would need a booster in between to make use of SDI (which would be a coax run and possibly a bit cheaper).  Neither of these options can be completed for less than a few hundred dollars in cabling alone.
Other than that, your best bet is to provide training on how to use the live stream and possibly setup a device like a roku that can be adjusted remotely over the network by someone in the main auditorium.

Another option would be the use of video over IP, but it tends to be pricey (~$1000). You are basically sending video over the network. I used Avenview with good results. I cannot remember the latency though.
https://www.bhphotovideo.com/c/product/1235919-REG/avenview_hdm_c6mwip_set_h264_hdmi_over_ip.html

I would use Youtube live with a Raspberry pi set to autostart chromium in kiosk mode on boot.
See: https://raspberrypi.stackexchange.com/questions/69204/open-chromium-full-screen-on-start-up


text:
How to auto-tune the audio track of a video file to produce a modified video file
I would like to auto-tune the audio track of an mp4 video file. I know I can convert the mp4 to mp3 first and auto-tune the mp3 file, but I want the output to be a modified video clip with the audio track tuned to a note. Specifically, I want to loop a <1 second video clip of my dog barking and auto-tune each cut to different notes to create a melody track that will remain in sync with the video track, so it looks like my dog is singing happy birthday. I can't be the first brain-dead dog lover to have attempted this.

Start by looping the video so that you get the timing right - so you end up with that single bark hitting the correct beats for the song.
For the audio, you'll want to then use a DAW or other tool to pitch shift each sample to the desired new pitch. All major DAWs have this functionality built in, or you could use the Pitch Shift effect in Audacity if you like a free option. If you don't know the notes for Happy Birthday, you can easily find them online.
Very quick and easy to do, and you don't need any expensive software or hardware to do it.
And you are right - you are not the first. There are hundreds of these online. Check out this example.


text:
Make the object stay at the centre of the video
I have a video with person moving around. But I need to make it so that the camera focuses on the person and ultimately the person stays in the center of the shot.

What have you tried so far? Can you re-shoot? What are your source and target resolutions? Can you share a sample of the video? What tools do you know how to use?

You can make it with tracking. Find static point on person, and track from it. Better to use chest (not face), because it is more stable, when person moving.
But you need to understand, that you will have some empty space on the edges of the screen after that. If it is not recorded on green/blue screen, you may need to zoom your video. Because of that you will lose some quality.

no thats exactly what Im looking for. not worried about the empty space at all. I already tried tracking, but getting the points I couldnt really understand how to center the person. Could you elaborate on that a little?

You can see example here: https://youtu.be/kc7wPh6dKfs


text:
what is the best library for converting video to multiple resolutions
as I see there are two popular ffmpeg and avconv, for example what uses youtube or other popular platforms for converting one video to multiple resolutions, subtitles and audio tracks etc...are these libraries okay or is there a better solution?

Are you trying to build software to help others convert videos or are you converting your own video? If it is the latter, can you be more specific about what criteria you define "okay" and "better"? If it is the former, that is off topic here and better suited to one of the other SE sites.

You have answered your own question on this one, ffmpeg is the de facto standard for this type of work, there really isn't any reason to use anything else. It's free, fast, works on almost any imaginable platform, and can be easily integrated into almost any workflow because of how many ways it can be called. You can even use it to apply special filters.
If you aren't comfortable using the command line, there are many GUI interfaces available that will give you a nice interface for using ffmpeg. One good example is myffmpeg but there are many others.
If your goal is to always convert using the same settings though, the absolute best way to achieve this is to create a simple ffmpeg batch/shell script (depend on which OS you're using) that you simply run that script and it does its thing - no effort once it's set up the first time.


text:
Stream from ffmpeg with seeking
I have a complex ffmpeg command that generates video from several static sources.  I would like to be able to seek forward and backward through the output without waiting for the whole file to be generated.  That way, I can check that it's going to come out right without waiting so long.  Is that possible with streaming?
I've managed to stream the output with the following command, but when I connect to the resulting stream using ffplay, seeking is unreliable.  I'm able to move forward and backward a little bit, but the audio-video sync is frequently off and the video often stops playing or goes into slow motion.  Is there something else I need to do in order to make this work smoothly?
Thanks.
/usr/bin/ffmpeg \
  -ss 161.4 \
  -t 5 \
  -i mono.m4a \
  -ss 182.9 \
  -t 5 \
  -i mono.m4a \
  -ss 265.4 \
  -t 5 \
  -i mono.m4a \
  -ss 2982.4 \
  -t 5 \
  -i mono.m4a \
  -ss 2959 \
  -t 5 \
  -i 0-1.mov \
  -ss 2965 \
  -t 5 \
  -i 0-1.mov \
  -ss 2970 \
  -t 5 \
  -i 0-1.mov \
  -ss 3023 \
  -t 5 \
  -i 0-1.mov \
  -ss 3056.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3074.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3051 \
  -t 5 \
  -i 0-1.mov \
  -ss 3088 \
  -t 5 \
  -i 0-1.mov \
  -ss 3121.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3231.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3236.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3333.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3338.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3472.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3449 \
  -t 5 \
  -i 0-1.mov \
  -ss 3455 \
  -t 5 \
  -i 0-1.mov \
  -ss 3488.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3656.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3633 \
  -t 5 \
  -i 0-1.mov \
  -ss 3641 \
  -t 5 \
  -i 0-1.mov \
  -ss 3674.4 \
  -t 4 \
  -i mono.m4a \
  -ss 3650 \
  -t 5 \
  -i 0-1.mov \
  -ss 3666 \
  -t 5 \
  -i 0-1.mov \
  -ss 3699.4 \
  -t 5 \
  -i mono.m4a \
  -ss 3741.4 \
  -t 5 \
  -i mono.m4a \
  -ss 133 \
  -t 5 \
  -i 0-1.mov \
  -ss 154.5 \
  -t 5 \
  -i 0-1.mov \
  -ss 200 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 237 \
  -t 5 \
  -i 0-1.mov \
  -ss 2917 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 2954 \
  -t 5 \
  -i 0-1.mov \
  -ss 2922 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 2959 \
  -t 5 \
  -i 0-1.mov \
  -ss 2928 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 2965 \
  -t 5 \
  -i 0-1.mov \
  -ss 2970 \
  -t 5 \
  -i 0-1.mov \
  -ss 2933 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3023 \
  -t 5 \
  -i 0-1.mov \
  -ss 2986 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3028 \
  -t 5 \
  -i 0-1.mov \
  -ss 2991 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3046 \
  -t 5 \
  -i 0-1.mov \
  -ss 3009 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3051 \
  -t 5 \
  -i 0-1.mov \
  -ss 3014 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3088 \
  -t 5 \
  -i 0-1.mov \
  -ss 3051 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3093 \
  -t 5 \
  -i 0-1.mov \
  -ss 3056 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3203 \
  -t 5 \
  -i 0-1.mov \
  -ss 3166 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3171 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3208 \
  -t 5 \
  -i 0-1.mov \
  -ss 3268 \
  -t 5 \
  -i Encode_1080P_35.mp4 \
  -ss 3305 \
  -t 5 \
  -i 0-1.mov \
  -ss 3310 \
  -t 5 \
  -i 0-1.mov \
  -ss 3444 \
  -t 5 \
  -i 0-1.mov \
  -ss 3449 \
  -t 5 \
  -i 0-1.mov \
  -ss 3455 \
  -t 5 \
  -i 0-1.mov \
  -ss 3460 \
  -t 5 \
  -i 0-1.mov \
  -ss 3628 \
  -t 5 \
  -i 0-1.mov \
  -ss 3633 \
  -t 5 \
  -i 0-1.mov \
  -ss 3641 \
  -t 5 \
  -i 0-1.mov \
  -ss 3646 \
  -t 4 \
  -i 0-1.mov \
  -ss 3650 \
  -t 5 \
  -i 0-1.mov \
  -ss 3666 \
  -t 5 \
  -i 0-1.mov \
  -ss 3671 \
  -t 5 \
  -i 0-1.mov \
  -ss 3713 \
  -t 5 \
  -i 0-1.mov \
  -framerate 29.97002997002997 \
  -loop 1 \
  -i biolisp_logo.png \
  -filter_complex "[text-overlay-4][0:0][text-overlay-7][1:0][text-overlay-15][2:0][text-overlay-23][3:0][text-overlay-31][4:0][text-overlay-39][5:0][text-overlay-47][6:0][text-overlay-55][7:0][text-overlay-63][8:0][text-overlay-71][9:0][text-overlay-79][10:0][text-overlay-87][11:0][text-overlay-95][12:0][text-overlay-103][13:0][text-overlay-111][14:0][text-overlay-119][15:0][text-overlay-122][16:0][text-overlay-125][17:0][text-overlay-128][18:0][text-overlay-131][19:0][text-overlay-134][20:0][text-overlay-137][21:0][text-overlay-140][22:0][text-overlay-143][23:0][text-overlay-146][24:0][text-overlay-149][25:0][text-overlay-152][26:0][text-overlay-155][27:0][text-overlay-158][28:0] concat=n=29:v=1:a=1 [concat-video-0][concat-audio-1]; [29:1] fps=29.97002997002997 [change-fps-2]; [change-fps-2] scale=w=1920:h=1080 [scale-3]; [scale-3] drawtext=text='ms cv 2m13s-2.m39.5s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:02\\\\:13\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-4]; [30:1] fps=29.97002997002997 [change-fps-5]; [change-fps-5] scale=w=1920:h=1080 [scale-6]; [scale-6] drawtext=text='ms cv 2m13s-2.m39.5s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:02\\\\:34\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-7]; [31:1] fps=29.97002997002997 [change-fps-8]; [change-fps-8] scale=w=1920:h=1080 [scale-9]; [32:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-10]; [crop-10] scale=w=384.:h=216. [scale-11]; [scale-9][scale-11] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-12]; [overlay-top-right-12] fps=29.97002997002997 [change-fps-13]; [change-fps-13] scale=w=1920:h=1080 [scale-14]; [scale-14] drawtext=text='ms p 3m57s-49m19s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:03\\\\:57\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-15]; [33:1] fps=29.97002997002997 [change-fps-16]; [change-fps-16] scale=w=1920:h=1080 [scale-17]; [34:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-18]; [crop-18] scale=w=384.:h=216. [scale-19]; [scale-17][scale-19] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-20]; [overlay-top-right-20] fps=29.97002997002997 [change-fps-21]; [change-fps-21] scale=w=1920:h=1080 [scale-22]; [scale-22] drawtext=text='ms p 3m57s-49m19s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:49\\\\:14\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-23]; [35:1] fps=29.97002997002997 [change-fps-24]; [change-fps-24] scale=w=1920:h=1080 [scale-25]; [36:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-26]; [crop-26] scale=w=384.:h=216. [scale-27]; [scale-25][scale-27] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-28]; [overlay-top-right-28] fps=29.97002997002997 [change-fps-29]; [change-fps-29] scale=w=1920:h=1080 [scale-30]; [scale-30] drawtext=text='ca p 49m19s-49m30s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:49\\\\:19\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-31]; [37:1] fps=29.97002997002997 [change-fps-32]; [change-fps-32] scale=w=1920:h=1080 [scale-33]; [38:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-34]; [crop-34] scale=w=384.:h=216. [scale-35]; [scale-33][scale-35] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-36]; [overlay-top-right-36] fps=29.97002997002997 [change-fps-37]; [change-fps-37] scale=w=1920:h=1080 [scale-38]; [scale-38] drawtext=text='ca p 49m19s-49m30s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:49\\\\:25\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-39]; [39:1] fps=29.97002997002997 [change-fps-40]; [change-fps-40] scale=w=1920:h=1080 [scale-41]; [40:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-42]; [crop-42] scale=w=384.:h=216. [scale-43]; [scale-41][scale-43] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-44]; [overlay-top-right-44] fps=29.97002997002997 [change-fps-45]; [change-fps-45] scale=w=1920:h=1080 [scale-46]; [scale-46] drawtext=text='ca pinv 49m30s-50m28s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:49\\\\:30\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-47]; [41:1] fps=29.97002997002997 [change-fps-48]; [change-fps-48] scale=w=1920:h=1080 [scale-49]; [42:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-50]; [crop-50] scale=w=384.:h=216. [scale-51]; [scale-49][scale-51] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-52]; [overlay-top-right-52] fps=29.97002997002997 [change-fps-53]; [change-fps-53] scale=w=1920:h=1080 [scale-54]; [scale-54] drawtext=text='ca pinv 49m30s-50m28s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:50\\\\:23\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-55]; [43:1] fps=29.97002997002997 [change-fps-56]; [change-fps-56] scale=w=1920:h=1080 [scale-57]; [44:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-58]; [crop-58] scale=w=384.:h=216. [scale-59]; [scale-57][scale-59] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-60]; [overlay-top-right-60] fps=29.97002997002997 [change-fps-61]; [change-fps-61] scale=w=1920:h=1080 [scale-62]; [scale-62] drawtext=text='ms pinv 50m28s-50m51s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:50\\\\:28\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-63]; [45:1] fps=29.97002997002997 [change-fps-64]; [change-fps-64] scale=w=1920:h=1080 [scale-65]; [46:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-66]; [crop-66] scale=w=384.:h=216. [scale-67]; [scale-65][scale-67] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-68]; [overlay-top-right-68] fps=29.97002997002997 [change-fps-69]; [change-fps-69] scale=w=1920:h=1080 [scale-70]; [scale-70] drawtext=text='ms pinv 50m28s-50m51s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:50\\\\:46\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-71]; [47:1] fps=29.97002997002997 [change-fps-72]; [change-fps-72] scale=w=1920:h=1080 [scale-73]; [48:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-74]; [crop-74] scale=w=384.:h=216. [scale-75]; [scale-73][scale-75] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-76]; [overlay-top-right-76] fps=29.97002997002997 [change-fps-77]; [change-fps-77] scale=w=1920:h=1080 [scale-78]; [scale-78] drawtext=text='ca pinv 50m51s-51m33s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:50\\\\:51\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-79]; [49:1] fps=29.97002997002997 [change-fps-80]; [change-fps-80] scale=w=1920:h=1080 [scale-81]; [50:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-82]; [crop-82] scale=w=384.:h=216. [scale-83]; [scale-81][scale-83] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-84]; [overlay-top-right-84] fps=29.97002997002997 [change-fps-85]; [change-fps-85] scale=w=1920:h=1080 [scale-86]; [scale-86] drawtext=text='ca pinv 50m51s-51m33s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:51\\\\:28\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-87]; [51:1] fps=29.97002997002997 [change-fps-88]; [change-fps-88] scale=w=1920:h=1080 [scale-89]; [52:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-90]; [crop-90] scale=w=384.:h=216. [scale-91]; [scale-89][scale-91] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-92]; [overlay-top-right-92] fps=29.97002997002997 [change-fps-93]; [change-fps-93] scale=w=1920:h=1080 [scale-94]; [scale-94] drawtext=text='ms pinv 51m33s-53m28s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:51\\\\:33\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-95]; [53:1] fps=29.97002997002997 [change-fps-96]; [change-fps-96] scale=w=1920:h=1080 [scale-97]; [54:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-98]; [crop-98] scale=w=384.:h=216. [scale-99]; [scale-97][scale-99] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-100]; [overlay-top-right-100] fps=29.97002997002997 [change-fps-101]; [change-fps-101] scale=w=1920:h=1080 [scale-102]; [scale-102] drawtext=text='ms pinv 51m33s-53m28s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:53\\\\:23\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-103]; [55:1] fps=29.97002997002997 [change-fps-104]; [change-fps-104] scale=w=1920:h=1080 [scale-105]; [56:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-106]; [crop-106] scale=w=384.:h=216. [scale-107]; [scale-105][scale-107] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-108]; [overlay-top-right-108] fps=29.97002997002997 [change-fps-109]; [change-fps-109] scale=w=1920:h=1080 [scale-110]; [scale-110] drawtext=text='ms p 53m28s-55m10s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:53\\\\:28\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-111]; [57:1] fps=29.97002997002997 [change-fps-112]; [change-fps-112] scale=w=1920:h=1080 [scale-113]; [58:1] crop=w=in_w*.9:h=in_h*.9:x=in_w*0.:y=in_h*0. [crop-114]; [crop-114] scale=w=384.:h=216. [scale-115]; [scale-113][scale-115] overlay=main_w-overlay_w:0:shortest=1 [overlay-top-right-116]; [overlay-top-right-116] fps=29.97002997002997 [change-fps-117]; [change-fps-117] scale=w=1920:h=1080 [scale-118]; [scale-118] drawtext=text='ms p 53m28s-55m10s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:55\\\\:05\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-119]; [59:1] fps=29.97002997002997 [change-fps-120]; [change-fps-120] scale=w=1920:h=1080 [scale-121]; [scale-121] drawtext=text='ms cv 55m10s-57m29s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:55\\\\:10\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-122]; [60:1] fps=29.97002997002997 [change-fps-123]; [change-fps-123] scale=w=1920:h=1080 [scale-124]; [scale-124] drawtext=text='ms cv 55m10s-57m29s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:57\\\\:24\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-125]; [61:1] fps=29.97002997002997 [change-fps-126]; [change-fps-126] scale=w=1920:h=1080 [scale-127]; [scale-127] drawtext=text='ca cv 57m29s-57m40s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:57\\\\:29\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-128]; [62:1] fps=29.97002997002997 [change-fps-129]; [change-fps-129] scale=w=1920:h=1080 [scale-130]; [scale-130] drawtext=text='ca cv 57m29s-57m40s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:57\\\\:35\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-131]; [63:1] fps=29.97002997002997 [change-fps-132]; [change-fps-132] scale=w=1920:h=1080 [scale-133]; [scale-133] drawtext=text='ms cv 57m40s-1h0m33s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=00\\\\:57\\\\:40\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-134]; [64:1] fps=29.97002997002997 [change-fps-135]; [change-fps-135] scale=w=1920:h=1080 [scale-136]; [scale-136] drawtext=text='ms cv 57m40s-1h0m33s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:00\\\\:28\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-137]; [65:1] fps=29.97002997002997 [change-fps-138]; [change-fps-138] scale=w=1920:h=1080 [scale-139]; [scale-139] drawtext=text='ca cv 1h0m33s-1h0m46s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:00\\\\:33\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-140]; [66:1] fps=29.97002997002997 [change-fps-141]; [change-fps-141] scale=w=1920:h=1080 [scale-142]; [scale-142] drawtext=text='ca cv 1h0m33s-1h0m46s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:00\\\\:41\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-143]; [67:1] fps=29.97002997002997 [change-fps-144]; [change-fps-144] scale=w=1920:h=1080 [scale-145]; [scale-145] drawtext=text='ms cv 1h0m46s-1h0m50s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:00\\\\:46\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-146]; [68:1] fps=29.97002997002997 [change-fps-147]; [change-fps-147] scale=w=1920:h=1080 [scale-148]; [scale-148] drawtext=text='ca cv 1h0m50s-1h1m11s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:00\\\\:50\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-149]; [69:1] fps=29.97002997002997 [change-fps-150]; [change-fps-150] scale=w=1920:h=1080 [scale-151]; [scale-151] drawtext=text='ca cv 1h0m50s-1h1m11s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:01\\\\:06\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-152]; [70:1] fps=29.97002997002997 [change-fps-153]; [change-fps-153] scale=w=1920:h=1080 [scale-154]; [scale-154] drawtext=text='ms cv 1h1m11s-1h1m58s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:01\\\\:11\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-155]; [71:1] fps=29.97002997002997 [change-fps-156]; [change-fps-156] scale=w=1920:h=1080 [scale-157]; [scale-157] drawtext=text='ms cv 1h1m11s-1h1m58s\\ ':borderw=5:expansion=strftime:font=DroidSans:fontcolor=white:fontsize=36:rate=30000/1001:timecode=01\\\\:01\\\\:53\\\\:00:x=(main_w-tw)/2:y=main_h-th [text-overlay-158]; [72:v] fade=out:st=15:d=1:alpha=1 [fade-out-159]; [concat-video-0][fade-out-159] overlay=main_w-overlay_w-50:main_h-overlay_h-50:shortest=1 [overlay-watermark-160]" \
  -strict -2 \
  -map [overlay-watermark-160] \
  -map [concat-audio-1] \
  -codec:a aac \
  -codec:v libx264 \
  -preset ultrafast \
  -tune zerolatency \
  -y \
  -f mpegts \
  udp://127.0.0.1:1234

Happy new year!  Is there any way to make this work?   is so powerful that I hope that it is, but I just can't figure out how to make it work smoothly.


text:
Banding in waveform monitor
What does it mean if my Lumetri Scopes in Premiere Pro look like this?
There is some kind of "banding" in it. Does it happen when you color grade 8-bit footage?

The "banding" you are seeing is the levels of the three channels that make up a video signal. It isn't an 8-bit artifact. In the upper left and bottom scopes, the white/grey trace is the luminance channel and the others are the color difference channels. In the histogram in the upper right, you are seeing the white and RGB values.
You can switch between different scope configurations.

Thank you for the answer, but I was talking about the banding (which looks like some values are missing) found in the waveform.  You can see a picture here: https://ibb.co/mttevR

Can you share the video frame that corresponds to that waveform?

@Bob Including a copy of the original frame where this was taken is invaluable for determining if banding is an issue. What kind of video are you working with? Is it footage recorded on a camcorder or a composition of digital created elements (lower thirds, title screens, infographics, etc...)

Sorry, I don't have the originale frame anymore but I can post something similar.  https://imgur.com/a/fQzye https://imgur.com/a/W3BFi


text:
Proper time stretch in After Effects for multiple layers
So when I stretch the two chosen layers, they do stretch together, but the collision point shifts so I need to correct it manually.
How can I simultaneously change the length of the layers without messing the scene?
I've tried to show the things in this picture. Thanks!

It works the way it is supposed to. You just need to realign the layers afterwards.

Well, I know. I'm just hoping there is another way to adjust the length of the composition.

I'm having a play and a look at documentation to see if there is another way...

Seems like a job for a script.

You can nest this two clips in new composition, and change time starching on it.

I know, but it's not smart since there are some After Effects transitions.
I mean, if I stretch the layers, the transition just goes slower.
But in your case it will be just drop in framerate.

I don't know if it works, but you may add a marker on each layer when the transition without stretching starts pressing this key: *
Then, I think the markers should be paired with the original frames and then you just have to match them in the timeline again.
Sorry if this doesn't work or there's a better way, it's just an idea.


text:
Is it possible to get a better quality by increase the frame rate, even if I don't have the raw footage?
Is it possible to improve the quality of a movie just be rediting the finished product to have more fps?  Or do you still need the original raw footage to actually increase the quality?

This doesn't really make sense as written.  I assume you meant to ask if it is possible to increase the quality by increasing the BIT rate, which is something completely different from frame rate.  The frame rate is how many frames are played per second and increasing it would just make your video play faster (like it was being fast forwarded.)

computer… zoom in… enhance

If you are really talking about frame rate, then if you tried to invent new frames while maintaining the speed of playback, your quality level would go down (likely significantly).
If you didn't mind it looking like someone was watching a fast forwarded version of your video, increasing the frame rate should have some increase in quality as long as the frame rate isn't too high already due to the dithering impact over time resulting in better apparent quality (this is why still frames of video don't look as good as playing the video.)
If you actually meant bit rate (the amount of data being used to encode each frame), then no, all that would happen on the re-encode is that your existing problems would be preserved with less additional quality loss, but it is impossible to restore quality by increasing bitrate.  The information is already lost.  In fact, if you do highly lossy compression more than once, the quality loss starts growing exponentially as the random noise destroys the effectiveness of compression algorithms.
This is why renders are run from the highest available source so that the compression can make the best use of real information without having to waste bits on trying to compress noise.

Sorry, I'm still an amature at this, ans only have at my disposal home based applications.  So when I say FPS, thats exactly what I mean, not the bit rate.  Also I have increased the bit rate to 120000 kbps with 2 pass encoding, at 120 fps, and the video quality does not change, only difference is the file gets larger.

@ANonymous no need to apologize.  We all had to start at the beginning.  It just wasn't very clear what you were trying to ask since contextually it didn't make a lot of sense since changing the frame rate would drastically impact the way the footage plays so I can't think of many cases where it would be meaningfully useful.  Unfortunately, video is a CICO process (crap in, crap out).  If you start with something with quality issues, there isn't a whole lot you can do to increase the quality, certainly not without trade offs.


text:
How to record a video with different background without having a green screen?
I'm wondering if there is a way to change the video background while recording with a different background , It doesn't have to be chosen by me , Just a different background .
Is that's possible?

If it's a static shot, you can try using a difference matte. It doesn't work as well as a chroma key, but it might do the trick. The idea is you'll set up After Effects to key out everythi

Just remember to use a tripod and get a clean plate before you start filming the action!

If you looking for way to do it in post-prodaction, than you can do it by rotoscoping in AE. But it depends on what you shooting.
If you specking about "while recording", then just record in different place :)


text:
FFMPEG - Youtube MP4 video stream loop?
its my first post on this community.
Im from brazil, so im sorry for bad english.
I am using FFMPEG on Ubuntu VPS for streaming 24/7 mp4 video on youtube.
I am using this code:

VBR="2500k"
FPS="30"
QUAL="veryfast"
YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2"

SOURCE="/stream/video.mp4"
KEY="my_Secret_key"

ffmpeg \
    -i "$SOURCE" -deinterlace \
    -vcodec libx264 -pix_fmt yuv420p -preset $QUAL -r $FPS -g $(($FPS * 2)) -b:v $VBR \
    -acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k \
    -f flv "$YOUTUBE_URL/$KEY"

With this code, i have sucesfully put my stream online, but i need that the code loop and repeat the mp4 file, because i dont want to make a 24h mp4 file.
How can i make that this mp4 file (SOURCE="/stream/video.mp4") repeat itself infinitely?
I dont have imagens and notthing, i only put a mp4 file on stream!
Ideas?

You should be able to achieve this by prepending the source with stream_loop parameter and -1 value specifying indefinite looping.
Replace
-i "$SOURCE" -deinterlace \

with
-stream_loop -1 -i "$SOURCE" -deinterlace \

See https://ffmpeg.org/ffmpeg.html#Main-options


text:
How can I stream to a single YouTube channel, from multiple remote locations?
We want to do talk show live streamed to youtube where participants are in different geographical locations. We are looking for a software that allows us to split the screen between participants while showing a presentation on the background.
Now I know poeple are going to suggest Google's Hangouts on Air, and I know Hangouts on Air can do something like that but we are looking for a high quality live stream that can presrve the image and audio quality, just like a 'normal' live stream, except with multiple participants. Do you have any solution?
Thanks

How many participants are you talking about?  If you only want two participants, something simple can be hacked to do the job.  If you want 8 participants, you will need a more sophisticated setup.


text:
Looking for the fastest way shoot video on a camera and review it on a laptop
Our freestyle ski team is looking to invest in a system that allows athletes to immediately review their competition ski runs with their coach after they get to the bottom. While they're playing back the video of their run, the camera will need to be available to shoot the next athlete. In an ideal world, a tethered camera would record directly and automatically to a folder on a laptop so that the athlete would be able to replay their run independently of the camera, leaving the camera free to keep recording the next athlete.
I've experimented with a Canon 5Dmk4 and the EOS Utility, which seems to automatically detect when the camera finishes shooting a video, and then prompts you the option of saving that file to your computer. This involves a lot of manual interaction, can take 30+ seconds to transfer a minute of footage, and ties up the camera during that transfer, preventing you from shooting the next skier if the transfer isn't completed in time. It's also a bit tedious and requires a coordinated effort between the videographer and the coach doing the video review.
We are hoping to invest in the GH5 due to it's slow motion capabilities, but am uncertain if this will pose new challenges (i.e. file sizes), or offer any solutions.
I'm familiar with the Ninja recording monitors being able to save to an SSD, but I'm curious of a solution that would allow me to instantly view recorded footage on a laptop, while leaving the camera free to shoot more video. I'm open to anything that would allow us to achieve what we're after as cheaply as possible!

What is your budget?

@MichaelLiebman Our budget is as small as we can get away with. We're a non-profit organization with limited resources, but we'd like to be effective at getting the job done, as it would be a very important training tool. Ideally, under $1000 for the replay solution, excluding the camera body and lenses. We're willing to consider anything, even hotswapping SD cards from the camera to a laptop and from the laptop back to the camera between every run, but I feel like there has to be a better way.

look for a camera that can trigger recording on/off by it's HDMI output (used when you have something like a atomos recorder), not sure which current models can/can't but any dslr that's marketed as a video camera should do it.
run a hdmi cable to a hdmi capture box ( I think HDMI can do 15m without a repeater )
hook the capture box to a laptop
use software that will start recording when the camera presses record.
use software like stream to me
coaches can use another device ( tablet/laptop etc ) to display the recorded run

Using this setup you can have the camera recording runs while multiple people can stream any previously recorded run at the same time. As long as the software can detect the record flag from the camera the whole process is automatic, playback can begin for a file the moment after recording has stopped.
I'd recommend a black magic thunderbolt ultra studio mini
for the capture box, it comes with Media Express software which will auto trigger when it receives a record flag from the camera. The mini is bus powered & small so it's keeping your cables down & means everything is running of batteries if needed
Stream to me is an iOS app for the playback but the companion app Serve to me is Windows & Mac & that lives on the laptop watching the folder that Media Express records too. Alternatively I'm sure a bit of google will find an android substitute for this part of the link.
All that reasonable cheap, meets the need of recording while simultaneously playback (actually a pretty hard thing to do without spending big bucks) & once it's setup should take care of itself, while you concentrate on practice.

This is a pretty low-tech solution but it would definitely work: buy more than one memory card for the camera and just switch it between runs - shouldn't take more than a few seconds to get the camera recording again and then you just pop the card with the previous run on into your laptop and then it's just how long it takes to find the file before you can review the run.
As I said, low tech but it definitely works and is practically idiot-proof.
EDIT: Ah - sorry, you already suggested this yourself in your first comment! Apologies :D

If the camera allows you to output live HDMI while recording, an idea would be to capture the live video with a capture card, and then record every athlet on the computer.
A capture card doesn't cost too much, there are USB HDMI external capture cards that are pretty good even for a low price.
For recording, I'm not sure of what softwares are available, but it wouldn't be difficult to go completely custom. A simple script of one line could launch ffmpeg and record the input interface until you stop the recording. This way you can have a h.264 output file ready as soon as you stop recording. I would recommend using two computers for this, one handling the recording and the other one for playback. You could easily access files from the other computer using the network.
This solution would require manually starting and stopping the recording on the computer, but if you want to avoid the time needed to transfer the recording from the camera to the computer, I'm not sure if there are other solutions (without paying for a complete live replay system, which would be an overkill other than a waste of money).

Thanks! I'm not quite sold on this solution due to the multiple computer setup, hardware, and the level of manual coordination needed to start and stop recordings. It may be too much for this particular environment, which is fast paced and chaotic with potentially inclement weather. The more simple the better.


text:
Dropping Frames when Playing back Sped Up Footage in PP CC 2018
My playback of footage that is sped up 500% is awful in PP CC 2018 on my desktop but fine on my laptop. My CPU utilization is not maxing out on my desktop but I'm still dropping 90% of my frames. I'm using 1/4 resolution for playback, have plenty of memory allocated to PP, have memory usage set to "performance", etc.
Desktop specs:
6700K
32GB 3200Mhz
GTX1070
My laptops specs are not as good but seems to be fine with the playback of the exact same timeline. I'm curious if there's something I'm forgetting or not thinking about.

If you haven't done so already, you might need to pre-render the time adjusted clip.
Select your clip(s) and from the top menu bar select "Sequence > Render Selection".
The green bar above your tracks will indicate that the selection should run at real time during playback as you have preview files store in memory.


text:
How do I increase my exported video quality?
It is my first time using Final Cut Pro and I am having trouble exporting a high quality video. The clips I used to make the video are QuickTime screen recording and they are very high quality, and when I was exporting the video, I got these settings:

Which I believe it's pretty good as well, but the outputted video is only 839.4M rather than 8G and it's not as good as its original resolution and it has big black paddings around the video. Here's what it looks like in full screen in my QuickTime player:

I've googled it and it seems like I should modify the project's settings Final Cut Pro X: Modify a project’s settings

3: https://support.apple.com/kb/PH12526?locale=en_US&viewlocale=en_US "Final Cut Pro X: Modify a project’s settings", but this thing is greyed out in my FCPX:

Here's a screenshot of my editor window:

So, what exactly should I do to output my video with at least its original quality?
Thanks guys.

to get the best quality export from FCPX choose the option from the CODEC "Source = ProRes 422" and then see if that gives you any better results.
Alternatively you can choose the option
Format = Computer then export from there


text:
Reproducing speed graph curve outside of After Effects
I used After Effects recently to design easing for objects in an interactive graphic I'll be programming. For example, I animated a square's position and mask using the standard eases in the graph editor. Below shows the mask's speed graph which I'm interested in reproducing.

I'm fairly confident that eases on value graphs are standard cubic Bezier curves, so position is a piece of cake. However, speed graphs behave differently: pushing both keyframes to zero makes a bell-shaped speed curve, not zero. It needs to do this preserve the total amount of change (the integral), which means that it is not a cubic Bezier curve, not directly anyways.
Does anyone know how speed curves work mathematically?

It dawned on me that it's probably the derivative of a position cubic Bezier, and with some testing it looks like the influence translates to the horizontal influence in position, and the speed at each keyframes corresponds to the slope of the position influence handle.

You can see a numeric representation of the influence and speed by selecting a keyframe using the keyboard shortcut shift-cmd/ctrl-k. The handles are indeed cubic Béziers, so the derivative should give you the speed. You can access the speed of a property with expressions, so you could actually animate something to follow the speed of that property.


text:
Recording Presentations with OBS and a Bluetooth Mic
I want to use OBS to record meetup presentations.
I can grab the laptop screen for the video and am looking for an inexpensive wireless Bluetooth microphone for the audio.
I managed to use OBS to successfully record a presentation with a cheap BT headset+mic.
I'm looking for recommendations for a BT Lavalier microphone that transmits directly to the laptop.
Most of the wireless (Lavalier) microphones that I've come across come with transmitter+receiver elements. Some of these, like the Sony ECMAW4 Wireless Microphone, apparently use Bluetooth to communicate between the two TX and RX.
However, the laptop has a built in BT receiver (and presumable more power than a battery operated device too) so I do not understand why such BT, RX-only mics are not common.

You could get a Sennheiser ClipMic, plug it into a cell phone, and then establish a Bluetooth connection between the cell phone and the Laptop.  I can't give any first-hand recommendations on best practices for Bluetooth audio streaming for live mics (I think most professionals prefer dedicated RF equipment to BT), but it does seem like there are options available.  Here's one that came up in a google search for "cell phone bluetooth PC audio microphone" without quotes.

I'll have to see if phones can be connected as BT audio peripherals to my laptop. I did not consider this option.


text:
transparent drawing software
I want to ask if there's a software that I could pint on it with my graphics tablet where I draw on it but it has no background!!
Actually, the case that I want to make some tutorials that I need to draw or write some texts live over some pdf, slides or even some running applications.
The now way is to print screen then go and write over it on a drawing software and finally append it to my video with the voice explanation.
What I want is to run my pdf, slides or any local or web app and start a software that makes my screen as a board but transparent so while recording my screen I could write over on anywhere with my graphics tablet.

Not 100% sure that I understand your question, but if you're after software that lets you paint over other applications, try alchemy: http://al.chemy.org/


text:
Film ideas at 1 million fps?
So I have access to a camera that can capture up to 5 million frames per second, that actually has decent resolution (924 x 768 pixels). One drawback is it will only capture 180 frames (less than 0.2 milli-seconds at 1 million frames per second). People use these camera for capturing cracks or bullets, for example. My question is, if you could use this camera for anything you liked, what would you film?

Lucky you. How is the camera triggered? That would be fairly crucial I'd imagine

Make sure you post a link to whatever you do!

Hi James, this type of question is better suited for a forum about video production rather than a Q&A site like Stackexchange, this type of question does not have a clear answer and is only encouraging long opinion based discussion. Which is great in a forum but not so great on a Q&A site :)

Very true. Feel free to close.

Liquids are always an interesting subject matter. Maybe sparkling water.

Stuff blowing up obviously.
Something fragile being hit very hard with a hammer.
A lot of electricity suddenly flowing through something that probably shouldn't have a lot of electricity flowing through it.
Fireworks.
hitting explosive fireworks in a crystal vase with a hammer that is connected to a high voltage electricity supply


text:
We have two teams across Asia and Europe, and plan to show a movie. Is there a way to connect them users to a common platform?
We want to see if there is a way where the users can login to a common platform and view the movie at the same time.
Is there any open source platform where they can join a movie screening online? Similar to how gotomeetings are done.

YouTube and Twitch are the most popular platforms for both Live Broadcast and not live broadcasts.
I'll recommend live streaming the video and making it private on twitch to prevent any copyright case.
For YouTube streaming you have to have some conditions fulfilled.
YOUTUBE TERMS FOR GOING LIVE