text:
What is the recommended settings for video editing using ffmpeg?
I am quite new for using FFmpeg, and I am using FFmpeg in screen recording. I checked the online documentation in this link ffmpeg documentation "Capturing your Desktop / Screen Recording", but I didn't find sufficient information.
I have a 4k laptop with invidia GPU, and I am using the below command to screencast the video (4k, 60 f/s), and audio from my laptop.
ffmpeg -video_size 3840x2160 \
 -framerate 60 \
 -f x11grab -i :1 -f pulse -ac 2 -i default \
 -c:v libx264 \
 -crf 0 \
 -qp 0 \
 -preset ultrafast videoname.mp4

I have some problems in these settings as following:

The output video is too large, and I need to reduce the size without touch the quality at all.
The output video seems to be not a row video, and it takes too much time in video editing decoding and encoding. I am not sure if there is a recommended setting for video editing. As I did some search and found the above is advised, but in practice perspective, it is not efficient.

Below is my Linux distro information:
Distributor ID: Ubuntu
Description   : Ubuntu 20.04.1 LTS
Release       : 20.04
Codename      : focal

Welcome! Your 2 goals are potentially mutually exclusive. Usually you get better editing performance with less compressed source material. What editor are you using? What is your target audience? Do you really need 4k output?

As well as the raster size, do you really need 60fps? Are you slowing it down in post? If not you can halve the data rate by using 30fps

@MichaelLiebman I am using Hitfilm Pro 14. My target audiance are mainly technical and IT guys. Yes, I need 4K output this will be  a nice part in my videos..

@stib I am not sure if 60fps is required or not in screen recording for coding and presentation.

I think my main requirement is to enhance the video editing speed and make the quality 4K as is.

For screen recording, you could absolutely use a lower frame rate. Try 30 or 24 fps. Depending on your content, you could even go 15fps. Is there lots of smooth motion?

I am not sure, But I think this could reduce the size, but it is quite not affecting to make video editor more responsive and less slow when editing 4k.

And consider how people are going to be watching it. Mobile? On the web? Are people actually going to see it in 4k? And if they do is it going to be so compressed that it would look better in HD with less compression.

It depends on but some people are using youtube and most of them have a 4k screen.

You should investigate using proxies when you're editing. This lets you edit lower resolution copies, but use the full resolution when rendering. Not sure if Hitfilm does that though, you'll have to check the docs.

@stib Does ffpmeg has a recommeded encoding or format for editing?

Let us continue this discussion in chat.


text:
After Effects 2020 shape layer path ignoring 3D orientation when used to parent a null?
I'm trying to animate a null to follow an ellipse path. The path is rotated in 3D space. When I copy the path to the position of the null, it copies and the null is animated around the path but the 3D orientation setting on the shape layer is ignored and the null's keyframes are setup to point directly at the camera as if it was in 2D mode:

In this screenshot, the red keyframe track is the position data pasted to the null and the white circle is a stroke of the path. Rotating the null doesn't do anything, of course, because it's the keyframes that are off.
I'm pretty new to this so I get the feeling I'm not describing the problem very well or there's a simple solution I haven't figured out yet. Any guidance would be greatly appreciated. Thank you!

The shape layer's path is in layer space. In other words the coordinates are relative to the layer, regardless of where the layer is in composition space. The contents of a layer are always at 0 on the z axis relative to that layer. So when you apply that path as the motion path to a layer in composition space, it will always move on the X/Y plane, at 0 on the z Axis.
To make the null layer use the same coordinate space as the shape layer, you can simply make it a child of the shape layer. Then the coordinates will be relative to its parent. If this is not possible, you could use the toWorld() layer space transform in an expression, thus:
thisComp.layer("shape Layer").toWorld(value);

and apply that to the position. What that does is take the position value and find out where that would be in the layer "shape layer", then give the value of where that is in comp coordinates.
There's a little gotcha, in that paths on shape layers are measured in comp space. Before copying the path to the null, you might want to set the anchor point of the shape layer to the center of the content, using ctrlalthome. Otherwise you can subtract its position from the value of the copied path:
thisComp.layer("Shape Layer 1").toWorld(value-thisComp.layer("Shape Layer 1").transform.position)

This will never not break my brain

Ha! If you think that's hard, try understanding Quaternions in Blender. They literally involve 4-dimensional hyperspheres!

source: Stack Exchange

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

sort: votes


text:
Create a photo finish from a video?
In sports with close finishes a photo finish is used: this takes repeatedly a vertical line of pixels of the finish line and assembles them next to each other into a photo. Now the horizontal position in the photo corresponds to the time. This is done with special equipment but could it be also recreated from a video using ffmpeg? Say, you take the vertical pixel line from the middle of the frame and assemble them into a photo.

#! /bin/bash
set -e

ffmpeg -ss 0:18 -i "$1" -to 10 -vf "crop=2:1080:960:1080" "video%03d.png"
montage -tile x1 -geometry +0+0 video*png out.png
rm video*png

The code above achieved what I was looking for: it takes out vertical strip out of every frame (for 10s, starting from 0:18) and writes it to a file. These files are assembled next to each other into a single image.

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


text:
How to keep framerate but increase video duration with ffmpeg minterpolate?
I have a looping blender animation in mp4 format that is 10,000 frames long, but I basically want to make it longer to the point where the changes between frames are imperceptible, but the animation still progresses over time. I've tried just stretching the clip in kdenlive, but it looks like it does no frame interpolation with default settings, and the transitions between animation positions is perceptible and instantaneous.
I've seen examples of ffmpeg minterpolate used to convert to higher frame rates, and ffmpeg examples to slow down videos (and increase video duration), but is it possible to do both at once with minterpolate?
I'm hoping to get the length to 10 hours, but details about the end frame rate, codecs, etc isn't too important as long as the video

is able to be uploaded to youtube (https://support.google.com/youtube/answer/1722171)
takes <24 hours to render
doesn't have perceptible changes in the animation

I also asked this question on reddit and got a good answer, so I'll paste it here for maximum future search-ability of this problem:

minterpolate has multiple modes:

Duplicate frames as necessary
Blend frames as necessary
Actually calculate motion vectors and perform interpolation

The third option is the highest quality (if it works correctly, which
it doesn't for me, always produces weird artifacts) but it's
incredibly slow. Definitely not possible in less than 24 hours. So
option two is probably what you're after. That being said, 10,000
frames in 10 hours (36,000 seconds) equals a raw framerate of 10/36
fps (0.2777778), so I don't think frame blending will look very good,
but I guess you could try (I'm assuming your animation is stored in a
series of image files):
ffmpeg -f image2 -framerate 10/36 -i "frame_%05d.png" -filter_complex "[0:V:0]minterpolate=fps=25/1:mi_mode=blend[out]" -map "[out]" -c:v libx264 -pix_fmt yuv420p -crf 20 -f mp4 -movflags +faststart "output.mp4"


text:
How can one remove an image from a screenshare recording?
I have a  screenshare recording: this is a typical academic presentation where some speaker  talks over a sequence of several slides. The video only shows the slides (screenshare). One slide contains an image for which I don't have the license.  How can I remove this image from a screenshare recording?

One way to do it is to overlay the relevant part of the presentation with another image (could be a blank image). This is called picture in picture, which is often used to overlay another video across part of a background video, but of course the same principle works for still images too.
You need a video editor that offers such a feature, any professional editor can do it and probably many free editors too.
Basically, you have the presentation video as one track and add the replacement image as a second track above it with the duration limited to the time segment where the problematic image is shown. This overlay track will hide the underlying image. You can resize the overlay image, so only the relevant portion of the presentation is covered.
The exact steps depend on the video editor you want to use. If you don't have a video editor yet, you could try the free version of DaVinci Resolve and check out YouTube tutorials on the picture in picture topic to see how it's done with this editor.


text:
Is there an easy way to hold a stabilizer?
I recently purchased this stabilizer in order to shoot some video footage:
https://www.walimex-webshop.com/en/walimex-pro-dslr-steadycam-stabypod-m-80cm.html
The stabilizer is easily balanced and I am not using all the counter weights since I shoot with a lightweight mirrorless camera. Yet after using it for a few minutes I feel a pain in my arm so I can not continue holding it steadily.
I have seen many videos in YouTube which demonstrate how to hold and move with it, yet none mentions the fatigue which shortly appears.
I wonder whether it is what it is or if I am doing something wrong. Maybe a gimbal would be more easy to use?
Any tip or personal experience sharing would be appreciated.

How far are you reaching your arm out? Remember the closer you keep it to your body, the less fatiguing it will be.

@Dr Mayhem Yes indeed, but holding it too close to the body will not absorb the vertical  vibrations as if extended, plus it will prevent the easy movement of the man who holds it, right?

When I'm using any sort of stabiliser I hold it no further than a foot away from my body - that gives ample room for movement, and means I can work half a day without fatigue


text:
Why does audio not work for this mp4 when played on IPad with headphones plugged?
I'm hosting this video : https://itype.techforge.com.au/assets/videos/repeated/WordRat.mp4.
It seems to work fine unless you happen to be on an IPad and plug the headphones in.  With the headphones unplugged audio works normally.  With headphones plugged in the audio cuts out.
To rule out the issue being caused by something on my server I'm also hosting https://itype.techforge.com.au/assets/videos/sample-mp4-file.mp4.  The audio for this mp4 is perfect on the same IPad whether headphones are in or out.
I've also found http://techslides.com/demos/sample-videos/small.mp4 which has the same IPad + HeadPhones issue that I'm having with my mp4.
I'm guessing this has something to do with the audio codec, but I don't know enough to know exactly what's wrong or how to fix it.
Media info for the sample-mp4-file:
Codec: MPEG AAC Audio (mp4a)
Type: Audio
Channels: 3F2R/LFE
Sample rate: 48000 Hz

Media info for the WordRat:
Codec: MPEG AAC Audio (mp4a)
Language: English
Type: Audio
Sample rate: 48000 Hz
Bits per sample: 16
Bitrate: 317 kb/s

The video that isn't working was produced using Adobe Animate and Adobe Media Encoder.
Any suggestions gratefully received.


text:
Standard way for handling different resolutions when concatenating videos
I am building a small tool to take the short videos I record from different devices (e.g. iPhone, camcorder, etc), and concatenate them together chronologically. Everything is working up to the point of resizing/padding the videos before concatenation. My solution right now is to just take the max width and max height and then center and pad all the videos accordingly. This doesn't look great though.
For example, I have a 1280x720 stream from my camcorder and a 1920x1080 vertical (i.e. rotated) video from my iPhone. My current solution leads to a lot of padding and a square image.
When I use Shotcut the output looks quite visually appealing: the camcorder video is full screen, and the iPhone video is rotated and then padded. However, it seems as though it must scale the 1280x720 stream to 1920x1080 as the final mp4 file is 1920x1080. I'm not sure I want scaling as the default behavior though. For example, if I had a 4k video and a 1280x720, I imagine the scaling would look terrible.
I know that I can always add selectors to choose what resolution I want, but I found that the production software I looked at (Shotcut, Premiere, etc.) seem to abstract these decisions away.
Is there a optimal way to make this decision? What the standard way of handling these differing resolutions when combining videos in software like Shotcut or Premiere?

I have written various approaches how to fix this below and you can automated the ones from the first two blocks with a clever rule set. But the content-dependent options should be done manually. So if you want to use this, maybe you find a way to tag those videos first by hand, for example by using metedata and your tool can then read the metadata and apply the correct solution. Anyway, there is no real standard way and it's not really common for professional productions to deal with clips in different frame sizes. If so, it is well planned and those scenes are usually filmed in a way that parts of the frame can easily be cropped away afterwards.
Videos with the same aspect ratio
You can downscale to the lowest common resolution if all the videos share the same aspect ratio. As you correctly assume, upscaling would not always look good. Downscaling will not be noticable to the general viewer.
Videos with different aspect ratio
If the videos don't have the same aspect ratio you have to add black bars horizontally or vertically. My recommendation is to use only black bars for 2 different frame sizes, not more. This means some videos will be full screen and all the rest will have the same sized bars. Either keep all bars horizontally or vertically. Anything else might confuse the audience too much. In case you have 3 or more different frame sizes, I recommend to manually crop them before starting your automated solution.
Options depending on content
If it works for your story, you can render mutliple source clips in the same frame, for example take 4 lower resolution clips, put each into a different quarter of the frame, maybe with seperating bars in between. It then resembles like a wall of screens. Generally this works well if you want to show things happening in parallel. One example is filming various instrument players individually while they perform a musical piece. This is also a good solution, when you have vertical videos shot with a smartphone: you could combine 2 or 3 in the same frame, just put them next to each other.
Another option is picture in picture, which is often used for all kinds of presentations, where you have either slides or a shot of the main stage filling the screen and a smaller overlay with the video of the speaker(s) near one of the corners.


text:
Moving Camera Cable Management
I am building a production studio, and in the plans have a track that curves around a bend. I have 2 SDI lines that are attached to it, and power that goes to the camera. I want a way for the cables to stay neat and out of the way. If the track was straight, I would use something like a nylon drag chain, but since it is curved, I am posting this.
Any thoughts? There is always the option of putting it into some TechFlex and let it drag around, but that is less than ideal.
Any thoughts, suggestions and recommendations would be appreciated. Thanks!

Cable trolley, attached to the ceiling.


text:
Easy way to create AudioGrams, ideally with waveform & Subtitles / Closed Captions with progressing marker on them? Free to start with?
Easy way to create AudioGrams, ideally with waveform & Subtitles / Closed Captions with progressing marker on them? Free to Start with?

Easy way to take my writings; quotes, poems or short insights into video with Narrated voice over,

Ideally with waveform &
A karaoke style or jumping/ progressing cursor/ marker on the text - Subtitle/ Captions?

Keeping some chosen static background image or the writing as an image.

Basically, give my writings a little bit of voice, diction, feel, vibe.

Thoughts/ suggestions on simpler easy mobile apps that can be used to this?

Or a

SIMPLER - REPEATABLE way to use a Video Editor for this PURPOSE? without having to master A VIDEO EDITOR?

Setting up an automated pipeline for this would take days for a trained person, weeks for someone who doesn't work in the industry. I would recommend you use After-Effects for those motion-graphics. Trapcode sound-keys has very good possibilities for audio-spectrums and wave-forms. Animating the text and highlighting it, karaoke-style would be quite easy. However, both After-Effects and Trapcode (by Red Giant) come with a cost.


text:
Correct method to set font-size in .ASS file
My final video output is 1080:1920 (9:16 aspect ratio), after padding.
In .ass file, I set
PlayResX: 1080
PlayResY: 1920
and then the font-size=130. But, this font-size doesnt occupy exact 130 pixels on screen, when I render the video using ffmpeg.
If my video (in react js UI) width=108px; height=192px; then font-size = 13px (=130*(192/1920)) appear much larger than what 130px looks in 1080px:1920px (in proportion). However, if I multiple 13px by 2/3, I get almost the correct size.
What is a more robust method of setting font-sizes in .ass (with ffmpeg)?

Did you ever get the solution to this? i have been multiplying the font by 1.4 to make it almost the same but thats just an arbitrary number i found from trial and error.

I met this issue when I'm developing a player. And I checked codes in Aegisub (line:159). I saw there is a scale from calculated size to real size. I think this is to keep the rendered text height being same with set fontSize. Maybe there's a spec that says something about this.


text:
Can I run davinci resolve without openCL capable GPU?
Hey I'm currently using my old macbook pro 13 and i just found out it doesn't have/support any openCL GPUs and therefore i can't run davinci resolve. Is there any way to go around it? If not, are there any other video editing apps that doesn't require openCL capable GPUs? premiere pro maybe?

I don’t think there’s a way round it. Premiere can operate using CPU only.


text:
using canon 5D markiii or Olympus OMD EM5 as computer video camera?
I tried the EOS utility and cam link USBs but nothing works for the two cameras that I own---canon 5D mark iii or Olympus OMD EM5. I understand that they are pretty old models. I was wondering if anyone figured out how to make it work?
Thanks!

Neither of these cameras offers video out. They are still cameras that can take limited movies, that you can then download using the USB port for bulk transfer.
It's really worth reading the manuals for your cameras - if you don't have them with your camera, they are available for free online.

5D Mark III... I  believe has uncompressed hdmi out. You need usb 3 on your PC and a device like a Magwell HDMI to USB or Logitech Screen Share. Or a Black Magic Design mini Recorder PCIe card. The Magwell is a nice piece of gear. I disagree with "limited movies" with respect. My Canon DSLR takes 1080p@24 @30 720p@60 video. But the original poster wants to use a DSLR as a studio camera or high quality "webcam" I believe.
Update: If you are on a Linux host this guy has a solution for you.
gphoto2 vl2loopback and ffmpeg into OBS.

I never tried this one... Canon Web Cam Utility. It is new.
https://www.usa.canon.com/internet/portal/us/home/support/self-help-center/eos-webcam-utility/

The only way I have found to achieve this with a Canon, is to use the EOS utility to display the video on your monitor, then use a screen-capture app like CamTwist, to capture an area of your screen and turn it into a virtual camera. Not idea, as anything accidentally straying into that part of the screen will appear in your webcam output.


text:
Best export settings for still image with audio
Suppose I have a sequence in Premiere which is an audio track accompanied by a single still non-moving image (e.g. a song and the album art).
Being that there is no video (or motion of any kind), what would be the most efficient settings in Adobe Media Encoder to use to export this file for upload to YouTube? When you use the regular YouTube 1080p setting, the files are definitely too big.
The audio track itself was created in Premiere, so it would be more convenient to encode everything from the same place

See https://video.stackexchange.com/q/18147/

To minimise the file size for distribution of something like this, you need a Variable Frame Rate encoder, which will effectively just encode 1 frame, and set the frame rate such that there's no further frames. I've not seen this available in Adobe (or any commercial product I've looked into), but definitely there are services I've seen encoding video this way - I've seen examples of very small Facebook video files that appear to be VFR and done this way. In the absence of finding an available encoder, I'd just lower the bitrate as much as you can in Adobe that the image is still good, and use that. The upload time to YouTube might suck, but it only has to be uploaded once anyway.
If anyone does know of an available VFR (Variable Frame Rate) encoder, please post the info - this isn't the first time I've seen the question asked, but I'm yet to learn of any end-user available encoders to do this.

You can use the Voukoder plugin which allows one to encode directly using ffmpeg from within popular NLEs. You can then use x264 or x265..etc. Of course, you still have to set params like scenecut and keyint to control keyframe intervals.


text:
How can I record from do multi iPhone cameras
I’ve been asked to provide a cost effective solution for recording a church service. I need to use three cameras in three different locations. There is a Mac onsite that I will be recording to. I need to be able to switch between the cameras. It won’t be broadcast live but uploaded to the web shortly after the service. There won’t be time to edit three separate recordings hence the need to switch between the cameras. The other constraint is the cameras need to small and it’s likely I can’t run cables. So I was thinking there maybe an iOS app that produces a stream I can connect to and some software on the Mac that can record and switch between the streams.
I’m new to this so appreciate alternative solutions. I can get three phones together and we have the Mac so hopefully just an app software solution.
Thanks

There is nothing free, i can't suggest you purchase anything to fit your scenario; nonetheless i suggest you take a look of How to Use Your iPhone as a Webcam for OBS Live Streaming (Not Free Anymore) and Google OBS


text:
FFmpeg: chromakey without green edges
I have a video of a person on green background and I'm trying to turn background transparent:
ffmpeg -i bg.mp4 -i man.mp4 -filter_complex '[1:v]colorkey=0x00ff00:0.3:0.3[ckout];[0:v][ckout]overlay[out]' -map '[out]' result.mp4

Colorkey gives this quite noticeable green edge around the person's figure.
Any attempts to increase opacity or blend parameters result in disappearing facial features.

Is there any smart way to change pure green 0x00ff00 pixels with transparent ones?

To me it is just the matter of the edge color
The colorkey has a similarity parameter; should you try not using 1
Since i don't have any asset to try on this parameter, good luck.


text:
What does exactly nesting a clip in one layer do in relation to another clip in a different layer?
I'm trying to follow along a Premiere tutorial on creating a Tilt Shift Effect. In it, I would create a color matte with a mask as the below:
Then I would use the "Compound Blur" effect to my footage, which is sitting on layer V3. In the "Effect Controls" of the Compound Blur, I would select "Video 2" for the Blur Layer option. On layer V2, the color matte that I had created earlier needs to be nested for the Tilt Shift Effect to show properly. If I didn't nest it, then my footage would be completely blurred (see the comparison below). So my question is, what does exactly nesting the color matte do, in relation to the footage in the layer above it?

hi - could you add the link to the tutorial please

@tomh, here it is

Without seeing the tutorial, it's difficult to say exactly, but I think what is happening is that the colour matte nest that you've created, is being used to control the blur on your other layer, probably by being set to being used as an "alpha matte".  If your colour matte layer wasn't nested, I think Premiere wouldn't be able to see the alpha changes on that layer, due to the order in which processes are rendered in its pipeline.
Effectively, by nesting the matte clip, the compound blur "sees" the effect and the matte as a single piece of video to process. Without it, it would only "see" a solid colour block.
Un-nested version (mona is fully blurred)

Nested version - only blurred in the middle

Matte layer:

"Effectively, by nesting the matte clip, the compound blur "sees" the effect and the matte as a single piece of video to process. Without it, it would only "see" a solid colour block." @tomh, That's what I found interesting about it: nesting can be used to influence the outcome of an effect that's placed on a different clip. I couldn't find a learning resource from Adobe that explains this function.


text:
How do you reduce wind gust sounds from video?
So I've looked at a bunch of videos and all they describe is how to remove ambient wind sounds so that you can hear someone talk.  Or how to remove the low hum of wind.  And if it's the wind sound is too loud, it's impossible to remove.  That's not what I am looking for.
I have an outdoor video and I would like to keep most of those sounds.  My only issue is that when the wind gusts, it is really loud.  I'm afraid it would hurt someone's ears if they have headphones plugged in.  I would just like to tone it down.  When my video is soft, there is nothing changed.  When my video is loud, that is reduced a bit.
Additionally, is there also a way to round out or smooth the wind noise a bit? I would imagine reducing how loud a video gets while keeping the video the same when it's quiet would solve this issue as well.
I have Adobe Premier.

For future reference it's best to use a windscreen, put the microphone as close as possible to the sound source and use a directional microphones. Sadly it seems as though you have already recorded it. In that case you might be able to improve it in an audio editor or better yet have you considered re-recording what you said in the video in a quiet room?

No there's no words in it.  I have premier pro, all I need to do is limit the sound intensity.  Not sure which effect to choose.

Now I understand. Note that a windscreen would have helped with this use case as well and that way you don't have to mess around with software. In addition it might outperform the best that you can do on the computer. I understand that you have already recorded your audio and video so you need to fix what you already have.

If there's no sync sounds, maybe you could go to freesound.org and get some ambient sound that matches the pictures and use that instead.

If you have an audio editor that can host VST plugins (LMMS is one that is free), I recommend Tokyo Dawn Labs TDR Nova plugin (also free). This is a dynamic eq., which works well for things like removing wind rumble. https://www.tokyodawn.net/tokyo-dawn-labs/

Two possible ideas. When writing this answering I'm thinking in terms of the capabilities provided by Audacity but I think the same concept will work with other software.

Pick a silent part of the video with only the wind sound but no other sounds that you would like to keep, select that as the noise profile then apply noise reduction whenever there is the wind noise.

Apply a high pass filter to the audio. This will help reduce the effects of the wind noise. Again consider only applying this when there is wind.

Since you are talking about video, i would consider the ffmpeg audio filter. The wind noise spectrum mentions in this product white-paper is below 500hz; therefore, i would suggest the ffmpeg command as
ffmpeg -i <input_file> -af "highpass=f=500" <output_file>

Good luck!

What you describe is the use case for using an audio compressor. You set a threshold, below which the compressor doesn't affect volumes, and above which it compresses the audio sound level.

Adobe Podcast helps with this mostly but all tools are not perfect sometimes it messes up. However, you can use Davinci Resolve's Fairlight page to manually reduce the wind sound effect using "Voice Isolation"
If that doesn't work, you can add effects or tools like audio compressor, high pass filter and so on, and play around with those until you get the sound right.
This guide shows step-by-step how to use DV Resolve to remove the wind noise.


text:
resulting video has smaller dimensions but much more mb in size
vegas pro ver 17
original video - 1920x1280 - 17mb
desired video - 1280x720 - smaller file size
project settings:
template - HDV 720-30p (1280x720, 29.970 fps)
render settings:
format - MAGIX AVC/AAC MP4
template - Internet HD 720p 29.97 fps
resulting video is 55 mb in size
any help?

Turn down the quality, or export to an intermediate or lossless codec and compress with better compression software like ffmpeg.

@stib, thanks but I believe vegas pro should have this possibility, without any external steps

Well the evidence suggests otherwise, but rock on.

I'm not familiar with the software. But from what I see on screenshots, is that the template sets a bitrate which may be too high. Look for a number with kbps or mbps as the unit. Then override it (I suppose in render settings in video tab) - use the parameter "bitrate" and enter a value lower than what you see in the template. This should give you a smaller file. Beware that the bitrate in render setting is without k or m prefixes, so to compare it against the template default value divide it by 1000 or a 1000000 depending on whether it's kbps or mbps.

@Matt, thanks a lot, At this momment I'm non on my PC but tomorrow I'll try and post the result here. Thanks again

The "Internet HDV 720-30p" template uses as default a data rate of 8 MBit/s.
If you want to reduce the size of your video from 55mb to below 17mb, you should set the avarage bit rate at maximum 2.000.000.
If the file size is still bigger than expected, you may activate "two pass rendering" and see whether that helps.


text:
How to skip/minimize encoding workload in OBS?
I am a beginner and I am trying to stream a local file to YouTube Live.
I noted that when I start streaming on OBS using the below settings, the CPU usage is at 35-40%.

Since, I am using a local file which then OBS encodes (converts my local .mp4 (H.264) file to a data stream) using the settings given above and streams the data to the YouTube server, is there a way of capturing the data that OBS has streamed to YouTube, saving it as a file and then sending that data directly to YouTube without going through the conversion/encoding the next time I want to stream the same file?
I am sorry if this is a stupid question.

If you're streaming, OBS will re-encode the output each time.
You can stream and record to disk at the same time,
However, there's no way to "replay" that data directly to YouTube, it must be re-encoded.
I notice that you have your stream encoder set to Software x264 which is CPU based.
I also noticed that your recording encoder is set to NVENC which is GPU based.
If you use NVENC as your stream encoder, it can offload encoding from the CPU to the GPU, which could drastically reduce your CPU load.
However, the CPU load maybe coming from the decoding of the video file your trying to playback so you may not be able to reduce it massively but NVENC will definitely help.

Thank you. Is the "replay" possible with ffmpeg or some other alternative to OBS?

Theoretically yes, YouTube Live uses RTMP Protocol for streaming, there is lots of software out there that can generate an RTMP stream and ffmpeg is one of them, technically all your doing with OBS is decoding an MP4, re-encoding it at a lower bitrate then sending it over RTMP, if you want to do this with FFMpeg you can just re-encode all your videos before hand to a stream acceptable rate, then use a playlist to play them back over RTMP to YouTube.


text:
Build FFmpeg with ".EXE" files of external libraries?
this is my first question on StackExchange!
I recently got into building FFmpeg on Windows and build successfully the vanilla and the external library versions of this program!
I noticed that it only takes in the "include" and "lib" inputs from the source to link the external libraries to FFmpeg. (--extra-cflags && --extra-ldflags)
I also saw an option to specify the location of .exe files of the external libraries(--extra-ldexeflags)!
So, I was wondering if I could compile FFmpeg with external library support just by specifying the path to the .exe files of the external libraries using --extra-ldexeflags.
It would be great if I receive an answer to this humble question of mine!
Thanks for your time!

Although this question is video-related, I feel like you might get better answers on superuser.stackexchange.com


text:
Need to locate documentation of FCPX XML ver 1.9
I have found a description of version 1.8 of the FCPX XML. It is not globally searchable - only section by section and is not for the latest version.
I have an XML file recently emitted from FCPX and it has a version tag "<fcpxml version="1.9">".

Apple seems to have messed up their documentation. The current documenation website eventually leads to a link to the unmaintained documentation archive. You should contact Apple and ask them to publish the documentation for version 1.9. That's also the place to complain about the search function. Without complaints they have no incentive to fix it. In the meantime use Google's site: -keyword along with the relevant part of the URL and your search terms to search the documenation globally. See here: https://support.google.com/websearch/answer/2466433?hl=en under "Search for a specific site".

Apple didn't update all the documentation. Found it only here: Link

Strictly speaking a DTD is not a documentation. It's helpful to validate the correct syntax of an xml file but doesn't explain anything.

At least, we can check what's new in FCPXML 1.9. Didn't found anything except new media-rep element.


text:
How do I make an area in a video darker?

SO I am editing this horror scene and I want to change the brightness of the left side of the wall to something similar to the dark right side. I want to light to be mostly on the actor's faces. I tried doing "change to color" and "color change" effect in after effect but didn't get good results. Now I am thinking about masking that bright wall area and changing the brightness. But that process seems long since this is a long clip. Is there any faster way to do this in after effects or premiere pro?

I guess for future reference would it have made more sense to get the lighting right while recording?

If I may, I would recommend using Davinci Resolve for this. It's free and does what you want way better than premiere. Since your question was raised for premiere though, let me propose two different solutions for this.

Use a Luma-Matte for an adjustment layer. To to this:

Duplicate your footage
Apply curves on the footage to maximise the contrast. (the wall should be completely white, your talent should be completely black.
Apply a curves effect on the adjustment layer and place it below your duplicated, contrasted footage and above your original footage-layer.
For the adjustment-layer, under "track mattes" select the luma matte from your contrasted footage-layer.
Now dial down the curve on the adjustment layer and see that it only affects the wall.

Use a Roto. If the Luma-Matte isn't working well because you can't really separate the talent from the background, this would be your last resort.

Draw a mask around your talent's face on the footage-layer and do that for every 2nd to 3rd frame, so that the mask moves with the face.
Apply curves to your footage-layer.
Press "e" to bring up the effects on your footage-layer and open up the curves.
Under "Compositing Options" click the small "+" and select the mask you just drew.
Make sure the mask is set to subtractive if you masked out the face, or additive if you masked out the portion of the wall.
Now dial down the curve in the Effect Controls and see that the effect only applies inside the mask.
You might want to feather the mask to not have a hard edge that might be distracting.

I hope this helped, have a good day! :)
Edit: You might want to use a mix of the two methods: The Luma-Matte for the hair, which is hard to rotoscope, and using masks for the simpler areas of the head.

If you have Premiere, chances are you have After Effects, which would be the best option for this job. But Premiere is still capable of doing it, without any roundtripping to other aps.
Here's my results, I just used a screenshot of your screenshot, so you'll probably get a better result using your original footage.

To get this I duplicated the layer, and on the bottom layer added Lumetri color and pulled the rgb curve down to make the background dark.

I added Lumetri colour to the top layer, balanced the overall colour temperature until the BG was white, then pulled up the midtones to get a bit more separation between the wall and the face. Then I used the basic color Key effect and got the wall colour using the eyedropper, and fiddled with the tolerance, edge thin, and edge feather options until it was as good as it could be.

The highlight spot on the actor's nose is a problem, you may have to duplicate the layer, and mask out just the area around that spot without the color key effect applied. You don't have to be precise with this mask, but you have to track it to follow the movement.


text:
seamless DNXHR player
I am looking for a player for DNxHR that will playback files seamlessly, as there is no brief pause between files playing. two files played back to back should play as though they are effectively one file. can someone recommend a good solution for this? thanks!

Player like djv and vlc should be able to play dnxhr without issue. The pauses likely occur because of the reading-speed of the drive. If djv and vlc are still buffering while playing, try moving your footage to a faster ssd and try again.

they seem to play a single file fine, but I see a hiccup between files. from what I can tell I have plenty of drive speed. any other ideas?

Hmm. Could you elaborate on the "hiccup"? Does the program have to buffer when playing two videos back to back and switching from one file to another? In that case, I think that a programmer could actually help you more than the beautiful folks here.

I believe it is a buffering, but not entirely sure.

I'd leave this question open here but ask the same one on the stackexchange or a similar forum dedicated to programming. I'd guess that your chances are better there :)


text:
Which After Effects renderer performs better on a macbook pro? RenderGarden or BG Renderer MAX?
I've got a 2018 MacBook Pro 15 inch with the built in Radeon Pro Vega 20 4 GB graphics.
I'd like to speed up rendering in After Effects.  Which of these is more effective at doing this and why?

https://aescripts.com/bg-renderer/      $69
https://www.mekajiki.com/rendergarden/  $99

Are there benchmarks anywhere for these kinds of things?
thanks

Both sites put a comparison to the native renderer on display: RenderGarden is supposedly 3.3 times faster while BG-Renderer MAX is 5.45 times faster. Does that answer your question though?

Interested in how it works on a macbook pro without a very powerful separate gfx card

It seems in my experience that render garden is only helpful when you have a network or farm of machines that you can distribute the render to. If you have only a single machine, I'd say BG Render is your best bet. If you have a farm, Render Garden is better. But, either one will speed up your render since both take advantage of multi threading that after effects' render doesn't seem to use/like natively...


text:
Removing black frames with constant framerate
i'm trying to create a video made of jpgs (camera-snapshots every hour) with removal of black frames (snapshots at night). It works BUT, whenever a black frame has been removed (or ignored), the video stucks at that point. I want to have a smooth video with 30 fps as result and don't want to fill up the ignored frames with copies etc.
What i've tried:
ffmpeg -framerate 30 -i /home/pictures/%*.jpg -c:v libx264 -vf "blackframe=0,metadata=select:key=lavfi.blackframe.pblack:value=50:function=less,scale=640:-2,format=yuv420p" -crf 28 /home/out.mp4

Any ideas?

Retime the remaining frames.
ffmpeg -framerate 30 -i /home/pictures/%*.jpg -vf "blackframe=0,metadata=select:key=lavfi.blackframe.pblack:value=50:function=less,setpts=N/FR/TB,scale=640:-2,format=yuv420p" -c:v libx264 -crf 28 /home/out.mp4

brilliant, thanks a lot!


text:
Using the Rotobrush Tool with a Graphics Tablet in After Effects
I'm having a lot of trouble making this work. I select rotobrush tool, I put my pen down on the graphics tablet and suddenly I'm painting instead of rotobrushing. Why is this happening? Also it happens again even when I try to use the mouse instead. The rotobrush tool is selected, yet the effect is paint.

Can you add a screen shot or two?

I can try to make a video of it instead.

The roto-brush tool is a painting process - you paint green in the areas you want to rotobrush, red in the areas you don't, then tidy up edges with the feathering tool. See example here:

Not what I'm talking about here. Nice video though, but it doesn't address the problem of using a graphics tablet. The moment I do that, the tool becomes the paint tool with an empty white circle, not the rotobrush tool which is a green circle with a plus sign or red minus sign if you press alt. Rotobrush works fine with the mouse, but apparently you can't use a graphics tablet with anything but the paint or pen tool.

Ah annoying. Sorry I haven’t experienced that.


text:
Premiere: How to export at exact down-scaled resolution?
Preparing a trailer for an iOS app. I have source footage in iPad and iPhone X native resolutions (2732x2048 and 2688x1242 respectively), but they required scaled-down videos (1600x1200 and 1920x886 respectively).
Although those are theoretically the same aspect ratios, they are in fact not exactly equal. This shows up when I export from Premiere. Even though I input those specific down-scaled resolutions in the export properties, the resulting videos are slightly different: 1600x1216 and 1920x896.
I've been looking for settings to force a specific resolution - I don't really care what kind of scaling/stretching is done to achieve it (as long as there are no black bars) - but I've failed to find any.
Things I've tried:

changing the sequence properties and setting the exact size there, and zooming out the source clip to fit, but somehow that still came out problematic.
auto reframed sequence, no bingo

Any tips on this would be greatly appreciated, as I'm starting to LOSE MY MIND lol...

In general I would set my sequence settings to the desired delivery formats, and scale my source video to fit those. I wouldn't ever squash or stretch the video, as this looks very bad, and all iOS devices these days have square pixels (ie a pixel aspect ratio of 1:1 (or some multiple thereof if you're dealing with retina displays).
In general mp4 files (if that's what you are exporting to) prefer resolutions which are divisible by 16 ( I think - although someone on here may be able to correct me).
Your options are to rescale and zoom manually, shot by shot, to accept letterboxing, or to crop some of your content.  Rescaling and zooming to whatever is most relevant in each shot would be my preference.

Most inter frame codecs seem to have resolution limits and put restrictions on width and height, e.g. they need to be divisible by 2 or 16. Additionally, many video players could complain about unusual resolutions even if the codec permits it. Container formats often have no relevant resolution limits or restrictions (in the end there are size limits of the resolution numbers, but they are usually really high, like 65536 pixel).

1200 is divisible by 2, 4 and 16, and the ratio of 4:3 is quite standard, so I'm not sure how it ends up at 1216 TBH.

Pardon my naivety, but I don't understand how your suggestion is different to the first thing I listed in "Things I've tried" - I did set the sequence settings to what was desired, and scaled the source video to fit, shot by shot.


text:
Blade Tool Stuck on Grid in Final Cut
In final cut pro x on catalina I have an audio clip and video clip on top of each other in the project.
I am attempting to cut both at a specific point, corresponding to a transition in the song on the audio track, with the Blade tool. However, final cut is snapping my blade to the time grid and only allows me to cut these clips in one second increments.
How can I use the blade to cut where ever I want regardless of the time grid?
PS. if anyone knows how to set a BPM grid in FCPX that'd be swell. I tried BeatMark 2 but it doesn't run on my system (probably Catalina related).

You can only cut in-between frames of your video clips.
Videos have generally frame rates per second of 24 or 25, maybe 30. Sound files have typically a sample rate per second of 48000. So you could say you can cut a video e.g. 25 times per second and a sound file 48000 times.
I usually cut to the nearest frame to the beat of the music. IMHO nobody can tell the difference of one or the other frame with a beat in between.
Try both versions and choose what feels the best.
FCPX is not sound editor like logic pro or pro tools. BPM don't apply for FCPX, it's the frame rate of the timeline and clips used what matters more.

I'm not able to cut in between frame / audio samples, this is the problem. I am only able to make cuts at one second. If I could cut between frames and audio samples then I'd be good.

With Command - Plus and Command - Minus you can zoom in and out.


text:
How to make full-screen video in Android 10 with Resolve 14?
I'm relatively new to both Resolve 14 and Android 10.
I have a video on my computer and I wish to edit it in Resolve 14 so that it shows full-screen on my Android 10 phone using the Google Photos app.
The video on my computer is 1280 x 720.  I wish to view it full-screen on my Android 10 phone.  I have gone into Resolve 14 project settings and set the project resolution to 720 x 1280.  I have also cropped the video.  The video in the preview looks the right shape but on my Android phone it's really small when viewed in Google Photos app.
How can I edit the video in Resolve 14 so it plays back full-screen in Android 10 using Google Photos app?

You have to know the aspect ratio of your phone's screen. It might be for example called "18:9" which boils down to 2:1 and you have to define if you want to view it in panorama (upright/vertical) or landscape (horizontal).
Basically you look up your phone's display resolution and just divide the horizontal value by the vertical value.
Your source video is 16:9 (1.777:1), which means, in terms of the upper example, that you will have to crop it somehow to get it full-screen on your phone. But first of all you have to set up your project to match somehow your desired aspect ratio. In terms of quality the best way would be to go not only for the aspect ratio of your phone screen but as well for the native resolution which could be 2880x1440 for our example.
So one way would be, to set your timeline resolution to 2880x1440 and throw in your clip, scale (and crop) it, and export it in timeline resolution out of resolve.
The drawback for this is that your computer would have to handle this high resolution while its not really necessary because your clip is much smaller.
To avoid this you could just go for the correct aspect ratio and stay resolution-wise close to your source footage. In this case, the scaling would be handled by your phone hardware when you go to full-screen mode while you keep your file small and bandwidth usage low.
You could for example set your timeline-resolution to 1280x640, this crops your source and gives it a 2:1 aspect ratio. If you watch this on your phone it should use the whole display when playing it full-screen.

Thanks for your answer.  I have been trying to do as you said.  So I create a new project and add my clip (1280 x 720) to the timeline.  Because the clip I'm using is from OBS of an Android camera, I only want the left quarter width of the clip so I crop right, and a little crop top and bottom to match the actual video in the clip.  Then I go into project settings and set the timeline resolution to 640 x 1280.  But once I do that, the video in my timeline is now really small.  The black video background is right size but the clip in it is tiny.  How do I make it fill the background?

I actually don't think this is possible with Resolve 14 because I don't think Resolve 14 is able to deliver cropped video.  However, if I use HandBrake to crop the video, the encoded file is the correct size and fills the phone screen because HandBrake does set the video file to the cropped video size.  The only problem is that I then need to use Resolve to edit the clips and HandBrake to crop the video which is two lots of encoding.  Is there another video editor which has basic editing facilities (timeline with cutting option mostly) that also supports export cropped video?

this sounds like you simply have to scale your video a little up once it is in the timeline. I guess Resolve tries to fit you whole video to the timeline canvas - also the black areas. You can do this with the clip inspector (at the right - maybe hidden.)

have a look at the manual. Page 169 - Reframing:
https://documents.blackmagicdesign.com/UserManuals/DaVinci-Resolve-16-Beginners-Guide.pdf


text:
Problems with lower thirds
I have a .mov file that has a black background but it’s not transparent. How do I change this file to make the black background transparent. Do I change the file in my editing software? If so how? I am using Adobe Premier Pro 2020.

Assuming that your video file does not have an alpha channel (an extra channel of information in the video file that defines which bits of the video should be transparent):

Place the text .mov on a layer in your sequence
Select the clip
Go to the Effect Controls for that clip
Under the "opacity" heading, set the Blend Mode to Screen.

Anything black should now be transparent.

If you think your file does have an alpha channel, check that the alpha is set correctly in Premiere:

Right click on your clip in your project
Choose Modify --> Interpret Footage
Make sure the Alpha settings are set as shown:


text:
Can i do decimal custom speeds in final cut pro?
I want to speed a video up by a 102.4% in final cut pro, is this possible?

Yes...
Select the clip you want to speed up. Then hit Command-R (or “Modify” > “Retime” in the Menu bar) and the clip will get a green retime bar on top. Click in the little arrow down next to the percentage and choose “Custom” (or “Custom Speed” in the Menu bar).
Lastly enter your desired percentage or duration.

This method doesn't appear to allow decimal values.


text:
What is the minimum camera requirements to create professional quality videos?
We are hiring videographers and we noticed that some of their videos have colors that appear extremely far away from accurate color reproduction as well as highly pixelated/grainy quality despite 1080p resolution. It reminds me of my old cellphone cameras where it has a low megapixel value and it would end up very grainy.
It was most likely that they used wrong compression or a wrong file format or it because they had bad equipment to begin with. We are looking for professional quality videos similar to the one shown below where it has good color accuracy and the video looks HD with no flickering and pixels flying around:
Taste Show Video
Budget constraints are taken into consideration as extremely high end camera equipment is probably too way off the budget. What we are looking for is a good enough camera that can reproduce quality similar to the sample video shown. It is very difficult to have an idea of which camera can produce quality videos given there are a lot of options in the market and first hand experience is needed to tell if it is good or not. But there may be a criteria that video production people look for to know which equipment can produce quality videos.

The camera only plays a part in what makes a good, clean image. The most important parts are Lighting, Lenses and Knowledge of the person operating the camera.
If you film in a dark location and have to crank up the iso, you will get noisy images even with a 20k$ camera. If you have proper lighting and use a low iso, a 1k$ camera can look really clean.
I understand that you are looking for DOPs to work for you. If their reel leaves a good impression, ask then which camera they used and what gear they would recommend to shoot your project. Many social-media clips are shot with cameras such as the Sony FS7 or even the Pocket Cinema Camera in some cases. These are relatively affordable cameras (compared to feature-film equipment) and are certainly capable of creating images such as the ones you posted.
Don't be cheap on lenses as well. A 20k$ camera will look worse with a 50$ lens, compared to a 2k$ camera with a 750$ lens.
Usually, it's the DOPs job to recommend and pick out the equipment they use. If they insist on 20k$ worth of gear and claim that a slick production is impossible otherwise, maybe look around some more. However, do listen to their reasons when they recommend expensive gear as it might actually be reasonable and in your favour.


text:
Why doesn't FFMPEG output frames as jpg? How can I fix my code?
I'm trying to decode a video into its frames with the following code:
`
Decode the video into 30 fps frames with ffmpeg
  check_call(['ffmpeg', '-i', 'file:'+clip_name+'.mp4', '-vf', 'fps=30', 'frame_%06d.jpg'])

  # Create a directory for this clip
  check_call(['mkdir', '-p', clip_out_dir])

  # Move the results to the output directory
  for jpg in glob.glob('*.jpg'):
    check_call(['mv', jpg, clip_out_dir])`

However, it is not working. How can I fix this? This is the output I get:
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --disable-debug --disable-doc --disable-static --enable-optimizations --enable-shared --disable-everything --enable-ffplay --enable-ffprobe --enable-gnutls --enable-libaom --enable-libdav1d --enable-libfdk-aac --enable-libmp3lame --enable-libfontconfig --enable-libfreetype --enable-libopus --enable-libpulse --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-openal --enable-opengl --enable-sdl2 --enable-vulkan --enable-zlib --enable-libv4l2 --enable-libxcb --enable-vdpau --enable-vaapi --enable-encoder='ac3,alac,flac,libfdk_aac,g723_1,mp2,libmp3lame,libopus,libspeex,pcm_alaw,pcm_mulaw,pcm_f32le,pcm_s16be,pcm_s24be,pcm_s16le,pcm_s24le,pcm_s32le,pcm_u8,tta,libvorbis,wavpack,' --enable-encoder='ass,ffv1,libaom_av1,libvpx_vp8,libvpx_vp9,mjpeg_vaapi,rawvideo,theora,vp8_vaapi,libopenh264' --enable-decoder='adpcm_g722ac3,alac,flac,g723_1,g729,libfdk_aac,libopus,libspeex,mp2,mp3,m4a,pcm_alaw,pcm_mulaw,pcm_f16le,pcm_f24le,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_s16be,pcm_s16be_planar,pcm_s24be,pcm_s16le,pcm_s16le_planar,pcm_s24le,pcm_s24le_planar,pcm_s32le,pcm_s32le_planar,pcm_s64be,pcm_s64le,pcm_s8,pcm_s8_planar,pcm_u8,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32be,tta,vorbis,wavpack,' --enable-decoder='ass,ffv1,mjpeg,mjpegb,libaom_av1,libdav1d,libvpx_vp8,libvpx_vp9,rawvideo,theora,vp8,vp9,libopenh264' --enable-encoder='bmp,gif,jpegls,png,tiff,webp,' --enable-decoder='bmp,gif,jpegls,png,tiff,webp,' --enable-hwaccel='vp8_vaapi,mjpeg_vaapi,' --enable-parser='aac,ac3,flac,mjpeg,mpegaudio,mpeg4video,opus,vp3,vp8,vp9,vorbis,' --enable-muxer='ac3,ass,flac,g722,gif,matroska,mp3,mpegvideo,rtp,ogg,opus,pcm_s16be,pcm_s16le,wav,webm,' --enable-demuxer='aac,ac3,ass,flac,g722,gif,image_jpeg_pipe,image_png_pipe,image_webp_pipe,matroska,mjpeg,mov,mp3,mpegvideo,ogg,pcm_mulaw,pcm_alaw,pcm_s16be,pcm_s16le,rtp,wav,' --enable-filter='crop,scale,overlay,amix,amerge,aresample,format,aformat,fps,transpose,pad,' --enable-protocol='crypto,file,pipe,rtp,srtp,rtsp,tcp,udp,unix,' --arch=x86_64 --enable-libopenh264

  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:/home/emely/Data/yt_bb_videos/yt_bb_detection_validation/vcALsxetYU4_temp.mp4':

  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isomavc1mp42
    creation_time   : 2009-06-04T17:08:04.000000Z
  Duration: 00:10:00.44, start: 0.000000, bitrate: 451 kb/s
    Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 125 kb/s (default)

    Metadata:
      creation_time   : 2009-06-04T17:08:04.000000Z
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
    Stream #0:1(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 384x288, 323 kb/s, 25 fps, 25 tbr, 24998 tbn, 24998 tbc (default)

    Metadata:
      creation_time   : 2009-06-04T17:08:04.000000Z
      handler_name    : (C) 2007 Google Inc. v08.13.2007.

[NULL @ 0x5634538337c0] Unable to find a suitable output format for 'frame_%06d.jpg'
frame_%06d.jpg: Invalid argument

Traceback (most recent call last):
  File "decode.py", line 84, in <module>
    decode(*sys.argv[1:])
  File "decode.py", line 70, in decode
    check_call(['ffmpeg', '-i', 'file:'+clip_name+'.mp4', '-vf', 'fps=30', 'frame_%06d.jpg'])
  File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ffmpeg', '-i', 'file:/home/emely/Data/yt_bb_videos/yt_bb_detection_validation/vcALsxetYU4_temp.mp4', '-vf', 'fps=30', 'frame_%06d.jpg']' returned non-zero exit status 1. ```

Thx in advance!

It should work (works for me), I'm wondering if the % in the file name needs escaping..?

Your build doesn't have the image2 muxer enabled, which is required for image sequences.

How do I enable the image2 muxer? Thanks so much!

Get a precompiled git master binary from https://johnvansickle.com/ffmpeg/ or you'll have to compile it yourself.


text:
OBS in Linux can't find NDI sources from other PC running Skype in Windows
As SkypeforLinux has no NDI support, I decided to split the work between two computers. A windows laptop to manage Skype videochatting with NDI support and a Archlinux PC with OBS and the obs-ndi plugin.
Both computers are wired to the same LAN. I have tried it with a third Windows Laptop with OBS installed, and it finds de ndi sources (form the other laptop Skype) without problems.
But when I try it with the Archlinux PC (no errors of any kind in the log,  ndi initialized succesfully), no ndi sources are available in Source Name.

Any clue?


text:
Variable-rate timelapse
I'm making a timelapse which slows down for portions of the video which contain content of interest.
I have an input video file; for each frame, I would like that frame to appear 0 or more times in the output. (I'd also like to be able to take several frames in a row and average them together to make one frame, but if that is not feasible I would consider just skipping frames instead.) For example, perhaps I want frame 1 to not appear in the output, frame 2 to appear four times, and frames 3 through 5 to be averaged into a single frame. (I've already completed a separate pre-processing step that determines what I want for each frame.) The typical input file is about 40k frames.
What is an efficient way to accomplish this goal? Currently I am using the imageio python library, but that introduces a lot of overhead, and the averaging together of frames is by itself taking more than half of the computation time. (I can cut that a little by being more careful with memory allocation, but I expect that to be a marginal improvement.)
I'm unfamiliar with what alternatives to imageio suitable for this task there are. Perhaps this can be accomplished with ffmpeg directly? The "setpts" and "minterpolate" filters seem relevant but I don't understand how/if they can be used for my purpose. https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
Thanks.


text:
Selecting specific part of a video
I have a video which I need to analyse. The analysis software recognizes objects outside the area of interest and I would like to limit it to the specific arena. In order to do so I tried cropping but unfortunately my arena isn't rectangular. I thought about blackening parts of the video. But how will I be able to do so? I'm a technical person but I don't have any experience in video editing and I'm also working on a low budget.
Does anyone have any idea how to solve this problem?
Best regards,
Morris

You haven't specified which program you are using, but assuming that you have access to After-Effects or any Node- or Layer-Based compositing-program, you would want to rotoscope the area, that confuses your analysis. This is the same principle as using a camera-tracker, but subtracting moving areas or people in your footage. To do so, you would simply have to import your footage in, say, after-effects, grab the pen-tool, mask out the undesired area, set the mask so "subtractive" and render out the video again, preferably in prores4444 or any other (near) lossless codec and container.
I hope this helped, have a good day :)


text:
How can I create a LUT on Linux with free and open source software?
I use Linux for everything media production. I shoot RAW and process images with Darktable.
Now that I've started making videos too (4K ProRes), I need to apply a LUT to them in post. This requires importing a .cube file into Kdenlive. I know how to do that, but I don't know how to create a LUT.
Can I import a frame of video into Darktable, adjust the colors, and export a .cube file to import into Kdenlive to apply to the video?
Or are there other programs that will create a LUT on Linux? Can GIMP do it?
What Linux program can be used to create LUTs?

Did you managed to solve this?

I'm looking for a solution myself. Just as a starting point: Check out a .cube file, it's plain text. Also the specification might help, found it here: https://kono.phpage.fr/images/a/a1/Adobe-cube-lut-specification-1.0.pdf

This article - https://streamshark.io/obs-guide/converting-cube-3dl-lut-to-image - supplies a neutral lut image file. With a bit of programming skills it should be possible to code ones own .cube file generator. There seems to be an online generator (I know it's not exactly what you want) - https://www.onlinelutcreator.com/lutcreator - but it's necessary to sign up. Didn't try it, yet.

I was looking for that kind of software as well.
Then I found the .cube specification.
I thought to myself ... an average programmer should be able to do it in a couple of days ... and then I did the job ;-)
It's called lutcraft, a command line tool written in python3.
You can find it on github:
https://github.com/EinExperte/lutcraft
Instruction:

Create a neutral png image

lutc lut-neutral.png

Manipulate the colors of the image

Do pixel-level color adjustments as desired.
Tools I suggest are darktable, gimp, flowblade or cinelerra. Any other program doing pixel-level imaging will do fine.
Then save the image. I assume you call the file lut-x.png.

Convert the image into a lookup table (.cube file)

lutc -i lut-x.png lut-x.cube

This will output a 3D lookup tabble corresponding to the file lut-x.cube

If you have any questions / suggestions / etc., feel free to comment or e-mail me.

You can try Photo Curves web app - since this is online tool - you can create 3D LUTs with it on Linux too - its free, no registration required:
https://photocurves.curvednebula.com/


text:
Playback from FFMPEG x265 freezes video but not audio
So I am re-encoding an old AVI:
https://pastebin.com/KqcHMVAx
I have written a batch to re-encode a bunch of similar AVI's and the same problem occurs with each.
When I try and play the resulting MKV in VLC the video freezes after a few seconds, but the audio continues. I get the following VLC messages:

avcodec info: Using D3D11VA (NVIDIA GeForce GTX 1080, vendor 10de(NVIDIA), device 1b80, revision a1) for hardware decoding
avcodec error: hardware acceleration picture allocation failed
avcodec error: avcodec_send_packet critical error

My FFMpeg arguments are as follows:
-y -i "{0}" -c:v libx265 -crf 23 -preset slow -tune fastdecode -c:a copy -x265-params "colorprim=5:transfer=1:colormatrix=6:refine-mv=1" "{1}"

Which results in: https://pastebin.com/VTstcKF7
If I repeat the same encoding in Handbrake, the playback is fine, no problems. That results in: https://pastebin.com/v3ix1caA
Now I've compared the two and the only difference in the encoding settings is
frame-threads=3 instead of 2 in my batch
numa-pools=4 appears in my batch but not Handbrake
refine-mv=1 instead of 0 in my batch.

To clarify my FFMPEG sets frame-threads to 2, numa-pools to 4 and refine-mv to 0. I have set the refine-mv to 1 but it seems to have been ignored.
Now I am running handbrake on Linux with x265 version 3.2.1+1 and the batch is running under Windows with version 3.1+19.
I have tried running FFMpeg on the Linux machine with the same settings, same result in failure.
I've mirrored the settings as close as I can to Handbrake but I cannot seem to achieve a file free of issues. Can anyone point me in the right direction?

What happens with ffplay?

FFPlay seems to work just fine. And the Windows inbuilt Media player plays it fine. I was initially going to submit this as a VLC bug, but the internet had compression options suggestions. So I decided to do a comparison with Handbrake. And as you can see the same settings with Handbrake produce an error free file. I am assuming it's a parameter/setting I'm not including rather than an FFMpeg bug.


text:
Is the license for Dance Monkey free?
I don't think so.
However, there are so many cover songs on YouTube.
So, are these copyright violations?
Or is Dance Monkey free, am I wrong?

You need to know that YouTube often doesn't remove videos with copyright infringements anymore. Nowadays, the ad revenue gets redirected towards the original content rights holders and the video can stay up, unless the rights holders don't want that.

Depending on your country, the website you're uploading to and your usage of both audio and video, the copyright-laws make it legal or illegal to use a specific song.
If you create a video-essay about music-production and must use the song as an example to show your point, you will, in many cases and places not break any laws. If you combine a still-image with the song and upload this in its entirety than you will break the law in almost every case and place.
Copyright to music is no black-and-white topic, and if you're considering using music from an artist, I would seriously recommend reading up on the laws that are applicable where you live, so to not risk a hefty fine.
Youtube has a special approach to this case, in which - when a video uses copyrighted music - the video's revenue (money from ads) will go directly to the artist. If, however, the music is not registered at a database (in germany it's the GEMA, to name an example), the video can be blocked everywhere and you will get a strike. 3 Strikes mean that your channel will be terminated.
So you will likely not risk getting sued when using music in a youtube-video, but I would recommend reading up on the laws or asking a lawyer nonetheless. Copyright should be taken very seriously.


text:
How to save HDR 10 bit MKV videos as an image sequence?
I tried both vlc and virtuadub2, they both save out washed out images. Both show and save out washed out images.
How can I save out these images so they look in proper HDR space?

First of all there is a bug in ffmpeg swscale that saves 16 bit per 3 component PNG, so use zscale instead.
https://trac.ffmpeg.org/ticket/7978#comment:7
ffmpeg -i PQ_HDR_file.mp4 -vf zscale=matrixin=2020_ncl,format=gbrp16le -an -frames:v 1 out_zscale.png
This will get you correct image (bt.2020-ncl matrix is removed correctly to R'G'B'). You still should present the file on HDR display since it will have PQ transfer (PQ is why you saw the gray image originally) and BT.2020 primaries. You may want to tag the file.


text:
Possible to repair corrupted VOB file?
Trying to encode episodes from a DVD. One episode appears to be corrupted and will not play on the disk, nor will it be accepted by Handbrake of ffmpeg.
However, by copying the VTS file, VLC will play it.
When I try to encode it with ffmpeg this is the result:
ffmpeg -i ~/Movies/VTS_18_1.VOB
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.3 (clang-1103.0.32.62)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
~/Movies/VTS_18_1.VOB: Invalid data found when processing input

Handbrake gives this error in the log:
[11:15:27] macgui: Handbrake Version: 1.3.3 (2020061300)
[11:15:27] Compile-time hardening features are enabled
[11:15:27] hb_init: starting libhb thread
[11:15:27] hb_init: starting libhb thread
[11:15:42] macgui: ScanCore scanning specifically for title: 18
[11:15:42] CPU: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
[11:15:42]  - Intel microarchitecture Kaby Lake
[11:15:42]  - logical processor count: 8
[11:15:42] hb_scan: path=~/Movies/D3, title_index=18
disc.c:424: error opening file BDMV/index.bdmv
disc.c:424: error opening file BDMV/BACKUP/index.bdmv
bluray.c:2585: nav_get_title_list(~/Movies/D3/) failed
[11:15:42] bd: not a bd - trying as a stream/file instead
libdvdnav: Using dvdnav version 6.0.1
libdvdread: Encrypted DVD support unavailable.
libdvdread: Couldn't find device name.
libdvdnav: Can't read name block. Probably not a DVD-ROM device.
libdvdnav: vm: dvd_read_name failed
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Encrypted DVD support unavailable.
libdvdread: Couldn't find device name.
[11:15:42] scan: DVD has 27 title(s)
[11:15:42] scan: scanning title 18
[11:15:42] scan: duration is 00:05:01 (301760 ms)
[11:15:42] pgc_id: 1, pgn: 1: pgc: 0x7fa264b5b1f0
[11:15:42] scan: checking audio 1
[11:15:42] scan: id=0x80bd, lang=Unknown (AC3), 3cc=und ext=0
[11:15:42] scan: checking subtitle 1
[11:15:42] scan: id=0x20bd, lang=Deutsch (4:3) [VOBSUB], 3cc=deu ext=0
[11:15:42] scan: title 18 has 1 chapters
[11:15:42] scan: chap 1, 301760 ms
[11:15:42] scan: aspect = 4:3
[11:15:42] scan: decoding previews for title 18
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
error: dvd: dvdnav_*_play failed -
[11:15:42] scan: title angle(s) 1
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
error: dvd: dvdnav_sector_search failed - Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] scan: Too few previews (0), trying harder
[11:15:42] scan: decoding previews for title 18
[11:15:42] scan: title angle(s) 1
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] dvdnav cur pgcn err: Bad VM state.
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
libdvdread: Invalid IFO for title 18 (VTS_18_0.IFO).
libdvdnav: ifoOpenVTSI failed
[11:15:42] dvdnav prog play err: Bad VM state.
[11:15:42] libhb: scan thread found 0 valid title(s)
[11:15:43] macgui: ScanCore scan done

This type of issue would normally be physical media damage, but it sounds like your video stream actually has corrupt data in it, stopping you reading the complete file - you've been able to copy the complete file from disc, and the contents are corrupt? Odd that whatever authored the disc allowed this, in my experience usually the authoring software would also barf if there's an issue.
Have a try with VOB2MPG (free/basic), see if you can get a useable MPG file from the source: https://www.videohelp.com/software/VOB2MPG
Next I'd try CloneDVD, https://www.elby.ch/en/products/clonedvd.html, see if that can extract the title. You could also try your luck with DVD Shrink, https://en.wikipedia.org/wiki/DVD_Shrink, which also has some re-authoring and extraction options, just make sure to avoid the later scam versions.
If you want to try working on the file you've already extracted directly, try TMPGEnc Smart Renderer, https://tmpgenc.pegasys-inc.com/en/product/tmsr5.html. If VLC can play it, most likely Smart Renderer can repair/re-encode whatever is corrupt in the file, or worst case allow you to cut out the damaged piece. Note that VLC will play pretty much anything, it is just skipping over any corruption - the encoding tools won't do that. It's commercial, but the demo version should be sufficient.
You can also try reading the disc on different hardware, although that's usually a tactic for a physically damaged disc. Different drives will handle damage differently for various reasons, I've had scenarios where damaged discs with unreadable portions on one drive were able to be recovered on different hardware.
Hopefully at least one of these suggestions help - they're all tactics I've used, that have worked at one time or another in recovering from damaged files and media. Although this one does sound like an encoding issue in the source file, in which case a full recovery of the complete source video may not be possible.


text:
Streaming video file to YouTube Live with FFmpeg - Automatically resume after crash?
ffmpeg -re -i [FILENAME] -codec copy -f flv rtmp://a.rtmp.youtube.com/live2/[STREAM KEY]

I'm able to use this command to stream a video file to YouTube Live without re-encoding. If FFmpeg crashes for some reason, how do I automatically resume streaming the video from where it left off?
Also, is there any GUI software that can do this? As far as I can tell, there is no passthrough option in OBS.

with the flag -progress progress.txt in ffmpeg you can track the progress of the video transformation.

@Nemesius Are you saying that the only way to resume FFmpeg where it left off is to use a script that reads from a progress file and runs FFmpeg again with -ss [last out_time]? I was hoping that FFmpeg had a built-in feature to do this.


text:
ffmpeg or ffplay time index not matching with VLC
I am trying to trim many smaller videos out of one big video. I have watched the entire big video using VLC and noted the time index where each video stops and starts.
Next, I use ffmpeg to trim each small video:
ffmpeg -ss 00:43:58 -i big_video.mp4 -v copy -t 1:00 small_video.mp4
While the duration for each video is correct, the start time is off by about a minute. Note this is not the issue where ffmpeg starts at the nearest keyframe. If I manually compensate the start time, the clip is trimmed correctly.
If I use ffplay as follows to skip to the starting point in the video, it also starts about one minute ahead:
ffplay -ss 00:44:58 big_video.mp4
I then verified my timestamps in VLC, and they are correct. It seems that there is some sort of difference between how VLC and ffmpeg seek in the index? Or maybe even that the index is corrupted in some way. How can I fix this?

When viewing certain parts of the video with ffplay, it seems some parts play a bit faster as they should. In VLC this does not happen. The passage of time as indicated by each player remains constant, so this explains at least where the discrepancy is. Different parts of the video happen at a different time index when comparing between ffplay/ffmpeg and VLC. The discrepancy becomes bigger after more time passes. Not yet sure what causes this though...

Eventually, I noted down time stamps again while playing via ffplay. The following command displays timestamps while playing:
ffplay -vf "drawtext=text='%{pts\:hms}':box=1:x=(w-tw)/2:y=h-(2*lh)" input.mp4


text:
Seeking for advice with dealing with out of sync audio
I have a bunch of videos from games caputured with NVidia's Share.
They are trimmed using VLC.
I have one video that is 1 minute and 38 seconds long (a lot longer then the others). If I play it in VLC the sound is in sync, If I play it with Blender, windows media player or Shotcut then the sound is out of sync.
I tried to convert the video from VLC to other formats, but either I end up with 2kb files, or the sound is still out of sync in other software. So far I wasted 3 hours on this. Can someone with more experience help me with advice on what to try next?


text:
What exactly is a "sample" in audio/video context?
I'm studying on video processing/encoding and doing so I started looking source code of some popular related tools. And all of them has some reference to "Sample"
For example an arbitrary code has the following lines
processor::readSample() peocessor::sampleRate()
Now when I Google search I get fully irrelevant results.
Can you explain what exactly  "Sample" means? (It certainly is not a demo/test video file type thing)

If you are working in a video editing app like Premiere or Final Cut, when you specify a sample rate, you are specifying the audio sampling rate.  This is how many times per second the audio is going to be converted into a numeric value and stored.  So typically with video, it is 48,000 times per second (a frequency of 48kHz), or 44,100 = 44.1kHz. You need two samples to correctly measure a frequency. This means that the maximum frequency you can record in an uncompressed audio recording is usually just under half the sample rate.  This is called the Nyquist frequency.  So at a sample rate of 48kHz, you cannot correctly record any frequencies about 24kHz without hearing alias frequencies (incorrectly recorded lower frequencies appearing in error in your recording).
Pixels are not commonly referred to as samples, and a frame (whether defined as an audio frame in a file format, or as a frame of video) is different to a sample.
It would improve your question to say which program your code snippet comes from - someone might be able to help directly.
Also - bit depth is not the same as sampling - sampling is how often you measure something. Bit depth is how many numbers you use to record the measurement.  So most audio is recorded at 16, 24, or 32 bits.  So each sample in a 16 bit recording could be measured between zero and 65,536 amplitude levels.

It depends on the context. For video, it’s usually one frame. But very rarely could mean one pixel. For audio, it most often a single number that represents the instantaneous power value in the wav. Audio sample rate is the number of samples per seconds. I.e. 48000, meaning 48000 numbers are needed to play back one second of one channel of audio. Audio samples are usually 16 bit integers, or 32 bit floats, but really could be anything.
Open an audio file in audacity, and you can see every sample.
But sometimes (for example in mp4) a sample may refer to an audio “frame”. An audio frame in this context is more that one audio sample compressed into a packet. The number of samples per frame is dependent on the codec (aac is 1024 for example)

I wouldn't say that it's very rare to call a pixel a sample. Most codecs have the number of bits per sample (meaning pixel) as part of their definition, or the ratio of chroma samples to luma (e.g. the 4:2:2 in ProRes 422). Also might be worth noting that in the context of music production a sample can also refer to a sound used as a source by a sampler, for example a drum sound or note on a piano, or a loop such as the "amen break" https://www.youtube.com/watch?v=qwQLk7NcpO4


text:
A program for Windows 10 to turn photos and videos into a birthday clip
The requirements:

Turn 250 images and videos into a video clip
The process should be as automatic as possible. Drag the resources, select background music. Tadam!
Should be possible to make some adjustments to the clip (trim videos, change the duration of display etc.)
When a video is used, the sound should be of the video and not of the background music.

I have been searching the web for such a tool. At the moment, the best thing I found was Windows' "Video Editor" that holds true for the first 3 items in the requirements list. But not for the fourth one: I still can't find a way to mute the background music when a video is played.

Is this the right tool for that?
Is there an option to do it with "Video Editor"
Is there a more recommended program?

The tool that does the audio ducking is called a compressor. You could do the video with ffmpeg and the sound with sox, but there will be a bit of a learning curve if you're not familiar with command-line aps.

At the time of writing (Sep 2020), it looks like Video Editor does not provide "audio ducking" for videos with audio. As a workaround, you could use Custom audio (button next to Background music) and trim the music around video clips. From this thread on Microsoft Community:

The Video Editor does not currently have an audio ducking feature as you describe. Here are two potential workarounds:

Make the background music quieter throughout so your speaking can be heard
Use Custom Audio to add the same piece of music several times. You can trim very precisely by selecting a card on the storyboard to move your playhead, and then back in Custom Audio, drag the music trim handle to snap to the playhead location. Once you have the music in segments you can control the volume of each individually.

Unfortunately, if you have hundreds of clips, this may be very tedious work.


text:
Mask in After Effects v 2020 is not accurate
I've made sure it's a mask and not a shape layer.  I've precomposed the layer just in case because I"ve applied keylight.  There is no mask expansion applied.  Please help.  Thank you.

Issues like these usually arise when you either have the layer transformed in 3D-space, or when using distortions and transform-effects on the layer. Since you do not have the 3D-checkbox ticked, I assume that you have some sort of transformation applied in the effect-controls. Did you use something like cc-lens, mesh-warp or turbulent displace? If so, first mask the layer, then precompose it, then apply the warping to it.


text:
video bad resolution it stuck in some frames
I try to design video that include phone screen recording.
the phone recording is good resolution out after effects
when i add it to after effects it's stuck in some frames and it seems bad resolution!
any advise please?

Being a .mov shouldn't cause that issue on its own.  Video files have wrappers and codecs. The ".mov" file name is just the wrapper. The codec is the way the file is encoded inside the wrapper, which you can see by opening the file in something like Quicktime Player and clicking on Window --> Show Movie Inspector.
Most files on phones are stored in lossy formats.  When you convert these again to another lossy format like mp4 you will lose some more quality.
You might get a sharper looking result by converting your original file to a lossless format like ProRes or an Animation codec.  You can do this using Adobe Media Encoder.

Finally I find out the problem!
It's happen because the video format was .mov
Just convert it to mp4 by online tool then everything was ok!


text:
How can one resume an interrupted ffmpeg job or pause by design and save some kind of state file?
Attempting to convert a series of mp4's for the umpteenth fricking time using hvec 265 codec to save a buttload of storage space. And this does indeed work quite well but i do not have the luxury of letting the encoding job run and run and run forever and the moron b*****s here very well know that. So the question is, how to resume an interrupted job ? would seem they could build what the last frame looked like by scanning the initial frames if some other data was stored and clip any bad data off the end and re-begin at around the point of the last write.
Was once suggested to pull the parts into smaller pieces and concatenate them but i would think this would require a full reencode of all pieces occurring AFTER the first cutoff point during concatenation to continue the chain unless of course mp4 files can contain MANY video sections.

Depending on what shell you're using you can suspend a process (in posix shells it's with ctrlz, in Powershell you might use suspend-Job) and then resume it. This is true for any shell with job control. You can't quit and save the state from ffmpeg though.
A workaround would be to run the ffmpeg process in a virtual machine. Most linux distros have a minimal server version that would work for this. This would let you save the machine state, and restart the encode at a later date.


text:
How to perform a "lighten only" operation in ffmpeg for prop flicker removal
I have footage shot from a helicopter and I would like to remove the rotor blades. Since the blades are so fast it seems feasible to use the pixel values from the next frame (usually the sky) wherever the rotor appears. So logically, whichever pixel is brighter in frame N and N+1 should be the one to use. I'm using ffmpeg to attempt this and I've tried using "addition" and "Lighten" but the blades are still visible. Lighten does reduce the blades, but I'd really like them to vanish completely.
I've tried using and expression to select the brighter of the two pixels, but it's not giving the results I expected.
-filter_complex "[0:v]format=yuva420p,tblend=all_expr='if(gt(A,B),A,B)'

The result is not perfect, at least not what I'm expecting. I can see a sort of bluish tinge where the shadow has been replaced, but its not the same colour as the pixels I'm expecting. I'm guessing it might be something to do with how the chroma and luma planes are stored, but the blend function doesn't give you that level of detail. There is also a lut2 command, but that doesn't really look like it would work for this.
If my basic idea correct, or have I overlooked something?

It looks like you can use maskedmax filter to do this operation. There are probably other ways too, but this seems reasonably fast. Now I have another issue in that you end up with a ghosted edge around the blades where they catch the sun.ffmpeg -i %MOVIE% -t 5 -itsoffset 0.04 -i %MOVIE% -t 5 -filter_complex  "color=0x202020:s=1920x1080:d=24[mask];[mask][0][1]maskedmax=:planes=0xf[out]" -map "[out]" %MOVIEOUT% " This takes the same file twice, but with the second time offset by 1 frame, to produce two streams. Then creates a blank buffer and uses that to pick which pixels to use.