text:
Make a transformed element remain static while other elements animate
We have a record button that needs to transform the middle element from a circle at rest, to a square when recording, as the outside rings pulse. We are having trouble getting the square to stay static while the rest of the button animates.
Seeking advice on how get the circle to stay a square while recording and turn back to a circle when done. Working in After Effects to generate Lottie code. Code below. Thank you!
{
  "v": "5.6.5",
  "fr": 60,
  "ip": 0,
  "op": 20,
  "w": 56,
  "h": 56,
  "nm": "Record_button",
  "ddd": 0,
  "assets": [],
  "layers": [
    {
      "ddd": 0,
      "ind": 1,
      "ty": 4,
      "nm": "Record_inner_ring",
      "sr": 1,
      "ks": {
        "o": {
          "a": 0,
          "k": 100,
          "ix": 11
        },
        "r": {
          "a": 0,
          "k": 0,
          "ix": 10
        },
        "p": {
          "a": 0,
          "k": [
            28,
            28,
            0
          ],
          "ix": 2
        },
        "a": {
          "a": 0,
          "k": [
            0,
            0,
            0
          ],
          "ix": 1
        },
        "s": {
          "a": 0,
          "k": [
            100,
            100,
            100
          ],
          "ix": 6
        }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "ind": 0,
              "ty": "sh",
              "ix": 1,
              "ks": {
                "a": 1,
                "k": [
                  {
                    "i": {
                      "x": 0.667,
                      "y": 1
                    },
                    "o": {
                      "x": 0.333,
                      "y": 0
                    },
                    "t": 0,
                    "s": [
                      {
                        "i": [
                          [
                            -10.99,
                            0
                          ],
                          [
                            0,
                            -10.99
                          ],
                          [
                            10.99,
                            0
                          ],
                          [
                            0,
                            10.99
                          ]
                        ],
                        "o": [
                          [
                            10.99,
                            0
                          ],
                          [
                            0,
                            10.99
                          ],
                          [
                            -10.99,
                            0
                          ],
                          [
                            0,
                            -10.99
                          ]
                        ],
                        "v": [
                          [
                            0,
                            -19.9
                          ],
                          [
                            19.9,
                            0
                          ],
                          [
                            0,
                            19.9
                          ],
                          [
                            -19.9,
                            0
                          ]
                        ],
                        "c": true
                      }
                    ]
                  },
                  {
                    "t": 19,
                    "s": [
                      {
                        "i": [
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ]
                        ],
                        "o": [
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ],
                          [
                            0,
                            0
                          ]
                        ],
                        "v": [
                          [
                            0,
                            -19.9
                          ],
                          [
                            19.9,
                            0
                          ],
                          [
                            0,
                            19.9
                          ],
                          [
                            -19.9,
                            0
                          ]
                        ],
                        "c": true
                      }
                    ]
                  }
                ],
                "ix": 2
              },
              "nm": "Path 1",
              "mn": "ADBE Vector Shape - Group",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [
                  0.961000025272,
                  0.753000020981,
                  0.259000003338,
                  1
                ],
                "ix": 4
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 5
              },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 2
              },
              "a": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 1
              },
              "s": {
                "a": 0,
                "k": [
                  100,
                  100
                ],
                "ix": 3
              },
              "r": {
                "a": 0,
                "k": 45,
                "ix": 6
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 7
              },
              "sk": {
                "a": 0,
                "k": 0,
                "ix": 4
              },
              "sa": {
                "a": 0,
                "k": 0,
                "ix": 5
              },
              "nm": "Transform"
            }
          ],
          "nm": "Record_inner_ring",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 21,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 2,
      "ty": 4,
      "nm": "Record_grey_inner_ring",
      "sr": 1,
      "ks": {
        "o": {
          "a": 0,
          "k": 100,
          "ix": 11
        },
        "r": {
          "a": 0,
          "k": 0,
          "ix": 10
        },
        "p": {
          "a": 0,
          "k": [
            28,
            28,
            0
          ],
          "ix": 2
        },
        "a": {
          "a": 0,
          "k": [
            0,
            0,
            0
          ],
          "ix": 1
        },
        "s": {
          "a": 1,
          "k": [
            {
              "i": {
                "x": [
                  0.833,
                  0.833,
                  0.833
                ],
                "y": [
                  0.833,
                  0.833,
                  1
                ]
              },
              "o": {
                "x": [
                  0.167,
                  0.167,
                  0.167
                ],
                "y": [
                  0.167,
                  0.167,
                  0
                ]
              },
              "t": 0,
              "s": [
                100,
                100,
                100
              ]
            },
            {
              "t": 19,
              "s": [
                92,
                92,
                100
              ]
            }
          ],
          "ix": 6
        }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "d": 1,
              "ty": "el",
              "s": {
                "a": 0,
                "k": [
                  48,
                  48
                ],
                "ix": 2
              },
              "p": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 3
              },
              "nm": "Ellipse Path 1",
              "mn": "ADBE Vector Shape - Ellipse",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [
                  0.224000006914,
                  0.224000006914,
                  0.224000006914,
                  1
                ],
                "ix": 4
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 5
              },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 2
              },
              "a": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 1
              },
              "s": {
                "a": 0,
                "k": [
                  100,
                  100
                ],
                "ix": 3
              },
              "r": {
                "a": 0,
                "k": 0,
                "ix": 6
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 7
              },
              "sk": {
                "a": 0,
                "k": 0,
                "ix": 4
              },
              "sa": {
                "a": 0,
                "k": 0,
                "ix": 5
              },
              "nm": "Transform"
            }
          ],
          "nm": "Record_inner_ring",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 22,
      "st": 0,
      "bm": 0
    },
    {
      "ddd": 0,
      "ind": 3,
      "ty": 4,
      "nm": "Record_white_outer_ring",
      "sr": 1,
      "ks": {
        "o": {
          "a": 0,
          "k": 100,
          "ix": 11
        },
        "r": {
          "a": 0,
          "k": 0,
          "ix": 10
        },
        "p": {
          "a": 0,
          "k": [
            28,
            28,
            0
          ],
          "ix": 2
        },
        "a": {
          "a": 0,
          "k": [
            0,
            0,
            0
          ],
          "ix": 1
        },
        "s": {
          "a": 1,
          "k": [
            {
              "i": {
                "x": [
                  0.833,
                  0.833,
                  0.833
                ],
                "y": [
                  0.833,
                  0.833,
                  1
                ]
              },
              "o": {
                "x": [
                  0.167,
                  0.167,
                  0.167
                ],
                "y": [
                  0.167,
                  0.167,
                  0
                ]
              },
              "t": 0,
              "s": [
                100,
                100,
                100
              ]
            },
            {
              "t": 19,
              "s": [
                92,
                92,
                100
              ]
            }
          ],
          "ix": 6
        }
      },
      "ao": 0,
      "shapes": [
        {
          "ty": "gr",
          "it": [
            {
              "d": 1,
              "ty": "el",
              "s": {
                "a": 0,
                "k": [
                  56,
                  56
                ],
                "ix": 2
              },
              "p": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 3
              },
              "nm": "Ellipse Path 1",
              "mn": "ADBE Vector Shape - Ellipse",
              "hd": false
            },
            {
              "ty": "fl",
              "c": {
                "a": 0,
                "k": [
                  0.847000002861,
                  0.847000002861,
                  0.847000002861,
                  1
                ],
                "ix": 4
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 5
              },
              "r": 1,
              "bm": 0,
              "nm": "Fill 1",
              "mn": "ADBE Vector Graphic - Fill",
              "hd": false
            },
            {
              "ty": "tr",
              "p": {
                "a": 0,
                "k": [
                  0.083,
                  -0.163
                ],
                "ix": 2
              },
              "a": {
                "a": 0,
                "k": [
                  0,
                  0
                ],
                "ix": 1
              },
              "s": {
                "a": 0,
                "k": [
                  100,
                  100
                ],
                "ix": 3
              },
              "r": {
                "a": 0,
                "k": 0,
                "ix": 6
              },
              "o": {
                "a": 0,
                "k": 100,
                "ix": 7
              },
              "sk": {
                "a": 0,
                "k": 0,
                "ix": 4
              },
              "sa": {
                "a": 0,
                "k": 0,
                "ix": 5
              },
              "nm": "Transform"
            }
          ],
          "nm": "Record_outer_ring",
          "np": 2,
          "cix": 2,
          "bm": 0,
          "ix": 1,
          "mn": "ADBE Vector Group",
          "hd": false
        }
      ],
      "ip": 0,
      "op": 22,
      "st": 0,
      "bm": 0
    }
  ],
  "markers": []
}


text:
How to get fisheye lens border in shot?
I'm about to buy a camcorder with a 62mm diameter lens, and I'd like to get a fisheye with it.
I would like my shots to end up like shown here, with a little bit of lens border in shot.
I can't seem to find an answer to this question online, does the lens diameter have to me smaller than my camera to achieve this or is it some kind of special lens?
Thanks!!

I can't answer your question about the lenses, but any good editing software should let you apply a fisheye effect after the fact. Just find the effects menu in whatever software you are using, and such an effect should be in there. For example, if you are using Final Cut Pro, the effects menu should be in the top right hand corner (here's the Apple help page about adding effect in Final Cut).

The front element lens diameter does not affect the ability to create a fisheye effect. To get a true, in-camera fisheye, you need to use a fisheye lens.
A smaller lens diameter might be useful for creating in-camera vignetting (the rounded black borders but without the spherical distortion) if you stack enough filters or step up rings and use a wide enough focal length.
Beyond those two in-camera effects, you can create a fisheye effect in post, as described in another answer.

source: Stack Exchange

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

sort: votes


text:
How to track zoom location?
I'm trying to track an object. How can I keep the tracked object centered when I zoom? I have After Effects and Premiere Pro, but I prefer a Premiere Pro solution if it's possible. It's much faster for my editing workflow.

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


text:
How to add freeze frame to a video using ffmpeg
I want to freeze some frames in a video so that it gives a buffering video type look. Also the audio should freeze with the video.

Assume there are three pauses of 3 seconds each at 5s, 12s and 20s of the original video. Here's the basic form of the command,
ffmpeg -i in -vf "setpts='PTS-STARTPTS + gte(T,5)*(3/TB) + gte(T,12)*(3/TB) + gte(T,20)*(3/TB)'" -af "asetpts='PTS-STARTPTS + gte(T,5)*(3/TB) + gte(T,12)*(3/TB) + gte(T,20)*(3/TB)',aresample=async=1:first_pts=0" -vsync cfr out

I get the following error while running the command:
ffmpeg -i abc.avi -vf "setpts='PTS-STARTPTS + gte(t,5)(3/TB) + gte(t,12)(3/TB) + gte(t,20)(3/TB)'" -af "asetpts='PTS-STARTPTS + gte(t,5)(3/TB) + gte(t,12)(3/TB) + gte(t,20)(3/TB)',aresample=async=1:first_pts=0" -vsync crf out.avi
error: Expected number for vsync but found: crf
if I add -vsync 0, then
error: Unable to find a suitable output format for 'crf'

It's not crf, See answer.

thanks.. but there is still some error. I have posted it in the answer below.

Your command is missing the * in gte(t,5)*(3/TB) and in other expressions.

The code by @gyan didn't work out for me, I found another (longer) way to do it:
I extracted the audio file from the video first using:
ffmpeg -i input.mp4 -vn -ab 128 audio.mp3

then combined them together with an offset:
ffmpeg.exe -i "input.mp4" -itsoffset 3 -i "input_audio.wav" -map 0:v -map 1:a -c copy "output.mp4"

Did you add the *?

**yes I did try your code, but it shows error **:       ffmpeg -i sb.mp4 -vf "setpts='PTS-STARTPTS + gte(t,5)(3/TB) + gte(t,12)(3/TB) + gte(t,20)(3/TB)'" -af " asetpts='PTS-STARTPTS + gte(t,5)(3/TB) + gte(t,12)(3/TB) + gte(t,20)(3/TB)',aresample=async=1:first_pts=0" -vsync cfr  outsb.mp4


text:
Which Blackmagic codec to choose?
I purchased recently a new BMPCC 4K and I'm facing a big problem with file sizes...
The files are tremendously huge, so I have to make a choice about the codec to choose.
I'm shooting basically nature documentary so I need to color-adjust my files in editing, but I do not do any green screen or heavy special effects.
BlackMagic provides several codecs and I do not want to compromise quality, but without going into crazy unnoticeable quality...
I'm thinking of choosing Blackmagic Raw 8:1. Does any one know the technical differences between those codecs (beside the file size which varies quite a lots) ? Blackmagic Raw 3:1, 5:1, 8:1, 12:1, ProRes 422HQ, ProRes 422, ProRes 422 LT, ProRes 422 Proxy
Thanks

I would suggest using Braw Constant Quality Q5.
With 21-58MB/s it is on the lower end of data consumption while still giving you RAW capability.
BRAW gives you the RAW capabilities like Blackmagic Highlight recovery, changing the ISO, lossless color temperature changing. And 12bit colors.
ProRes gives you higher compatibility (Braw is currently only supported by Resolve) and "only" has 10bit Color.


text:
How can I convert the caption file format (.xml to .vtt)?
I'm looking for your help and suggestion how to get started with CC conversion from .xml to .vtt.
We are having lots of flash files where we have xml to vtt during a project migration. I tried with many online tools most don't have solution for this.
Could you please help me how to start on this. Suggest me any tools/online converters which can do this job for me.
Thanks,
Siva

I can highly recommend the Subtitle Converter from https://www.editingtools.io/subtitles/, which converts almost all subtitle formats.


text:
h264 compression keeps same number of frames?
I'm trying to understand how h.264 compression works. So far I have clear what I, P, and B frames are and how are they used. But I'm unsure of is if after this process the number of original input frames are kept or not.
In other words, if a raw video file containing 20 frames going into a h.264 encoder block, will the output compressed file have same number of frames?

Normally, yes. The encoding process will output all frames. Exceptions I can think of would be real-time streaming applications with a latency threshold.

Understood , thanks Gyan.

I am not sure of my answer. The explanation at the end of it.*
Yes. The number of frames should not change. With one possible exception, I know of.
First of all, normally a compressor takes some steps.

Grab a keyframe
Compares the difference between groups of pixels and if the difference is below one defined parameter it uses the same data to render them.
And now compares the difference between adjacent frames and again, if the difference is below a threshold it uses the same data, using the keyframe as a reference to be compared with.

If the keyframe fails to load you see the glitches, where the image is smushed because you are seeing the "differences" of the frame, but with an incorrect reference image.

The exception is that some programs need to round the number of frames after a keyframe. Let us imagine you defined a keyframe every 10 frames for easy calculations.
Now your clip needs to have 105 frames. Some programs will render the exact number of frames, but some programs could try to render the full "group" of frames attached to the previous keyframe, trying to render 109 frames, or some other could try to end in a keyframe, 110 on this case.

I am not sure about my answer because, although it as happened to me on some programs, I can not recall that it was specifically using the h264 codec.


text:
Appear and disappear effect with camera movement
I was watching a Lil Skies music video produced by Cole Bennett and noticed an effect. It had Lil Skies singing in front of a car, and he would vanish and the car would also vanish and reappear at random times. It seems like an easy task if it was shot on tripod and then masked/layered, but with all the camera movement it makes me curious as to how its pulled off. Perhaps where its shot in 4k he just blew up footage in post and made artificial movement while still keeping it 1080p? For anyone curious the video is Lil Skies - More Money More Ice and the scene is early in video.

That is simply greenscreen compositing.
These days it is relatively easy to track a camera movement from a random video clip, you can for example film the yard and composite a 3D car over it.
On this case, I would film the person on a green screen room with markings and even render the yard itself.

One more complicated way to do it would be a robotic arm controlling the camera, some can even receive the movement from another source, for example, tracking from a handheld camera. The movement can be repeated several times, one with the car other without it.
But the equipment would be more sophisticated and expensive. I would go for the green screen and Blender.


text:
cc slant not working in after effects
I put the cc slant effect on an image just to slant (move) the clouds, but it ends up sliding the whole image. The same goes for many other images even after adding a mask. The whole image keeps sliding with the slant.

Not exactly sure what the problem is. However, try making a adjustment layer above your footage. Apply your mask to it. Then add a transform effect. It has a skew and skew axis that can be keyframed

Pre comp the masked image. Then apply the slant to the outer comp.


text:
How to add lower third text graphics to a video using FFmpeg
I'm trying to add text to my video. Something like this:

So far I've tried this command, but the text doesn't wrap:
ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=fill, \
drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this    Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4

Use the subtitles filter and it will wrap automatically. You can use the simple but limited SRT format, or the more complex ASS format. Aegisub is useful if you want to format the subtitles, or see the force_style option in the subtitles filter.

ffmpeg -i input.mp4 -vf "subtitles=title.srt,format=yuv420p" -c:v libx264 -c:a copy -movflags +faststart output.mp4

I'd also like(the caption) to be in the bottom or on the top of the video as it is in the picture in the question

@archie Yes, that is possible. Refer to Alignment or \an or \pos tags. http://docs.aegisub.org/3.2/ASS_Tags/

How is the title.srt supposed to be like? I'm getting "Conversion failed" message

@archie Example. But you should be using ASS since it supports the \an and \pos tags.

The drawtext filter doesn't support automatic wrapping.
So, if you want to display your text in n lines, you have to use the drawtext filter n times, with different values for parameters text, y (and maybe x, too) for every line.

Would it be responsive that way?


text:
Extend video clip in Davinci Resolve that has been slowed down/paused
I have a video clip of a number dial (think old style alarm clock) that I want to use to display scores on a scoreboard. The video clip shows the numbers flipping each second but I was planning on using the Retime Speed or Retime Frame curves to pause the clip, then restart it for 1 second each time a score is made.  It works great!
However, I cannot extend the duration of the video clip longer than the original source file (40s). As you can see in the image below, then trying to grab the right side of the clip and move right, it glows red (instead of green, which is does when moving the end of the clip forward or backwards less than 40 seconds.  Likewise, when I right-click and try to change the duration manually to 35 minutes, it doesn't work. No error, just doesn't extend.
One other thing - you can see in the test image below that I jump to only one of the middle frames by the end of the clip - there are many more frames left to be usable. I had thought that adding in this pause would allow me to extend the clip but it hasn't.
Both the "Flip Clock" video and the project are 29.97fps

If you use Retime Speed instead of Retime Frame, the clip can be extended.  Retime Frame gives you the ability to arbitrarily access the source media according to the curve, but there's no concept of time stretching--the clip in the timeline has a fixed amount of time and the only variable is what frame to play at a given time.  Retime Speed controls the concept of time.  If you slow the speed down to 50%, you get 100% more time for your clip to play.  When you slow the speed down to 0%, you get infinite time to play your clip (and interesting edge conditions--so keep it to something like 1%).

In the example above, when you're grabbing the end of the clip, you're performing a trim edit, but the clip has reached the full extent of the media, and shows red to indicate that there's no more media.
To instead retime the clip, you need to first call up the retime controls by pressing ctrl/cmd-R.  Then grab the TOP right-hand corner of the clip.  When you're hovering over the correct spot, the mouse will change to a double arrow, indicating that you're about to perform a rate stretch action.  To dismiss the rate stretch tool, either click the "x" on the left side of the clip, or hit cmd/ctrl-R again.
This works when you're trying to interactively stretch either END of the clip.  If you want to interactively adjust the timing of a place in the MIDDLE of the clip, you'd first need to add a speed point.  To add a speed point, summon the retime controls, and click the black disclosure triangle that appears in the middle of the clip, at the bottom, and select "add speed point" from the context menu.  When the new grey/white control device appears, notice that there's a difference between dragging one handle and the other.  Dragging the top handle stretches and squashes time, slowing and speeding it.  Dragging the bottom handle changes the point in time at which the speed change occurs, but it does not slow or speed the clip.
You can rate stretch a moment indefinitely, but as long as you're only stretching it, time will always progress, even if it's very slowly.  To freeze time, click the same disclosure triangle you used to add a speed point, and instead, select "add freeze frame."  This actually adds two speed points, between which time does not progress.  This is probably the approach you should use for your clock, because it will prevent Resolve from interpolating between two frames.
By right-clicking on the clip, you can also expose the retime curve, which uses more traditional keyframes and bezier handles, and presents options for both "retime frame" and "retime speed" which are two additional interfaces for the same controls.  This is the interface in your screenshot.  In fact, you can use all three methods simultaneously and interchangeably, and doing so will give you both better insight into the tools' relationships, but ultimately more precision in retiming elements of your videos.
One final note.  Like many actions in Resolve, the interactive retime controls respect the difference between Selection Mode (A) and Trim Edit Mode (T).  If you're in Trim Edit Mode, retiming a clip will ripple the timeline (subsequent clips will alter their timing automatically).  In Selection mode, they won't, allowing you to overwrite a subsequent clip by rate-stretching an earlier one overtop.


text:
How to (safely) produce flying dust on set?
Simple question, mainly asking for your collective experience.
I am planning a short-film in a post-apocalyptic scenario which is supposed to be very dusty with a thick-looking atmosphere. Part of it is easy to achieve with haze or fog, but I was wondering about those little specks, kind of like ash blowing in the wind.
How would one safely achieve something like this? Is it a good idea to actually just blow around some burnt paper (essentially ashes)?

I'm all for doing things in-camera, but have you also considered doing it in post? You could augment the real particles with CG particles.

I considered it, but really don't want to. Characters are supposed to move through the illuminated particles which then form lightshafts etc. and just thinking about doing that in post gives me bad anxiety :D
Also, since I am working on a budget, these type of particles animations aren't really favorable in my case.

Fair enough. Good luck.

Dust is free in most environments.  The trick is to have enough light that you can actually see it.  Since you are on a budget, I'm guessing that an ARRISUN lamp or a K5600 ALPHA 18K is out of the question.  But if you did have such lights, and the proper flags to catch that light and not blow out your scene, you could certainly see enough dust in the ambient air that you could then bring out that effect in post.

I would avoid burning things to make ashes. Not very environment-friendly.
Instead of paying attention to the acting and to the light, and framing you will be worried about the effects. That is not a good idea.
Now days is pretty simple making particles in a 3D program. Try Blender, that can track the footage and have a very robust particle system and render options.
Here is an example of how a normal scene can be transformed into an apocalyptic scene, one typical example is Silent Hill.

Thank you for your response! The example really convinced me that rendering it might be a good idea. I'm thinking of houdini and rotoscoping out the talents so I have some occlusion going on... thanks again and have a good one!

A good idea, if you do not have camera movement is to take a shot without the actors on each location.


text:
Can't charge GoPro Hero 5 Black while recording TimeLapse video
I have a GoPro Hero 5 Black camera. I want to make timelapse videos with the default settings of TimeLapse video mode in the camera. I also want the camera plugged in since the time lapse will be running for a long time. If I connect the power cord before starting time lapse recording, it shows it is charging. However, once I start recording in time lapse mode, it stops charging.
Is it possible to record in time lapse mode and charge the camera at the same time? Do I need to change settings to enable this?

Have you verified that it runs out of power? It could be that it keeps drawing power from the power source even though it doesn't show that it is charging.


text:
Why can't I change the aspect ratio of my project in Final Cut Pro X?
I am trying to create a Final Cut project that has a 4:3 aspect ratio. So I went to the project settings and set it to 1440x1080. But the preview window and exported video is still widescreen, does anyone know why?

Does that squiggly line have anything to do with it?
Just so you can see, my project is set to the right resolution, but the preview window is clearly playing a widescreen video:

Am I missing something obvious or is this a bug?

When you import clips the default spatial conform is fit. Change it to fill and clips will be cropped. You can reframe as you like.
This article has more details Square video with FCPX


text:
How to export files with different frame rates in a composition in premiere pro?
I have game play videos with frames of 59.94 fps, 60 fps, and some around 30 fps. I put all these files in one sequence. When trying to export, the file created is unplayable. Can anyone help me out with my issue.
Note: I am using premiere pro cs6

You need to provide more information. What filetype are your recordings? Are they playable in premiere? Which export-settings did you use? What are the settings of your sequence? With which program did you try to open the rendered file? I'm sorry if that's a pain in the rear, but without further elaboration, we'd be virtually left to guessing...

The file exported will be in MP4 format. Files inside are also mp4 format. But I converted two files from 59.38 fps to 59.94 fps and then added them to the sequence in order to keep the framerate of the sequence same. Not sure why it is exporting a corrupted file

When you're saying you converted the 59.38 file to 59.94 - where did you get the 59.38 fps file from? That's a usual framerate, so the issue might be there. You wouldn't have to convert the file anyways as far as I am concerned, since you will bring the file to a universal framerate anyways. Another question: Did you use the h264 codec for your mp4?

typo: I obviously meant "that's NOT a usual framerate"


text:
Upload edited video to YouTube
Please help.  I am sure I am not the only neophyte who has run into this.  I hope someone can.
I want to:

Download the video recording of a Facebook livestream.
Make minor edits in Adobe Premiere Pro (cut footage, add slides and/or music, and transitions)
Upload the final product to YouTube.

I need to do this twice a day, with a 30-minute livestream session each time.
The MP4 that I download from Facebook is small (around 70 MB) and has these properties:
Type: MPEG Movie File Size: 69.92 MB
Image Size: 640 x 360
Frame Rate: 30.00
Source Audio Format:
48000 Hz -
Compressed -
Stereo Project Audio Format: 48000 Hz -
32 bit floating point -
Stereo Total
Duration: 00;29;31;19
Pixel Aspect Ratio: 1.0
Alpha: None
Video Codec Type: MP4/MOV H.264 4:2:0
Variable Frame Rate Detected –

If I just turn around and upload this file to YouTube unchanged, it uploads and processes straightforwardly and quickly.  (My upload speed is 11-12 Mbps)
If I make any edits, though (today I took out 13 seconds of coughing from the middle):

The output file size balloons (to almost 1.88 MB) using the YouTube SD Pre-set.
I can reduced the file size to 342 MB by running it through VLC Convert/Save, using the VLC YouTube SD preset.

It has now been 6 hours, and YouTube is showing the file only 26% uploaded (though the progress bar surged to 72% at one point).  Not even at the point of "processing" yet.
This happens every time I edit.
I am a total newbie and don't have the luxury to spend time experimenting with settings, most of which I don't understand.  Based on what I gleaned from some How-To videos, I did play with various screen sizes (down to 640x360) and bit rates.  I have also tried different YouTube and Facebook Presets.
Can someone please help?  I want to reach the people in my congregation who use Facebook and those who will only watch YouTube.

File size = data rate * time

I do not think that file size alone is the problem.  I have been able to upload larger unedited files from Facebook to YouTube without difficulty.  So I can only imagine that YouTube is choking on some settings I am unaware of.

I'm not familiar with facebook video, and maybe someone else can help with that. 70MB is insanely small for 30 mins of video. What are the properties of the source video (in Premiere, right click the source video, select Properties). Copy/Paste that info, and add it to your question if you can.
Leave the frame size / frame rate the same as the original - Premiere has a "Match Source" button in the output settings, just ensure it is ticked. Often scaling down the resolution lowers the quality too much, and I find you usually get a better trade off keeping the resolution and lowering the bit rate instead. What is the bitrate in the preset? For video files that need to be transferred, I usually output using H.264 codec, at 6Mbps target rate. That still gives me almost 50MB/minute (with audio), but retains the quality level where I need it. You could likely push that bitrate lower - try lower bitrates, see what your video looks like (if this is a fixed camera / fix background video, likely you can push the bitrate pretty hard without much impact to quality). But you won't get the FB file size with that codec, so that extra info would be handy.
For uploading, do you have Google Drive? You could sign up a free account there, and sync the files, which might make putting the video to YouTube easier than uploading direct: https://support.google.com/youtube/thread/5937118?hl=en

File size alone does not appear to be the problem; I have had larger untouched MP4s upload quickly and easily. I can only imagine that YouTube is choking on some parameters of the video I am sending them.

The file I get from Facebook has these properties:

Type: MPEG Movie
File Size: 69.92 MB
Image Size: 640 x 360
Frame Rate: 30.00
Source Audio Format: 48000 Hz - Compressed - Stereo
Project Audio Format: 48000 Hz - 32 bit floating point - Stereo
Total Duration: 00;29;31;19
Pixel Aspect Ratio: 1.0
Alpha: None
Video Codec Type: MP4/MOV H.264 4:2:0
Variable Frame Rate Detected

"Variable Frame Rate" tells me it's likely there isn't a lot of motion in the video, maybe even just a static shot or slides? Which will drive down the file size enormously, see also https://en.wikipedia.org/wiki/Variable_frame_rate. Unfortunately it's not in my area of expertise, I don't even know if the Adobe products support this for encoding (I did a quick search and couldn't find anything), you might need to be using another encoding tool to get the file sizes back down where they started.

It's basically just me as a talking head; there is minimal motion, other than my lips and occasionally shifting in my chair.

If you want to get the file size down, maybe try to find out exactly how Facebook encodes their video (maybe even ask a separate question if you can't find that). I suspect it's something custom, although hopefully there's something that is a rough commercial equivalent. For Youtube uploads, I always had issues doing large files from a PC (something would drop out somewhere), my Mac has always worked smoother. But via Google Drive might be easiest, as it eliminates any direct upload timeout issues.


text:
An issue with the Split feature on Windows Video Editor
I'm running Windows 10 and using the built-in Photos app (also called Video Editor from the Start Menu). I want to be clear that this is not the earlier 'Windows Movie Maker" app. I'm trying to do something simple - split a 1.5 minute video into 3 30-second increments. Using the Split feature, it's easy to separate the first 30 seconds from the original clip and save that individually. But when I go to separate the remaining 1 minute, I find that instead of splitting the two clips, Clip 1 is still the first 30 seconds of my video, but clip 2 is also the first 30 seconds of the video, part of the middle of the video, and with 30 seconds cut off from the end of it. I don't want Windows to duplicate the clip - I want it to split into pieces.
Things I've tried:

splitting the end off first and going backwards (the problem still happens, just backwards now with the beginning 30 seconds cut from the movie)
saving each individual segment and deleting it, hoping that Windows will take the hint that I don't want it repeated in all clips
I've tried going into the app itself and clicking "Repair"
Also going into the app and clicking "Reset all data", in hopes it was a bug of sorts that could be shaken off.

The internet doesn't seem to have a solution to all this. Most suggestions are for Windows Movie Maker, which I do not have.
Help! What I want to do is pretty simple, I think. Thanks in advance!


text:
Programs that help you export multi-language videos?
I'm looking for a program that can do multi-language export of video.
Let me give an example: I create video with text and I would like to easily add 4 different languages inside each text. The program would export video with that language.
Let's say :

Importing text in four different languages (for example the program is connected to an Excel file or whatever)
Exporting four videos with that translated text.

Right now I have major problems because I need to save, then edit the whole video text for each different language, and then export.

Resolve and Premiere both support .srt files for subtitles, which is what you want instead of "Excel files or whatever."  There are many online services that will generate .srt files from spoken audio, and timestamp them appropriately so that they sync with your video.

Jason thank you, i didn't understand you right. I don't want from "spoken audio" translation. I will have translated text only.  Let's say Hello and what i want that it will translate and put in video where i placed for first video Hello also 4 other languages and it would export me 4x videos.

Like the other guy says, each language will have different read rates, which is why you’d use time stamped audio of natural language speakers rather than trying to auto translate. Even if you don’t have separate voiceovers to go with the text, .srt lets you control the read rate of the various languages. Plus, it’s built into each NLE, doesn’t require a third party add on, and on the adobe side, doesn’t require the extra primary package (AE).

Templater Rig can help with this. It's a plugin that connects the text in your After Effects project to a Google Sheet or other spreadsheet. Bear in mind that each language will have different read rates and sentence lengths for the same meaning on-screen, so swapping the translations is only the first step to making the videos look ok.

Thank you this looks something that i'm looking for. Thank you Tomh

I spent a lot of time doing this at the bbc a few years back- shared google sheets and templater saved a lot of time, but layout still needed manual intervention https://vimeo.com/42692053


text:
blend filter and color
Trying to debug blending images over video led to this observation:
ffmpeg -i https://lh3.googleusercontent.com/vt1VzlKCpjJjxRGBd3oAVgOHau22m2257fDBaW3KfHsNbhOcw1--OY7oISUM93Zp0SjwCSdlHP5PXXbFHdaflxTJAJ_B32MSrUH4AerS_0u6gv3X -i https://lh3.googleusercontent.com/MMzUU7GklKAqtdcGN4k2UVF22Wc2l35A2NDEeB4GhgM7eU06nKSQgitHAoWttj605G1yjoOEODt-dMKNPoWUdCmtFxe-u-qH5H228E9DxpoZsZk -filter_complex "[0:v] format=rgba [bg]; [1:v] format=rgba [fg]; [bg][fg] blend=all_mode='overlay':all_opacity=1, format=rgba"  out.png

results in (with odd fringes):

desired image is:


text:
Unknown Video Format
I had a video file named file.mp4. I have tried many codecs/players to open it with no luck.
Finally, I used a hex-editor to open the file, and here is what i have found.
Any suggestions on how I can work with this file?

The file type (ftyp) in your header is "isom". Try https://superuser.com/questions/311595/change-mp4-ftyp-from-isom-to-mp42

Thank you Peter. Please post an answer, so I can flag it as the correct answer.

It's fine - if I try to post that as an answer, the site comes back with "trivial answer converted to comment". So there you go! Glad that it worked, it was really just a quick look through - I thought there might still be more to it than what I posted.

Trivial, but very helpful.


text:
Can't extend image duration in Final Cut Pro X
I'm new to Final Cut Pro X and I'm trying to extend the duration of a static PNG image so that it shares the length of the video that's over it, but it won't extend no matter what I do. I've tried Control+D and typing in a duration but it just does nothing.

What type of image is it?

Just to clarify it is Control-D to enter the duration not Command-D

@GermanDude Yeah Control-D that's what I meant. Also it's a png

Try this
At the end of your main timeline add a gap Option-W.
Drag and drop the still picture behind the gap into the main timeline.
Change the duration as needed.
Move the clip where you want it.
Your behaviour you described isn’t normal, it sounds like you do everything correct. Above is to eliminate any timeline issues from stacking and try to sort out the problem.


text:
How to put a video inside text?
https://okbinteractive.studio/
Above is a brilliant website, if you scroll down slightly, you'll see they have a video playing inside some coloured text (a large UX).
Is there any one of the Adobe apps, that could facilitate this?
For the life of me I cant work out how to do it.

There are a ton of options.
The easiest one that can be done in any decent video editor, is preparing a transparent shape.
You are used to thinking about the text being the object.

But if you combine it with the big rectangle you now have a rectangle with a hole with the shape of some text.
Put that in a layer above a video and you are done.

For the color, you could make the video with a different blending mode, like multiply, desaturate it and play it above a purple rectangle.

Another option is preparing a mask. This depends on if the program you are using can work with masks. But any decent one will.
You can do that in Premiere, After Effects, or with free software. Davinci Resolve is great and free.
A mask is simply a black and white image.

If your software is simpler and does not accept masks you can use a green text, and cut it using the green-screen option.


text:
Divide a video into parts
I have just edited a 4 hours video down to an hour, and now want to make that 1-hour long video into parts of 12-18 min. How do I do that without the need to render the 1-hour video first?
Also, is there a way that I can take my microphone recording from video and put it into Adobe Audition to remove white noise and background noise?

Most video editors support marks, and importantly "in" and "out" marks.  Generally, if you set your in and out marks for each of the 12-18 minute segments you want and render the sequence, what renders out is not the whole hour, but only the frames within the in and out marks.  If you do that 5 or 4 times, you'll get the segments you want.
There is essentially no way to remove white noise; you can duck it (meaning reduce the volume of the white noise) during times when there are no other interesting audio signals, but when there's a voice you want to hear, that voice is going to blend with the white noise and it will be heard.  Background noise is also very difficult to eliminate, which is why it is always best to pay attention to audio up front.

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


text:
Increasing Overall Audio level
I have a very short video of some classical guitar music, in Windows .wmv.  In order to listen I  must have the soundcard and speaker volume controls at the max.  (I have checked this on another computer to ensure it wasn't just me).  Can the general level of audio in a video recording be raised, while still maintaining a normalised signal.

Yes. You can use FFmpeg, a free command-line tool, like so:
ffmpeg -i video.wmv -c:v copy -af dynaudnorm out.wmv

dynaudnorm is a dynamic audio normalizer, which will maintain the original range dynamics and avoid clipping while applying the maximum gain possible given those constraints.

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


text:
Multi-source, picture-in-picture live stream
So I have some experience with live production, but I want to do something a bit more complex and need some things cleared.

This project would use multiple cameras (lets say 5), some non-camera
sources (live PC display screengrab) and tons of graphics.
There would probably be some 4-5 layouts, some of them would need to
display multiple sources added to some graphical overlay. Some would
be one camera at a time (with some live cut between cameras) and
maybe some lower third or something over that.
Entire thing would be live streamed online.
Entire thing would be handled in HD (I imagine 1080p is no problem, am I wrong?)

I have used BMD ATEM plenty of times, but this seems to be over ATEMs capabilities (or am I wrong?).
I imagine there is some sort of switcher like ATEM, but with the ability to prepare layouts composed of multiple sources and graphics via some companion PC/mac software. To this switcher, camera sources would be connected via HDMI or SDI, and screengrab sources via some sort of HDMI splitter (between PC and it's display). This switcher would allow for switching between layouts and inside those layouts. It would also allow for switching between different graphics. Imagine there is small space for a sponsor banner and it would switch between three banners of different sponsors. Or there is point counter displaying one of multiple PNGs with a number.
Entire thing would then go from switcher to some encoder/streamer (like wirecast?) that would stream it to let's say YouTube.
To lower number of inputs needed on the main "super switcher", it would be possible to route 3 cameras to secondary switcher like simple ATEM and route that as single source to the main switcher, since signal from those cameras would be used only in one layout and only linear edited (no PIP).
My main questions:

Is there such "super switcher" that would handle PIP and multiple graphics?
Is there reliable streaming device, or do I need PC with BMD Intensity Shuttle (or similar) and some streaming software?
And are there any contraptions I am not thinking about? Am I maybe thinking about this all wrong? Is there some "best" way to solve this scenario?

Thank you very much!

You are on the right track with the ATEM or pretty much any production switcher/vision mixer. The feature you are looking for to do PIP is a resizer or DVE. You'll need as many resizers assigned to a bus as you want boxes of cameras or graphics, minus one for the background. Any pre-switching you will do will probably over complicate things, so look for a switcher with enough inputs. It is tough for me to give any more specifics without more details on your project, especially budget.

Investigate some of the software switcher products such as "V-Mix". Or some of the computer-based integrated products like NewTek "TriCaster". They will handle many more inputs than even the large (and expensive) hardware switchers like BMD ATEM, etc.  The more expensive models likely handle quite a large number of PIP images to be combined. Of course, you must have enough compatible video input ports on the computer to capture all those cameras (or whatever). But they can typically handle live inputs from many computers directly over the LAN, so that would be a big advantage for your requirement.
And many (most?) of those products also handle concurrent recording and streaming all in one solution.
Ref:

http://www.newtek.com/
http://www.vmix.com/
http://livestream.com/producer

Like @screaming-drills say's: this can be done with softwares like Wirecast and OBS.
You could also get very expensive hardware to do the same eg. from Blackmagic Design, I would however look at the software option, with some inexpensive computers.
Ex.
Computer One
One computer for camera input, depending on how the video is being delivered, I'd get either small pc or a tower.
If it doesn't need additional cards in it, I'd go for a HP Micro. They can often be found very cheap to order.
If you need capture cards (ex. Intensity Pro 4K (which I use to capture PC/XBox/PS4 and cameras via HDMI), any cheap Tower from HP or Dell will do.
A HP Micro can handle one capture card internally and several via USB, which is a reliable option as well.
Then either setup Open Broadcaster Software on that computer to handle Camera Switching, or setup Multicast servers to export the feeds (intakes).
Computer Two
Live Editing computer, can be almost any type of computer, preferably one with a video encoder card.
Setup OBS and catch the feeds from computer one, choosing/switching is easy, also add graphics etc. on fly.
Then, either with the in-built encoder in OBS, or using a encoder card (OBS have support for encoder cards) to stream back computer one, or a computer three, or directly to a streaming service.
Since computer one already can handle streaming via multicast, it could receive the encoded video from computer two and pass it on to a streaming service.
Illustrations:
Ex. 1

Ex. 2

For more control, control software can be installed on computer one, to minimize camera output to computer two.

You could do all of this with Wirecast. It will allow you to create any number of overlays and switch between them. You could also try out OBS first since its free. I would use the ATEM for the camera switching, then do all of the overlays with software.

Check out TVone Media Solutions Corio line of Video Scalers. These are available with many different types of video inputs. They can scale all inputs independently, mix and overlay each onto the other, add backgrounds, titles, etc. and are computer controlled, as well as from front panel switches.
I have used these in the past to do pretty much the same thing you are describing.


text:
What causes these lines in the top left of some video recordings?
What causes these white lines to appear in the lop left of some video recordings? I've seen them many times of the years and they always seem to look identical.

That's EIA-608 analog closed captioning data. It should be on line 21, which is within the vertical blanking interval of the SD signal. Either the line was shifted down or the VBI was captured as being active video.

Very likely you're seeing either VITC (vertical interval time code) or closed captions encoded on line 21 of the vertical interval. Those are both part of analog video only, though they may remain after being digitized.
If we could see the video in motion it would be easier to tell.

The pulses are too wide for it to be VITC, plus there is only one line.


text:
How can I squeeze video of certain length into smaller length
For example how to turn 1:03 video into 1:00 without cutting anything. Can I do it on any mobile video editor?

So, you want to speed it up?

This is generally done by retiming the video. Usually, if you're retiming by anything other than double or half, you need to use a professional application such as Final Cut Pro X or Premiere. They will have options for doing the speeding up in a number of different ways such as "Frame Blending" or using "Optical Flow".
For mobile, a quick search with these terms "app to speed up video iPhone" shows a number of results.


text:
Best software for homemade YouTube videos
I would like to get started with making some home videos to post them on YouTube. What are some of the best references, tutorials, and software to use for this task? Thanks.

A great choice that works on both Mac and PC is DaVinci Resolve.  The Lite version is free, and if you use only the basic features, it is very intuitive and easy to learn, from drag-and-drop media to basic editing to automatic delivery to YouTube.
A second recommendation is this: software is great for controlling edits, meaning cuts, transitions, wipes, dissolves, and generally assembling footage so that a sequence of shots tells a story, possibly syncrhonized to music, sound effects, or whatever.  However, a great edit will get you only so far when your footage is sub-standard.  Don't waste your time looking for software to fix sub-standard footage.  Learn about lighting (especially 3-point lighting), camera movement, and camera support.  If you don't like your audio, don't waste your time looking for software to clean it up.  Learn to record audio properly, with microphones positioned appropriately.
It may well be that you are very happy with the audio and video you are capturing, and that editing really is the only thing you need to worry about.  Good for you!  But if you are trying to get better looking video or better sounding audio, fix it at the source--with lighting and proper mic techniques.  It takes years of practice and the very best to work magic with software to fix what should have been done right in the first place.
Once you have learned lighting and audio, then you can really go nuts with Resolve, making good footage look great.

The best entry level software is probably iMovie, the video editing application that is free for any Mac user. It's intuitive and simple, giving you a quick start into basic editing. Another free video editing program for Windows/Mac/Linux is Blender, but that has a fairly steep learning curve.

Personally I've tried Blender on Windows and could never get used to the interface. Hitfilm 3 Express is an awesome alternative for Windows and it's free!

Hitfilm should be the best choice to make as a beginner in filmmaking, I guess. Every thursday they upload tutorials and new episodes.


text:
Audio goes a frame or two out of sync after export premier pro
i've finished my film and i'm trying to export my film in 1080p 23.976 fps , using h.264 audio acc 44.100 khz and 192 bit rate .
when i export my full film my audio is slightly out of sync/time with video. when i only export small portion of the film with exact same settings the audio is back in time and everything seems in sync again ?  please help me you wonderful people yes ?  ;-)  my film is 45 minutes long
the portion i exported was about 1.30 mins , i have tried many different settings including higher fps 29.976 etc but still the same thing happens out of sync on full film, and ok in small portion export !
and i'm exporting the same portion and referencing that one segment !
last attempt i'm currently making is from another forums advice is deleting render files before export ? i'm still don't know if this has worked as i'm waiting for export to finish !  anyone can help me out , thanks alot , Dave >

What's the source footage framerate?

it is 24 fps footage shot at 1080 p using a 5 d mk3 canon , my sequence settings are 1080p hd 23.976 fps , and i have tried different export settings but mainly the same export settings as the sequence settings !

This may be due to framerate problems.There are two types of 24 fps.
"True" 24 fps and 23.98 FPS.
This mostly doesn't make any issues, but stretched over a longer time, this can change the video duration. For a 45min video, this makes 64800 frames, instead of 64746.
This gives a difference if about 2.25 seconds.
After trying to delete the pre-rendered files as you said before, try to change the sequenze settings.
Before you do this, MAKE A COPY!
If this doesn't help, another way would be to try another codec and or container. So try h.265 or HDx or avi... It may be that those codecs don't have these problem

What's with the quotes around "true"? Is it not actually the true 24FPS, so it's "fake true"? What do you mean

@MikeA.Christensen there is two different frame rates described as 24 fps.  There is 24fps and 23.976fps (otherwise known as 24fps drop frame)  This is an artifact of how color information was encoded in the space that used to be taken up by a frame of video back in the day and still hangs around now.  24fps is an odd one since it wasn't a broadcast spec prior to digital, but it still has a drop frame specification in addition to the non-drop frame that actually has exactly 24 frames per second.


text:
Matroska format's framerate is not accurate with certain values
If the Matroska format is used, in certain framerates it doesn't record at exact input framerate, but rather at a little higher than the input framerate.
As an example:
ffmpeg -video_size 1920x1080 -f x11grab -framerate 30 -i :0.0 -c:v libx264rgb -crf 0 -preset ultrafast video.mkv

doesn't generate a recording at 30fps, but rather at 30.0003fps.
This is not good, because even a slight change in input framerate can cause major frame stutter. Unless ffmpeg is speeding up the stream by 1.00001x, which I don't think so when using x11grab.
To prove this, VLC can be used for checking the frame rate.
Is there any way to force exactly 30fps, or is this a format flaw?
Also, uname -a:
Linux linux 4.1.15-rt17-1-rt-fixedtimers #1 SMP PREEMPT RT Sat Jan 16 01:14:52 GMT+5 2016 x86_64 GNU/Linux

How does "major frame stutter" manifest itself? I can imagine sync issues but I can't quite picture how anything major could come from a 1 part per 10000 rate error.

Please show the complete console output from your ffmpeg command.

I just noticed this only happens on .mkv format. I'm updating information about this. Here's the paste: http://pastebin.com/yUbn1zrL

For recording to MKV, insert -vsync 0. Whatever rate the source supplies, MKV will encode the same timings.

MKV does not store a frame rate in its container. So ffmpeg/vlc looks at the default duration of a frame instead. It sees 33.333ms and does the math, which is where your weird number comes from.
For more information, see: https://gitlab.com/mbunkus/mkvtoolnix/wikis/Wrong-frame-rate-displayed
To test this out, you can run ffprobe with -show_frames. I think you'll find the presentation times for each frame are spot on.


text:
FFMPEG Error: Packet too small (67)
I am working with win7, FFMPEG Static from May 2016.
I have frequently a bunch of strange avi files to convert by batch and got always the Error:
Packet too small (67)

Error while decoding stream #0:0: Invalid data found when processing input

I have googled a lot but didn't haven't found a solution. What I have found is that vitualdub is able to fix the AVIs just by "stream copy + save as avi." But I'm having trouble with virtualdub's scripting language.
Is there any solution by using ffmpeg? Or ideas on a virtualdub script to save an avi as avi with stream copy?
Sample Video

Thanks in advance!

It's a bug.

:( - Thx. Any Idea how a virtualdub skipt would look like?


text:
Converting WMV to MP4
I just joined this community and hope my question is acceptable since it is quite "noob" like.
I have a .wmv video file that is 1280x720 and causes windows media player to abort after excessive memory usage. I converted like 5 minutes of it to .mp4(x264) and it played nicely.
The file is 1.55gb when i converted the whole thing to mp4(x264) it went to 809mb, using Any Video Converted app. Does this sound like im losing quality or is it because mp4 has better compression ratio?
Do you guys know what is the the best mp4 video codec to output the file to preserve quality if the above is an issue. If i should use a different codec or format please let me know what the best would be to preserve quality?
Also what would the right bitrate setting be for the codecs? My options are (xvid, mpeg4, x264) Bitrate 768? or 4000? (these seem to be default)

All that matters is if the MP4 looks good to you. Of course, you may be able to compress more. There is no set bitrate to use. More complex or rapidly changing visuals require greater bitrate. Most converters use x264 to generate the converted video stream, and x264 offers a CRF mode which adjusts the bitrate based on the visual content complexity. If your app allows you to apply that mode, select a CRF value between 20-28 with lower values producing better looking but larger files.
I suggest switching to Handbrake, which is a better pedigreed tool for casual users. I also suggest using Potplayer or VLC to play video files - both are more robust than WMP.

@AdamM, your choice of bit rate and other codec settings, like CRF, are also driven by what you want to use the video for. If you just want to play it on your own computer for personal use, then go by your eye. However, if you want to use the file for digital signage or broadcast, you need to evaluate the quality in that context and you may want to use a different codec, you will likely need a higher bit rate, and you may need to change other settings to improve the quality.


text:
FFMPEG RTSP -> MPEG-DASH Stops on Long Streams
I need to provide MPEG-DASH live content generation from several IP cameras.
I use ngx_rtmp_module + ffmpeg for creating MPEG DASH content.
Everything work fine, but if I leave the conversion running for long periods of time, ffmpeg stops working after 1-2 days (sometimes early, sometimes later).
This is the ffmpeg command I'm using:
ffmpeg -re -f rtsp -rtsp_transport tcp -i <rtsp_url> -c copy -movflags empty_moov+omit_tfhd_offset+frag_keyframe+default_base_moof -f flv rtmp://localhost/myapp/mystream

Then ffmpeg tells me that some RTSP packets were lost and it freezes its work process.
Does anyone know any another tools that can do this conversion that won't stop until I tell it to or there is a problem with the camera? Or possibly another way with ffmpeg that avoids this issue?
Thanks in advance.

Recently I've had the chance to research a bit in this area, and I've come across some rumors that ffmpeg's support for RTSP is somewhat buggy, i.e. it stops suddenly or yields mangled frames.
If you need only video, you can use openrtsp app from Live555 it can output stream to stdout to be consumed with -i -" in ffmpeg (Live555's client seems to be state of the art wiht RTSP)


text:
Premiere Cut Video but Export File Size Bloats
I have a TV commercial that was sent to me that weighs in at 2.4mb .mp4 (MPEG Movie)
The people who made the commercial have a 5second credit title on the front of the commercial that I need to remove.
When I crop that out in Adobe Premier then export it, no matter what I do cannot get the file size anywhere near 2.4mb
I have tried Export "Match sequence settings", I have tried H.264, medium and high bit rates but all of these make the file blow out to 8 to 14mb.
Is there something I am missing here or need to be doing? Or is this just how Premier is?
I have never used Final Cut Pro and see that it has a $500 price tag but are thinking about giving it a go.
Any help would be great.

Match sequence settings confuses a lot of people. It doesn't mean the output will match the bitrate of your source files—after all you could use any number of source files in a sequence with all sorts of bitrates. Match sequence means the output will have the same frame size, fps, PAR and so on as the sequence.
Basically, if you want to get your output below a certain size you have to wind down the video bitrate, reducing the quality until it produces the desired result (you can use a bit of maths to get in the ballpark: calculate (the desired size in Mbits) / (length in seconds) and you'll have the Mbits per second budget you need to work towards.

To truly match the original export settings, you need to be clear as to what those settings are.
Find the file in file explorer, right click, and go to properties.  Go to the details tab and you should find an information list like the below.

This shows you the width, height, length and bitrate of the video.  Along with the format, these are the key things that will determine final video size.
Open your file in Premiere Pro, open the relevant timeline and then Press CTRL + M or go to File > Export > Media to open the export window.
Select H.264 as the format (standard encoding) and select a preset such as "Match source - medium bitrate".  This however will only match the timeline source, and not necessarily the settings of any video that are added to the timeline.  However, by selecting a standard preset like this, any custom settings that you have previously chosen will be wiped clean.  As you may have selected an option previously that might be upsetting your file size, this will reset those options to a standard preset.

In the tabs further down, check the width and height.  If they don't match the settings of your original file as illustrated in the first screenshot, uncheck the box to the right and then manually adjust these settings.  You should also check Frame Rate in the same way. - this can't be found in the windows property dialogue, but Premiere Pro will give you this information.

Next, scroll further down to the Bitrate settings.  Choose VBR 1 pass (2 pass won't change file size much, but increases render accuracy).  Then change the Target Bitrate ot match the bitrate you found in your original file as demonstrated in the first screenshot.

This should very closely replicate your original file.  Before you Queue or Export your video to render, check the "Estimated file size" at the bottom.  This is usually fairly accurate and should tell you if the exported file will be about the right size or not.

Hope that helps, feel free to comment.


text:
How do I make a video play on an image?
I am trying to make an intro for a video where the video only plays within an image. In this video, during the first 5 seconds, an image appears as white over the video and then switches to the video playing within the image over black. How do I reproduce that effect?

What software are you using?

Possible duplicate of Looking for free program that allows PiP, and cutting/splicing

If you have the logo or title in Black and white then you will simply mix between them as they mix differently on the video background. But the trick is making sure that your editor can do "layer math".
Perhaps you've noticed in Photoshop or other paint programs that you can do more than simply Mix 2 images together (like a dissolve)?
You want to look for a Blend type for the logo/title clip, some apps call this Composite type.

For the image to appear white over video, you would use the white
logo on a black background then mix by an "Add" function. Where the
image is black there is nothing to add. Where it is white then it
all gets added on top of the video.
For the image to appear black with video in the logo shape, you would use the white logo on a black background then mix by a "Multiply" function. Where the image is black the video gets multiplied down to 100 (or black). Where it is white then it all gets multiplied by zero (transparent).

Then apply a dissolve to then end of one logo blend clip into another logo blend clip.


text:
Netflix encoding system - MAPLE
I understand that Netflix does all their encoding in AWS using EC2.  They have a custom encoding software called MAPLE that chunks all source video into 2-3 second chunks and encodes in multiple codec and formats across many EC2 instances in parallel.
Netflix is known to open source their software, however I am not finding that MAPLE has.  Does anyone know if an alternative / similar encoding/packaging scheme is available in open source?
Thanks for your attention.

You might consider using AWS' transcoding service.  I'm not sure if it's as parallelized as MAPLE, but it is very fast.  Perhaps it's fast enough as-is for your use case?

MediaEncodingCluster is an Enterprise Class, Video Cluster Environment with a Plattform Independent Client - Server Architecture for distributed video/audio converting/encoding tool over a grid Computing Network Design. more on http://docs.codergrid.de
Note: I haven't personally tried this yet. I'll update with some benchmarks when I do.
Sources:
https://sourceforge.net/projects/bripper/
http://codergrid.de/trac/


text:
How can you automatically trim a new layer in After Effects?
I know there are short cuts (Alt + ] or [) when creating a new layer in after effects that will trim the layer to either side of the Current Time Indicator.
The question is, is there a better way to create a new layer and not have to manually trim it because by default it spans the entire comp. For example, can you create a new shape layer and trim it to the current Work Area? I am specifically looking for the most efficient method for trimming new layers.

I'm not sure what you're asking. What to you mean "set to the current workspace"? A workspace is your window setup and has nothing to do with your project.

Sorry for the incorrect term, you are correct. I was referring to the "Work Area" and have updated my question.

I don't think it's possible to automatically trim layers as you import them.  You can trim a comp to your work area, if you've selected a beginning and end point on your timeline (using B and N), but this isn't really going to help you.


text:
Can I Use Long Manfrotto QR Plates on a short head?
I've been considering whether to buy the 701HDV or the 502AH.
I've pretty much settled on the 502AH for its superior drag quality, but one thing a lot of people do not consider is the type of Quick Release (QR) plate they use.
The 701HDV and 501HDV both use the 501PL-type plate. The 502AH on the other hand uses 504PLONG plates, which are significantly bigger.
I have found out that you can use short plates on a "long" head by looking here, but I'm not sure if I can put long plates on a "short" head.
The reason I ask is that I have a few short plates left over from an older tripod that should fit in the 502AH, and if I buy a non-Manfrotto-branded QR adapter for something else, I can only find short plates.
So, can I use the long plate that comes with the 502AH with a short head or short QR adapter?
From looking at photos I can't see why not, but there's always a chance that it doesn't. Does anyone know for sure?

Did you try contacting Manfrotto directly? Here is their contact page: http://www.manfrotto.com/About+Us/Contact+Us/

I have used the long plates on a shorter head.  Using it from a larger tripod on the monopod with no problems.

Yes this will work fine. Many people prefer the longer plates because it allows you to balance a long lens.


text:
avconv: What are the mpegvideo private options?
I'm using avconv on LinuxMint 17.3 to convert video.
The avconv man page states for multiple options, that they are "Deprecated, use mpegvideo private options instead"
Can someone tell me what these private options are and where they are documented?
I noticed that the WinFF program uses -flags +cbp but I don't know what +cbp does or what the equivalent might be. Can anyone enlighten me or point me to more detailed documentation.
Thanks

What codec are you converting to? MPEG 1? 2? H.263+?

I'm actually converting to flv the full command given by WinFF is:
/usr/bin/avconv -y -i "/home/jesse/Videos/video/00-Other_Projects/00000.MTS" -vcodec flv -f flv -r 29.97 -filter:v scale=320:180 -aspect 16:9 -b 300k -g 160 -cmp dct -subcmp dct -mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -ab 56k "/home/jesse/00000.flv"

Can you not use H.264 in FLV?

Private options are switches/flags only applicable to specific encoders or decoders, and ignored by anything else.
To see the available private options for an encoder, use avconv -h encoder=name e.g. avconv -h encoder=flv
For LibAV, these are the private options available for the MPEG-1 & 2 encoders.
{ "mpv_flags",      "Flags common for all mpegvideo-based encoders.", FF_MPV_OFFSET(mpv_flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "skip_rd",        "RD optimal MB level residual skipping", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_SKIP_RD },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "strict_gop",     "Strictly enforce gop size",             0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_STRICT_GOP }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "qp_rd",          "Use rate distortion optimization for qp selection", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_QP_RD },  0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "cbp_rd",         "use rate distortion optimization for CBP",          0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_CBP_RD }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "naq",            "normalize adaptive quantization",                   0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_NAQ },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "mv0",            "always try a mb with mv=<0,0>",                     0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_MV0 },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
{ "luma_elim_threshold",   "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)",\
                                                                      FF_MPV_OFFSET(luma_elim_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS },\
{ "chroma_elim_threshold", "single coefficient elimination threshold for chrominance (negative values also consider dc coefficient)",\
                                                                      FF_MPV_OFFSET(chroma_elim_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS },\
{ "quantizer_noise_shaping", NULL,                                  FF_MPV_OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT, { .i64 = 0 },       0, INT_MAX, FF_MPV_OPT_FLAGS },\
{ "error_rate", "Simulate errors in the bitstream to test error concealment.",                                                                                \
                                                                    FF_MPV_OFFSET(error_rate),              AV_OPT_TYPE_INT, { .i64 = 0 },       0, INT_MAX, FF_MPV_OPT_FLAGS },\
{"qsquish", "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function)",                                                                          \
                                                                    FF_MPV_OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 0, 99, FF_MPV_OPT_FLAGS},                        \
{"rc_qmod_amp", "experimental quantizer modulation",                FF_MPV_OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS},           \
{"rc_qmod_freq", "experimental quantizer modulation",               FF_MPV_OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS},             \
{"rc_eq", "Set rate control equation. When computing the expression, besides the standard functions "                                                                           \
          "defined in the section 'Expression Evaluation', the following functions are available: "                                                                             \
          "bits2qp(bits), qp2bits(qp). Also the following constants are available: iTex pTex tex mv "                                                                           \
          "fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex.",                                                                         \
                                                                    FF_MPV_OFFSET(rc_eq), AV_OPT_TYPE_STRING,                           .flags = FF_MPV_OPT_FLAGS },            \
{"rc_init_cplx", "initial complexity for 1-pass encoding",          FF_MPV_OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS},       \
{"rc_buf_aggressivity", "currently useless",                        FF_MPV_OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \
{"border_mask", "increase the quantizer for macroblocks close to borders", FF_MPV_OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS},    \
{"lmin", "minimum Lagrange factor (VBR)",                           FF_MPV_OFFSET(lmin), AV_OPT_TYPE_INT, {.i64 =  2*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS },            \
{"lmax", "maximum Lagrange factor (VBR)",                           FF_MPV_OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 = 31*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS },            \
{"ibias", "intra quant bias",                                       FF_MPV_OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS },   \
{"pbias", "inter quant bias",                                       FF_MPV_OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS },   \
{"rc_strategy", "ratecontrol method",                               FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS },   \
{"motion_est", "motion estimation algorithm",                       FF_MPV_OFFSET(motion_est), AV_OPT_TYPE_INT, {.i64 = FF_ME_EPZS }, FF_ME_ZERO, FF_ME_XONE, FF_MPV_OPT_FLAGS, "motion_est" },   \
{ "zero", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_ZERO }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
{ "epzs", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_EPZS }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
{ "xone", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_XONE }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
{"b_strategy", "Strategy to choose between I/P/B-frames",           FF_MPV_OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 2, FF_MPV_OPT_FLAGS }, \
{"b_sensitivity", "Adjust sensitivity of b_frame_strategy 1",       FF_MPV_OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.i64 = 40 }, 1, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"brd_scale", "Downscale frames for dynamic B-frame decision",      FF_MPV_OFFSET(brd_scale), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 3, FF_MPV_OPT_FLAGS }, \
{"skip_threshold", "Frame skip threshold",                          FF_MPV_OFFSET(frame_skip_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"skip_factor", "Frame skip factor",                                FF_MPV_OFFSET(frame_skip_factor), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"skip_exp", "Frame skip exponent",                                 FF_MPV_OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"skip_cmp", "Frame skip compare function",                         FF_MPV_OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
{"sc_threshold", "Scene change threshold",                          FF_MPV_OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"noise_reduction", "Noise reduction",                              FF_MPV_OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"mpeg_quant", "Use MPEG quantizers instead of H.263",              FF_MPV_OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS }, \
{"ps", "RTP payload size in bytes",                             FF_MPV_OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"mepc", "Motion estimation bitrate penalty compensation (1.0 = 256)", FF_MPV_OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.i64 = 256 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"mepre", "pre motion estimation", FF_MPV_OFFSET(me_pre), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \

That partially answers my question of what +cbp does, but how to I invoke these private options with avconv?

By inserting -option <value> e.g. -mpv_flags cbp_rd or -lmax 5000

Great. You have helped me notice AVOptions These options are provided directly by the libavformat, libavdevice and libavcodec libraries. To see the list of available AVOptions, use the -help option. Unfortunately neither avconf -help, avconf -filters nor avconf -codecs give me enough information. Can you please tell me where these options are documented? Please give step by step instructions like your talking to someone who knows NOTHING. ;-) I don't know where LibAV, libavformat, libavdevice or libavcodec are documented, how they work or how to use them directly. Cheers :-)

To see the available private options for an encoder, it should be avconv -h encoder=name e.g. avconv -h encoder=flv


text:
How to calculate the length of the video file that was encoded so far?
I am using ffmpeg to convert a video file to H.264 format. If I call ffprobe while ffmpeg is still running the duration of the video is not known. Only when ffmpeg finishes the ffprobe will display the duration.
Similar, if I run mplayer to play the video while it is still being encoded the duration is either unknown or displays incorrectly.
Is there a way to know duration of the resulted video (h264 in .mkv container) while it is still being encoded by ffmpeg?
Edit: I will make the question a little bit more clear.
I am interested in knowing how long is the video which was encoded so far. Let's say the input file is 1 minute 45 seconds long. The resulting file should preserve the length. But I would like to know how much did ffmpeg encode so far. If we can determine the length of the video after conversion is done, shouldn't there be a way to determine the length of the video that was already processed and ready to be played?

Short answer is No.
Longer answer is, it depends.
If you're encoding a file, then generally the output is the duration of the input, unless there's speed change or trim filters or -ss, -to, -t options applied. For a live input, FFmpeg will stop the encode when it encounters EOF on the input, so unless you know that, you won't know the output duration. For multiple inputs of differing duration, it will depend on what the command is e.g. is there a -shortest in there, is there an amix, which defaults to the longest of the inputs, or amerge which terminates upon the shortest input.
By default, the ffmpeg console readout will display the progress of the encoding in realtime i.e. the duration encoded, so far.

Thank you for explanation. I edited my question and added some details, could you check it and see if you can add more data to your answer?

As my last para states, ffmpeg already displays this info in the console output, which is streamed to stderr

This is true. I completely overlooked it! Thanks again.

Also, I would like to add there is an FFmpeg option -progress that causes it to output the aforementioned progress information in a machine friendly format that can be easily parsed.

See the -report option. From the manpages:

-report
Dump full command line and console output to a file named "program-YYYYMMDD-HHMMSS.log" in the current directory.  This file can be useful for bug reports.  It also implies "-loglevel verbose".
Setting the environment variable FFREPORT to any value has the same effect. If the value is a ':'-separated key=value sequence, these options will affect the report; option values must be escaped if they contain special characters or the options delimiter ':' (see the ``Quoting and escaping'' section in the ffmpeg-utils manual).
The following options are recognized:
file
set the file name to use for the report; %p is expanded to the name of the program, %t is expanded to a timestamp, "%%" is expanded to a plain "%"
level
set the log verbosity level using a numerical value (see "-loglevel").
For example, to output a report to a file named ffreport.log using a log level of 32 (alias for log level "info"):
FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
Errors in parsing the environment variable are not fatal, and will not appear in the report.

Combine with -stats and your one | head -n 2 | tail -n 1 to go:

-stats (global)
Print encoding progress/statistics. It is on by default, to explicitly disable it you need to specify "-nostats".

If you have trouble with its progress bar, which uses \r to rewrite the same line, you can ffmpeg -stats ... 2>&1 | tr \\r \\n to head&tail.


text:
ffmpeg nearest-neighbor downscale not working as expected
I'm trying to downscale a video with nearest-neighbour scaling, but the results are very poor.
To try and get to the bottom of it, I created this image which is a repeating pattern of various colours. The expected result is that the output image, when downscaled from 1080p to 360p, is solid green (#00ff00). Or possibly red, if it samples from the top-left instead of the centre.
Instead, the resulting image is green with vertical bars of #25e525 and #44c383, neither of which are present anywhere in the original image.

I've applied various other things to my command, as seen below, but it makes no difference.
ffmpeg -i 1080.png -vf scale=-1:360:flags=neighbor+accurate_rnd:sws_dither=none -pix_fmt rgb24 360.png
Upscaling works fine - it's just downscaling that goes wrong. Any ideas?

After some more back-and-forth with Bing, it seems zscale works far better than scale.
ffmpeg -i 1080.png -vf "zscale=-1:360:filter=point" 360.png
With video, add format=pix_fmts=rgb24, to the start of the vf chain.

It also seems that full_chroma_inp works with scale. Another option in case zscale isn't available.
ffmpeg -i 1080.png -vf scale=-1:360:flags=neighbor+full_chroma_inp 360.png


text:
Replicate opacity animation to every title in my sequence
I have several titles in my sequence that I start with zero opacity, goes to full 100% after 1~2 seconds and at the end it disappears in a new animation changing opacity from 100% to 0%.
How can I repeat this without having to create keyframes and set their opacity manually for every title?
I tried using Cross Dissolve but I can't have it more than once in the same sequence (and I don't know if it works both for fading in and out).
UPDATE
One option I've found is to press and hold Alt key while dragging and dropping the existing title in the sequence to create a new one with the same animation.

I tried using Cross Dissolve but I can't have it more than once in the same sequence (and I don't know if it works both for fading in and out).

I'm not sure what you mean there. You can add transitions to the beginning and end of every clip (a title is considered a clip in the context of premiere), or respectively to every cut between adjacent clips. In fact, if you only want the titles to fade in and fade out, this would be the preferred method. Far easier than doing it with keyframes. Two quick tips regarding this approach:

You can quickly add the default transition1 to multiple titles/clips by selecting them in the timeline (select multiple clips by holding CTRL and left-clicking on them) and pressing CTRL + D.
You can set the default length of transitions in frames or seconds in the program preferences under Preferences → General → Video Transition Default Duration. This will also affect transitions added using the shortcut described above, but changing this setting will not change transitions that are already applied to your clips.

How can I repeat this without having to create keyframes and set their opacity manually for every title?

Once you have created the keyframes for the first title clip, right-click on it and select Copy from the context-menu. Then, select all the title clips that you want to add the same keyframe animation to in the timeline and right-click on one of them. Select Paste Attributes… from the context menu. This will open a context window where you can select which effects you want to paste (In your case, select Opacity. You might also have to select Scale Attribute Times. Note that this will work with any effect you have added to your clip, not just the default ones). Click OK and it will apply the selected effect settings to all the selected clips.

1 The default transition is highlighted with a blue border in the effects panel. You can change it by right-clicking on the desired transition in the effects panel and selecting Set Selected as Default Transition.


text:
How can I record video with a Canon 1Dx DSLR which will feed straight into Adobe Premiere or Final Cut?
My university is setting up a video production studio and they want to use a DSLR camera to record videos. However, they want the camera to feed the video into an iMac with Premier or Final Cut installed while it is recording, so I can preview it on the computer screen. Can this be done?
I read somewhere that Premiere and Final cut both use firewire to do this but neither the 1Dx and iMac have firewire inputs. I also read that I can use USB 3 or thunderbolt cable and a Black Magic or AJA box but there are so many products on their sites and I'm confused. Also, the 1Dx only has USB 3 and HDMI outputs.
Please help.
Best Wishes
Greg

Any DSLR that can provide a live video signal (such as via HDMI) can feed that signal to a recording device (such as Atmos SHOGUN) or monitoring device (such as a TV monitor).  In order for your computer to handle live video, you need a live video input port, typically found on cards such as the Blackmagic Design Deck Link card.  BlackMagic's Media Express software can record and/or monitor live video.
I would be surprised if Adobe Premiere Pro (or other NLEs) can handle live video as an editable stream.  But MediaExpress can record with a confidence monitor, and then Premiere Pro can edit the resulting file.

In Final Cut Pro X, you simply connect your camera or card reader to the computer, and choose "Import" and it should show up. There's a tutorial here.
The documentation for Final Cut Pro X is online. You can read the docs on file import here.
I've not used Premiere in a few years, so I don't know the workflow there.

Is is possible to see the footage in Final Cut while the camera is recording, instead of recording first and then importing it?

I don't know. According to the manual you can live record from the computer's built-in camera or a connected camera. However, I've not tried it with a DSLR. Perhaps if you read that section of the manual it will give you more details.


text:
Automatically restart ffmpeg on error from inside bash script
I use ffmpeg to livestream an Axis camera feed to youtube livestream. I have a beefy server with 32 GB of ram and plenty of CPUs doing the processing, but still the stream errors out from time to time.
Would it be possible to change my bash script so it restarts automatically on error?
This is my ffmpeg command, and I run it from a screen session:
ffmpeg -re -thread_queue_size 512 -rtsp_transport tcp -i "${source_url}" \
   -acodec libmp3lame  -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 \
   -i /dev/zero -vcodec libx264 -preset medium -s 1280x720 -g 6 -r 3    \
   -f flv "rtmp://a.rtmp.youtube.com/live2/${youtube_stream_key}"

These are some of the error messages which cause the encoding to error and stop:
Failed to update header with correct duration.
Failed to update header with correct filesize.

this error is rare since I raised the thread_queue_size parameter:
Thread message queue blocking; consider raising the thread_queue_size option

I am looking for answers on how to make ffmpeg automatically restart.

Since you don't wish to tweak the FFmpeg syntax and a script will have to watch & restart ffmpeg, this is off-topic here and better placed at Super User or Unix/Ubuntu SE.

@Mulvya your comment is analogous to someone asking how to setup automatic hard drive backup, and you respond "well, you shouldn't need automatic backup - fix all hard drive failure causes instead".  Undoable sir.

Your Q is about writing a script to restart a program. It could be any program which exits unexpectedly. That it happens to be ffmpeg is irrelevant, since ffmpeg can't restart itself. You'll have better luck on Super User with the bash tag.

I'm voting to close this question as off-topic because this is specifically about bash scripting rather than Video Production.  The fact that you are running FF-MPEG is immaterial to what you are trying to accomplish (have bash restart a program when it fails) and it would be a duplicate on any sites it could be migrated to (and in fact it appears you already found one such answer).

To expand a bit on that close reason.  The key distinction is that there is nothing about being video production related that makes the question unique.  There is not video production or even ff-mpeg specific concern here.  Superuser or ServerFault are both far more qualified to answer the question in the general sense and, in fact, already have.  If it needed to know something about the return of ff-mpeg or you were trying to do it through ff-mpeg itself, it would be on topic, but that doesn't appear to be the case here.

Well I didn't know the solution would be a bash solution until one of the commenters suggested looking for a bash solution.  I thought maybe ffmeg had an option or feature to restart on error.  So my question was specific to ffmpeg.  Perhaps I'm the only one who didn't know this would be the answer, or instead perhaps other people video producers would benefit.  You guys seem to have all the answers, so I'll leave it up to you.

ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2 ....

I found this method on serverfault.com and it seems to restart ffmpeg on error:
cmd="ffmpeg -re -thread_queue_size 512 -rtsp_transport tcp -i ${source_url} \
   -acodec libmp3lame  -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 \
   -i /dev/zero -vcodec libx264 -preset medium -s 1280x720 -g 6 -r 3    \
   -f flv rtmp://a.rtmp.youtube.com/live2/${youtube_stream_key}"

until $cmd ; do
        echo "restarting ffmpeg command..."
        sleep 2
done

without " " it is showing error: -re: not found