text:
How can I delete a chapter from a MP4 video?
I use Foobar2000 to tag my music.  I just recently found out by dumb luck that it works with mp4 videos as well and shows the tracks as chapters.
One video in particular, it shows it as 19 Chapters, but it should be only 18.  I try to play Chapter 19 and it just throws errors.  Is there a way to just delete this Chapter from the MP4?  I've looked all over and can't seem to get a straight forward answer on how to do it.  I've been using FFMPEG with my video conversions, so if FFMPEG can do the job, that'd be preferable.


text:
Is there a "fix" for Adobe Premiere Pro so it doesn't degrade sharp black lines and soften vivid colors?
I captured video output from a computer program using Xbox Game Bar in Windows 10.  It looks good.  After cropping in Adobe Premiere Pro, my black lines are fuzzed, the vivid colors are degraded, and there appears to be image "echoes" from compression.  The final output is here, and I would like to do better:

Any ideas?
(The video output from Adobe was bad before the upload to YouTube; the thumb on the video start is good.)

Which video codec has been used to record the video? Which export settings did you use (esp. format, preset and target bitrate)?

@Matt -Thanks for your help. I've been through the tutorials and every menu and button I can find.  I checked that I do have the current drivers for my Intel HD Graphics 4600 and NVIDIA GeForce GTX 970.  In the Xbox game settings, I have image quality set to high, and the only other control is fps.  So, I really don't know where to look for my codec or target bitrate.

Nevermind the recording codec, then. The other parameters I meant can be found in Premiere. Can you tell us what you set in Premiere when you went to File-> Export -> Media... in order to export the video?

@Matt - In Adobe Premiere Rush 2021, File -> New, Project, Share, Exit.  That's it.  Share-> Local, YouTube, Facebook, Instagram, Behance. Facebook-> Advanced Settings = Automatic, 1080p, 30 fps, stereo, quality= high.  Instead of automatic, I could bump this up to Facebook 2160p 4K Ultra HD.

For 30,000 graphics frames at 1000 x 1000 coming out of Mathematica and playing for 45 minutes, IDK if an i7 at 4 GHz, 32 GB RAM, and 150 MB internet will handle that,

First of all, as we've found out in the comments, you actually use Premiere Rush and not Premiere Pro. There is a difference, Premiere Pro is much more complex but it also enables you to take control of many more aspects of the video making process.
The problem is most likely due to compression with a target bitrate that's too low. Rush is optimized for quick social media video sharing and this means they expect videos to be about a person talking about something filmed in front of a mostly static background, for example. They didn't have videos as yours in mind that require higher bitrates to look sharp and clean.
Normally I don't use Rush, but tried it to check what can be done in your case. Unfortunately, I don't see any option you can try. Setting the quality to high is already the best you can do. Using the 4k preset may help if the original clip has been recorded at 4k.
Another option you can try is to install ffmpeg and use it from the command line. A question that deals with adding the crop effect, you need, is this one: How can I crop a video with ffmpeg?
Handbrake is a GUI tool, that uses ffmpeg and another alternative to try.
Or you could try Premiere Pro (if it's not in your subcription plan you could still try it for a number of days for free). However, both Premiere and ffmpeg are more complex.
It might be good to record another 5 min clip to save time when you try to find out the highest bitrate you need to make it look pleasant, yet still produce videos that are suitably small for upload to the web.

You are correct - I do not have Pro.  I am sorry about that mistake.  I will upgrade, and other consumers need to be aware of this difference.

source: Stack Exchange

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

sort: votes


text:
How to write an expression for the following [Pop In object]?
Pop In object (@ 17s)
I'm fairly new to Expressions, I'm trying to attain this effect with expressions. I tried using the inertial bounce code on the net
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n--;
}
}
if (n == 0){
t = 0;
}else{
t = time - key(n).time;
}

if (n > 0 && t < 1){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
amp = .05;
freq = 4.0;
decay = 8.0;
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{
value;
}

To make this generic, I acquired the desired result by creating a null object with a scale value of 100, applied the above code to the null and added s=linear(thisComp.layer("Null 8").transform.scale[0],0,150, 0,desiredScale); [s,s] to the required object's scale. Though this works decently, this is such a pain to do for every object (I have a lot of objects for which I want to apply this effect). Is there a simpler way?

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


text:
Horizontal to vertical video using ffmpeg
I want to make a horizontal video get converted to vertical video using FFMPEG for automation purposes. I tried with this, which works for vertical to horizontal
    ffmpeg -i input.mp4 \
  -vf 'split[original][copy];[copy]scale=ih*16/9:-1,crop=h=iw*9/16,gblur=sigma=20[blurred];[blurred][original]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2' \
  output.mp4

And tried to change the "16/9" and "9/16" parameters backwards so it makes the reverse procedure, but i get an error.
I don't really need the blur thing, because i want to put some images on the black boxes that will result from doing this process.

For the blur effect command, you needed to swap a few widths with heights then rescale it so the original video fits in properly above the blurred video:
ffmpeg -i input.mp4 -vf 'split[original][copy];[copy]scale=-1:ih*(16/9)*(16/9),crop=w=ih*9/16,gblur=sigma=20[blurred];[blurred][original]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2' output.mp4

If you want black bars instead, it was covered in this post, but for the tl;dr, it's this:
ffmpeg -i input.mp4 -vf "pad=iw:2*trunc(iw*16/18):(ow-iw)/2:(oh-ih)/2,setsar=1" -c:a copy output.mp4

To rotate, you can just edit the video metadata. For example the following command produce output that is shown 90 degree rotated in VLC, you may use -90, depending on orientetion of your video.
ffmpeg -i input.mp4 -metadata:s:v rotate=90 output.mp4

I don't know but if the player is inept to read and apply this, it mightn't work.


text:
Record Canon DLSR movie directly on macOS drive
I'm looking for a solution to be able to shoot with my Canon 1Dx and have the footage straight on my 2019 MacBook Pro with Big Sur (v 11.2.2) and I'm stuck.
Here is what I have tried and what issues I have encountered or what does not suit me:

I installed Eos Webcam Utility (v1.0.2) which allows my 1Dx to be used, via the USB cable, as a webcam in many applications. But I can't get the video stream back to Quicktime Player (which I think would have fixed my problem).
With Eos Webcam Utility provided by Canon (EWU in the following), I manage to retrieve the stream in OBS but it does not allow (or I cannot find how) to retrieve the raw stream and it is forced to transcode it. And it consumes a lot of resources which leaves me the choice between recovering a stream of not even 720p or losing a lot of frames, like 50%, or even more, which is not ideal.
With FinalCut Pro X Trial (v10.5.1), I thought I had found a solution. But I've found that many times when I stop importing it doesn't save the file (I'm not sure but it seems related to timecode breaks). So I don't want to shoot for a while to find out that it didn't work.
I tried with the Elgato Cam Link 4K but was only able to get the camera screen with the OSD, without having the ability to record it in Quicktime or Final Cut.
I also tried the network options provided by the 1Dx:

the FTP mode can only transfer images, not videos.
The web server mode allows control but not video capture.
What comes closest to what I would like is the mode that allows you to control it with Eos Utility 3. The only problem is that it cannot take video while the files are being transferred from the memory card so all transfer time is wasted time.

In addition to that, for several days now, I'm no more able to get the image of my 1Dx in Final Cut. When I try to switch to liveview mode, the 1Dx shows me the message "busy". If I unplug the USB, I can activate the liveview mode, but as soon as I reconnect the cable, the liveview mode stops. Final Cut shows me the Canon image all the time with the USB cable unplugged.
If you ever have a solution, I'm interested.
Thank you in advance.


text:
What video production softwares are typically used for the following
This may be a subjective question, but I'm not sure where else to ask, so apologies in advance!
A lot of websites for softwares of various kinds have marketing videos of user-interfaces in action.  These aren't the actual ui's that have been recorded -- they are instead "faux-ui's" that are simplified and usually more animated versions of the real thing.
eg:
https://a.slack-edge.com/5f6f2/marketing/img/homepage/hp-prospect/channels/bring-your-team-together-in-channels.mp4
https://www.helpscout.com/
I am wondering:  What kinds of video softwares are typically used for the production of these?  Are there are certain tools that are industry standard for this?

I'm not sure whether there is specific software that does this but my go-to would be after effects as it allows you to build all this within itself, or it can animate a file that was build in photoshop/illustrator


text:
Precomp is disappearing and Mocha tracking points aren’t pasted
Very newbie with Boris Mocha.
I want to use Mocha to replace a computer mouse cursor by an object. Here, with screenshots, it’s how I try to proceed.
I then created a solid layer

Next, I pre-composed that layer

Following this tutorial :

, I applied my Mocha tracking data to my newly created comp (Red Solid 1 Comp 1)

But Sadly, It doesn’t work :

My “Red Solid 1 Comp 1” has disappeared
And the tracking hasn’t been pasted properly, I cannot see the
tracking points within the “Red Solid 1 Comp 1”

What happened ? Please help!
PS: I use the latest version of AE and Boris Mocha to date, on my MBP Apple M1


text:
Does YouTube accept AviSynth .avs scripts for uploading?
Without reencoding videos first? Is it possible to browse for .avs file and upload it, provided AviSynth is properly installed locally?

Did you try this?

@MarianD yes, it simply uploads the script file first, then tries to treat it like video, and fails; it doesn't open it locally and doesn't begin to stream it to youtube server; that was a naive assumption; perhaps a dedicated upload tool might solve that

So you answered your own question. ;-) Why to search for a dedicated upload tool, you may convert it locally and then upload it as a regular multimedia file.

It's not on this list, and therefore not possible: https://support.google.com/youtube/troubleshooter/2888402?hl=en

@Matt yes it is. When an external program opens avs script, it actually sees it as a generic AVI file with no compression

It's not possible because the .avs script must be opened and processed locally, so uploading a video through your browser would never work.  A dedicated-YouTube-uploading tool in theory maybe could work, but that either would imply that it'd be uploading uncompressed or losslessly compressed video (no way) or it'd be re-encoding the video for upload (and there'd be no guarantee that the YouTube server wouldn't re-encode the video again anyway, and encoding locally likely would be a lot slower.


text:
Animating paths in After Effects
I have an illustration that I would like to animate in AE. Not sure how to do this however. I have three paths (simple lines) I made in illustrator with the pen tool, then used to width tool to thicken at one point and taper at the end (they're tentacles!). Anyway, I just want to animate the tentacles so they squirm and writhe around. So far all I've been able to do is use the usual transform properties, but those aren't very dynamic or useful for this project. How do I go upon doing this in AE?
Screenshot of illustration.

You might also look at using the Puppet Tool on each of your tentical layers.

Probably the most dynamic and full control option would be to use taper stroke in after effects - just redraw the path and apply taper like here - https://i.ytimg.com/vi/jFBKMRncG80/maxresdefault.jpg
then you have a multitude of options to displace them (like wave warp, mesh warp, wiggle-shear, or even map the end points to nulls and use wiggle position).
Tapered stroke is only available in CC 2020 and 2021 if I remember correct.
Another option would be to expand shapes in AI and copy path into AE which you can then animate later, but it would be more time consuming.

Add a solid layer
Add Red Giant 3D stroke to it
Make a path with Bézier curves in it on the same layer.
Adjust the taper settings in 3D stroke to look like the original tentacle
Select your Mask Path in the 3D stroke
Create Nulls from Paths
Click the Points Follow Nulls button
Now a null will be created for every point on your path.
Go to a null you want to animate
Right click on its Position and select Separate dimensions
Add an expression to the Y position by alt/option clicking on its keyframe icon
Put in an expression like “wiggle(1, 100)” where 1 is the frequency of the wiggle (one wiggle per second) and 100 is the amplitude in pixels (how far it should move from its original position).
Do this for each tentacle
Mask out your original tentacles once you’ve done this.
Adjust the wiggles until they look nice


text:
Why is there an orange cross going through my clips in premiere pro
Whenever I put an effect on one of my clips an orange 'X' goes through the display and the render. Does anyone know how to fix this?

I am pretty sure this does not happen with every effect, just with those from Boris FX (Sapphire).
It's very likely you use a trial version and need to buy a license. Check here: https://borisfx.com/faq/sapphire-trial-watermark/
If you already have bought a license then something might went wrong during activation and you should contact them for further support.

Thanks Matt. But do you think I could get them for free?

They have a student license, I suppose it's free, here's the form: https://borisfx.com/support/student-license-request/ If you're not a student, you'll have to pay for it.


text:
I just bought a panasonic HC-VX981K 4K camera and wondering which is my best format to shoot in?
I just bought my panasonic HC-VX981K and was wondering which is the best format for just recording perfect video, it states that higher bitrate in 4K MP4 format but I'm hearing AVCHD progressive is best , I don't know, I'm needing help here

First think about what film/project you want to do, then what requirements you have and check what format fulfills your requirements best. There is no such thing as perfect video or a universally best format. It always depends on the project. This means without specific details we cannot help you. Also read the manual, they describe when each of the available formats is suitable.

@matt - Oh ok , Thank you sir , basically I'm just creating short videos of my son , with the camcorder , I was just uncertain about which format for best quality video to just playback thru HDMI to FHD TV to watch, no special editing ....!

I have experimented with AVCHD, but it often led to corrupted files. It is quite sensitive to SD card quality, stability of the power, etc.
I ended up recording at FHD 50p.  FHD because the 4K isn't really good enough to call it 4K - the result, when played on a 4K screen, is rather blurry and grainy, as if the camera upscaled. 50p because anything below is almost unusable.
Update: I have digged a bit deeper. And it seems that AVCHD is there basically only for compatibility with Apple, somehow. AVCHD also records using the h264 codec. But the bitrate for AVCHD is way lower than for MP4 50p. Which means: Do not record to AVCHD if you do not have any technical reason for it (processing your videos on uncompatible Apple products).
Also, if it's for indoor family videos, I recommend not to use HDR, it just makes everything foggy. Better pay attention to where the light comes from.


text:
Overlay of multiple image sources with layer stack-order, with ffmpeg
Note: I've already read a few questions/answers about [ffmpeg] overlay, but it did not fully answer this.
Let's say we have five inputs [0] ... [4] that can be images, videos, etc.
I'd like to overlay them in a precise order, a bit like "Photoshop layers" or CSS z-index.
Currently I use ffmpeg with a "recursive" use of overlay like this:
   -filter_complex "
        [0]setpts=PTS-STARTPTS[s0];
        [1]setpts=PTS-STARTPTS+3/TB[s1];
        [2]setpts=PTS-STARTPTS+7/TB[s2];
        [3]setpts=PTS-STARTPTS+8/TB[s3];
        [4]setpts=PTS-STARTPTS+9/TB[s4];
        [s0][s1]overlay=enable='between(t,3,13)'[o1];
        [o1][s2]overlay=enable='between(t,7,12)'[o2];
        [o2][s3]overlay=enable='between(t,8,15)'[o3];
        [o3][s4]overlay=enable='between(t,9,12)'[o4];
   "

Question: with ffmpeg, is there a way to do a mixing of different input image "layers":

in a shorter way that this recursive use of overlay
and such that we can specify the "stack order" of each layer, like with CSS z-index

?
To give a concrete example, how would you modify the previous command such that:

from 0'00" to 0'10", the layer order (from background to foreground) is 0, 1, 2, 3, 4
from 0'10" to 0'15", the layer order (from background to foreground) is 2, 3, 1, 4, 0 (i.e. [0] goes to foreground)

?


text:
How can I sync two audio sources running at different speeds
I know Vegas is more of a video editor, but I like the visuality and ease of syncing audio.  I've done this easily with 2 digital sources, it's a snap.
The problem lies when you try to sync old analog sources that were recorded on different equipment and different battery strengths.
I've got two sources.  On one source, the required clip runs exactly 2,481 seconds long (from 4:16:24 to 45:37:00 on my timeline).  The source I want to mix it with runs exactly 2,422 seconds long (from 4:16:24 to 44:38:00 on my timeline).  I calculated this by syncing exactly the start point and lining the 2 tracks up, and then determining the exact same end point on both tracks.
How can I sync these so they both run the same length of time, and match up along the way?
I'm using Sony Vegas Pro 13.

Well, I sorta figured it out so I'll put it as an answer, although I hope someone comes up with a better suggestion.
I had to eventually cut one track into (approximately) 5 minute segments.  I placed my cursor at the end of each segment, held the shift key and did a click-and-drag with my mouse to perform a "time shift" until the tracks aligned.  Then, I moved the next clip up against the first and repeated the process.  I found if I did this with the entire track, it still went out of sync, so by chopping the track into (approximately) 5 minute intervals it kept it closer to sync.  That might be due to the speed of the source tape varying as the batteries got weaker.  I tried to cut the track near a large volume peak or valley to make it visually easier to align the tracks.
All in all, it was still much easier than trying to do this with something like Audacity or Sound Forge.


text:
How to remove background from video without green screen on the command line?
I'm looking for an ffmpeg-like tool to blur/remove/change a static background from a "talking head" video, on the command line with on-device processing.
Essentially,
ffmpeg-like-tool [--blur-background | --remove-background | --change-background] --background image.jpg --in input.mp4 --out output.mp4

Does such a tool exist yet?

Related: https://stackoverflow.com/questions/55916977/remove-random-background-from-video-using-ffmpeg-or-python

nadermx/backgroundremover
https://github.com/nadermx/backgroundremover
This is now the top Google hit, I installed version 0.2.9 successfully on Ubuntu 24.10 with:
pipx install backgroundremover

Unfortunately, there's a bug mentioned at https://github.com/nadermx/backgroundremover/issues/116 which prevents the most common use cases from working (mp4 -> mp4 with background replaced by image or another video), but the author replied there and might fix it.
The following did work with this test video (~1 MB, 5.7 s, 1024x768, 162 frames):
time backgroundremover -i in.mp4 -tv -o out.mov

which you can download with:
wget -O in.mp4 https://github.com/cirosantilli/media/raw/master/Ciro_Santilli_selfie_in_cycling_kit_with_old_cottages.mp4

but it is not very useful (as a final use case) as it produces a huge .mov file (238 MB for an 1 MB input file! 2m25s conversion time on Lenovo ThinkPad P14s amd), and you can't output formats like .mp4 directly like that because .mp4 does not support transparency unlike .mov: https://github.com/nadermx/backgroundremover/issues/92 and I don't know how to use that .mov later on to e.g. replace transparency by a fixed color, though I'm sure there's a way as usual with ffmpeg.
Another thing that worked was their GIF output:
backgroundremover -i in.mp4 -tg o out.gif

Quality wise, there's are a few glaring artifacts on my simple test case, so it's not perfect. But new better models can always come along later on, currently you can choose between u2net, u2netp, u2net_human_seg. So we understand that this is the base model currently supported: https://github.com/xuebinqin/U-2-Net , and the exact task that it attempts to solve is "Salient Object Detection", because e.g. it attempts to select "objects held by people" as part of the foreground just like the person.

Related:

https://askubuntu.com/questions/651309/software-to-automatically-remove-background-from-images
https://www.reddit.com/r/linux/comments/oso31y/remove_background_from_video_and_images_with_a/
https://stackoverflow.com/questions/55916977/remove-random-background-from-video-using-ffmpeg-or-python

Related: https://stackoverflow.com/questions/41923492/cant-import-moviepy-editor

I find it hard to believe that every video conferencing app I have used (Teams, Meet, etc.) all seem to have this functionality which works very well even with a moving background, and yet this is the best that is available?

@Michael these things are hard to benchmark, I wonder how the proprietary models would perform for my input. My input was also particularly challenging compared to a typical user sitting down facing forward on conference. Do ping me if you find a better one.

I haven't been able to confirm this, but I suspect that some webcam hardware such as on Macbooks and iPads may have some kind of IR depth sensors, which would greatly reduce the complexity of filtering out the background.  However, I haven't been able to find how one could access this information from something like ffmpeg to do this filtering oneself.

@Michael OK, could be. Some of them have IR for sure, here I show a ffmpeg example: https://askubuntu.com/questions/348838/how-to-check-available-webcams-from-the-command-line/848390#848390

Thanks!  Sadly, it does not appear that IR/depth information on MacOS (e.g. from TrueDepth cameras) is available using ffmpeg...

There is a reason why monotone background are used, they allow one to determine where the object is, and where is the background. As far as i know no took exists, which can always determine what is the background, and what is the object that is actually being filmed.
If the background is really static (not moving in the frame, rather than simply always being behind the person), then you could attempt to extract frames and determine the pixels that keep their value above some arbitrary percentage of frames. You then can create a mask based on if the pixels of the specific frame are the same as the value of the 'stable pixels', and blur in that mask.
The the background is moving in the frame due to camera movement or changes in some manner, this becomes very difficult, and i may even guess impossible in some situations. Also even if it will work, it will need to be double checked to see that you won't get false positives. You will definitely get false negatives near the person's head.
In the even you have resources for development and really need it to be done, you could go neural network route. Be prepared to provide neural net lots and lots of training data. For that you would need to film akin to the videos that you will be processing, but doing that in front of the green screen. This will allow you to determine where the head truly is in each frame, because once you put in the background it will be the job of the neural net to figure out where the head is, and your job to tell it whether it is correct or not during the training, and to be able to do that in testing to see how well it has learnt to identify the human head.
Good luck.

But then, how do Zoom, Teams etc do to separate you from the background in a live call?  I would like to use that same type of software and apply to some training videos we have where the background is distracting


text:
Wrong centered merge in Davinci Resolve's Fusion
I have created a standard "button" composition

But when I click in the Merge9 node, it only moves the text keeping the retangular background static.

I was expecting that the ending merge to move it entirely and with its center correctly aligned with the retangular object.
I'm using Davinci Resolve 17

If you want to move the two things together, use a transform node after they’ve been merged.


text:
Audio distoreted after exporting on Premiere Pro
I just finished my video on premiere pro. The sound is nice when I'm listening to my premiere pro's video; however, my audio is distorted once I exported. I already used premiere pro before for a similar project and never had any problem. I did the last update; maybe it is a problem?
The only thing I did now is to slow down some videos.
The effect I choose for the audio are:
DeNoise
Dynamic Processing
Parametric equalizer
Multiband compressor
Thank you in advance for all help you can provide.
Have a great evening,
Pauline.

This is difficult to solve without having access to your project and audio files. Try a new project where you import the same audio and make a simple sequence where you don't apply any effects. Then export it (you could export only audio for faster results). Does the problem still exist? If yes, it could be some issue of whatever video player you use or your system. If no, then it might be related to the audio effects you use in the original project, although that wouldn't explain why it can only be heard after export. If the problem presists, it might be best to chat with Adobe about this.

Alternatively share the project and audio files with us (video can be omitted) and tell us which audio format you've used so far for export.


text:
get metadata for video start time with ffmpeg
I need to get the start time of some videoclips (very precise, ideally precise at 0.1 sec). I have been told that I may be able to do so using ffmpeg. I managed to install it but am not sure how to obtain this information.
I tried with
path > ffmpeg -i test.mp4 -f ffmetadata test_metadata.txt

But then the test_metadata.txt file just contains the following
;FFMETADATA1
major_brand=mp42
minor_version=0
compatible_brands=mp42isom
encoder=Lavf58.77.100

Any suggestion? Also I am happy to use other commands/software. Can't use online services as video are sensible and I must adhere to GDPR

You can use the companion ffprobe tool, which really is meant for machine-parseable text.
ffprobe -v 0 -show_entries format=start_time -of compact=p=0:nk=1 "input"

This will print a value with the form x.yyyyyy or N/A for formats without timestamps.


text:
Firefox only uses OBS virtual camera
I'm on macOS (10.14.6) and have OBS installed. I tried out the virtual cam a while ago using the native virtual cam functionality (not the plugin) and now whenever I need to use my camera in Firefox (88.0b5), it uses my virtual cam. This is the case whether OBS is open or not and whether my virtual cam is "started" or not. I can't get it to use my macbook's normal webcam or even tell that it exists.
There don't seem to be any preferences in OBS (26.1.2) about disabling the virtual camera. How can I disable that feature entirely or just get Firefox to use my normal webcam instead of the virtual cam?

If you no longer need the virtual camera, you can uninstall the virtual camera plugin (whether it was installed as a separate plugin or as part of an OBS update) using the following commands in the terminal:
sudo rm -rf /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin
sudo rm -rf /Library/Application\ Support/obs-studio/plugins/obs-mac-virtualcam

Once that is done, make sure to close OBS and restart (quit and open) Firefox.


text:
Why does outputting an analog source at higher resolutions produce a better picture quality, however slight, on higher resolution screens?
I'd like to know why does outputting an analog source at higher resolutions (digitizing) produce a better picture quality, however slight, on higher resolution screens than just outputting at a lower resolution and letting the higher resolution screen fill in the pixels using interpolation if all the information has already been captured at the resolution that one is outputting the analog source?
For instance, suppose I have an analog Super 8 film reel from the 70's that I want to digitize or an analog family photograph that I wish to scan using a scanner, why would outputting/scanning at higher resolutions be beneficial when viewing the digitized source on a 4K display, instead of outputting/scanning at a lower resolution and having the 4K display use interpolation when upscaling the source?
For instance, suppose an analog Super 8 film contains 720p-worth of information-I know Super 8 film doesn't contain pixels, but bear with me--if one were to digitize (output) at 720p all of the information on the reel would get captured. Now, suppose I were to decide to output that same Super 8 reel in 4K and display it on a 4K TV, would I get a better picture quality than if I had outputted the Super 8 reel at 720p and let the TV fill in the missing pixels using interpolation?

That was another question I asked. This is a follow-up. My previous question was about whether it made any sense to digitize at higher resolutions. The answer was, "It's not going to look that much better if you do, since all of the information has already been captured." This question is, "Well, if it does and I'm looking for maximum image quality then why does it look better in the first place?"

I'm going to close as duplicate. Interpolation does not recreate information - it "guesses", whereas digitizing at high quality loses less information.


text:
in FFMPEG, ":enable=between(t,5,10)" not starting at begining
I have three inputs; two images and a folder of image squence.
Total length of image squence is 3 second.
ffmpeg
    -loop 1 -t 10 -i image1.jpg
    -loop 1 -t 10 -i image2.jpg
    -i png/out%d.png
    -filter_complex "
        [0][1]xfade=transition=fade:duration=0.15:offset=2.5[a];
        [a][2]overlay=0:0:enable='between(t,5,5)'[video]
    " -map "[video]"
    -crf 30 -c:v libx264 -pix_fmt yuv420p -s 918x1632 -r 12 -movflags +faststart -t 10 out.mp4

At the 5th second of out.mp4, image sequence is shown, but not at its begining. It seems that while rendering until the 5th second it was already started behind/invisibly.
How can I force FFMPEG to do it properly?


text:
Producing video for multiple platforms
I want to create videos for multiple platforms. For example youtube and a private school.
Now the thing is that I want certain lower thirds to appear on one rendered video and another set to appear on another video.
For example, I want a subscribe and social media lower thirds to appear on the youtube video and I want the school email and other relevant info to appear on the second video.
Currently what I am doing is to create two sequences in premiere and basically re-edit and change the mogrts.
The problem with this is that it is monotonous and I have to do it for each and every video individually.
Is there a way I can streamline this using ffmpeg or any other software?
Maybe I can render my video first without any lower thirds, then create a transparent video of my lower third animations and have them be inserted automatically at a specific time interval.
Thank you

Let's assume that your 'lower thirds' are images, and are not dynamically generated. For example you have youtube-l3rd-1.png, youtube-l3rd-2.png, and youtube-l3rd-3.png for YouTube, and school-l3rd-1.png, school-l3rd-3.png, and school-l3rd-3.png for school.
You then create a way to put those thirds on the video with -filter_complex of ffmpeg. Since this was not your question, i am assuming that you did so. You can then do:
for platform in youtube school
do
  ffmpeg -i input.ogv -i "${platform}-l3rd-1.png" -i "${platform}-l3rd-3.png" -i "${platform}-l3rd-3.png" ..... "${platform}-output.ogv"
done


text:
How to make strokes appear 3D in the After Effects 3D (Cinema 4D) Mode?
I am currently animating a rotating 3D globe, built out of stroked paths. However this is causing a problem - the strokes are rendered on a 2d plane, so as they near parallel with the perspective, they disappear.
Is there a way to render strokes so that they behave as though they were 3d (interacting with perspective and rotation as a cylindrical tube would)?

Thanks a lot


text:
I want to animate dust particles in a cave that forms a word then disperse again

I know this is probably related to the particle system in after effect, but all the youtube videos I have seen used a few thousand particles at once to do this. Is there a way to only use a few circles to roughly form the shape of the letter "I" instead of actually turning it into the actual text? I would also like to make the circles vibrate slightly while it is in its letter "I" form.


text:
Some parts have audio out of sync after a master export
I have a project in Final Cut Pro X, that plays as I expect in the Final Cut, but when I export in to h264 there is a part where audio is playing slightly in before the video.
Such part is present on the following screenshot:

At the beginning the audio is in sync. Then there is a 100x speedup, and then audio get's out of sync (I'm talking about the clips audio, not the green music). Ironically there is also a connected clip that appears slightly later, and it also has a 100x speed increase later on but that does not cause any problems. Also both clips' audio plays separately in the left and right channels, so in headphones I can hear that in FCPX some audio bits happen at the same time, while in the exported file they are out of sync…
Am I doing something wrong?

I don’t think you doing something wrong.
My suggestion is copy the sequence to a complete new and fresh library. This should load the clips again and hopefully get rid off any possible problems in the library.


text:
Exclude audio from time remap
I am working on a project, I have separate a audio layer and a video layer (with the audio muted) and I have applied time remapping to the video layer. The issue is now that whenever the video slows down or speeds up the audio also slows down and speeds up along with it. I want to know how to keep the audio speed default without the time remap affecting it.

I would duplicate the layer before applying time remapping (cmd+D).
Then only apply the time remap to one of the two layers.
Switch off the eyeball on the layer for audio (and make sure the loudspeaker icon is still enabled)
Switch off the loudspeaker icon on the layer with the time-remapping applied to it.


text:
queuing multiple encodings with different edits
Is there a way to queue multiple encodings with each being a different edit of my video?
For example:
I want to queue up 2 encodings.

is for youtube
is for instagram

I need to disable certain tracks on each. So, is there a way for me to disable those certain tracks for 1 and then queue that up? Then do the same thing for 2 and then queue it up? So, they are both building at the same time but with certain tracks enabled and disabled?

The way I would do it is just duplicating my timeline, make one for each type of encoding I want (clip_001_youtube, clip_001_instagram,...), then use Media Encoder, just publish them all and then let ME do it's thing of batching them.
I find it helpful to make a bunch of timelines that are almost the same. Sometimes, I use nesting to make it easier also.


text:
FFmpeg loop video for 30 seconds generate a big video size
I'm trying to loop a 3 sec video to make it 30 sec, I use the following command :
> ffmpeg -stream_loop -1 -i input.mp4 -c copy -t 30 output.mp4

It's working fine, but with the output size 40 MB, it's abnormally to have a 30 sec video with 40 MB as size.
Kindly, how I can generate a 30 sec video file from 3sec video, but with smaller size

What's the size of the input?

@Gyan the size is 1mb


text:
Removing frames from a video - how to make playback not pause during removed frames (i.e. assign new timestamps)
I am working off this answer here. I have calibrated my video such that the following code perfectly exports the frames I want to keep
ffmpeg -i in.mp4 -vf "blackframe=amount=0:threshold=92, metadata=select:key='lavfi.blackframe.pblack':value=45:function=less" -vsync 0  img%d.jpg

I modified the code slightly to export to a video
ffmpeg -i in.mp4 -vf "blackframe=amount=0:threshold=92, metadata=select:key='lavfi.blackframe.pblack':value=45:function=less" -vsync 0  outz.mp4

The problem that I face is the output video is the same length as the input. The correct frames are being dropped but I am guessing the timestamp is not being adjusted because the video appears to pause (shows last non dropped frame) during a playback of removed frames.
I guess I could output the image files to another video editor and recompile into a video but I'd like to do this all within ffmpeg if possible.
Thanks!

The easiest way is to retime remaining frames using setpts.
ffmpeg -i in.mp4 -vf "blackframe=amount=0:threshold=92, metadata=select:key='lavfi.blackframe.pblack':value=45:function=less,setpts=N/FR/TB" -vsync 0  outz.mp4


text:
How to rename linked comps between Premiere and After Effects
I create a lot of linked comps from Premiere into After Effects.
What's the right approach to renaming them, so that they don't all end up with generic meaningless names?
By default they are named:
"Project Name Linked Comp 01", 02 etc.
Adobe says I can rename them in AE without breaking links... Renaming them in Premiere seems to break the link.
What's the best way to rename them in both apps without breaking links?


text:
Automatic dynamic selection of playback speed
I joined this site because this seemed to be where my question would be on topic the most. Sorry if I was wrong in my judgement.
A lot of people watch videos (e.g. recorded talks or lectures) at higher speed than original. E.g., websites like Youtube allow viewers to select up to 2x playback speed.
I do this too and notice that I end up adjusting the speed a lot. For example, some people have large variations in talking speed over time. Any fixed playback speed ends up being to slow for some parts and too fast for others.
Are there tools/algorithms (specifically geared to lectures/people talking) that adjust the playback speed (or, equivalently, compress the time-dimension of a video) automatically and dynamically?
If there are not, do you think this is a good idea? (And if yes, let's do it!)

I think this is actually off-topic because your question is more about consuming videos, not producing videos. Besides, I'm pretty sure no such tools/algorithms exist. I recommend to accept that some parts are a bit slower. Just relax.

It's related to producing videos in that the problem is equivalent to "automatic video editing that adjusts speed". A closely related problem is to "automatically cut out parts of a video where nothing happens". Imagine videos could be edited automatically (and perhaps on-the-spot in the way a viewer likes). Wouldn't that be good?

Might be relevant for your question:
https://github.com/nevoit/Dynamic-Adjustment-of-Playback-Speed
However, it works only with video subtitles and assumes the subtitles are synchronized to the video.


text:
Fixing MDT file from Panasonic camcorder
When Panaconic videocameras are abruptly interrupted while recording, the video is on the SD card as .mdt.
It's supposedly a video stream without a header and a footer.
How can I convert this to be an MP4 which the camera normally produces?

I just ran into this myself. I had a bad file called: P1100020.mdt from my Panasonic LUMIX GX85. The solution is to record a video with the same exact settings, then copy both to a Debian/Ubuntu box under Videos and run:
sudo apt install git libavformat-dev libavcodec-dev libavutil-dev
git clone https://github.com/anthwlock/untrunc
cd untrunc
make
sudo cp untrunc /usr/local/bin
cd ~/Videos
untrunc -s  P1100021.MP4 P1100020.mdt

Keep in mind that P1100021.MP4 is my working .mp4 with the same settings. That should spit out a working MP4 for those GNU/Linux users out there with a name like P1100020.mdt_fixed-s1.MP4

This advice worked for me!
"Use the free software called untrunc. It is free and easy to use. It uses the corrupted MDT file and an uncorrupted MP4 file from the same camera to repair the MDT file. If it fails on the first pass it will suggest some options to get passed the errors."
https://github.com/anthwlock/untrunc/releases/tag/latest


text:
Display image file name in AE viewport
When there's a file missing in the imported image sequence, there is a filename displayed in the corner. Is there a way in After Effects to have the file name displayed all the time even on non-missing frames? Thank you.

This suggestion might help you
https://video.stackexchange.com/a/26424/4426

It was relating to audio files, but the principle is the same.
You would make a text layer, then apply this expression to the Source Text field in the text layer:
thisComp.layer(2).name

Anything on layer 2 in the comp would then have its file name displayed in the text layer.

Thanks, this is a good start, but the expression only displays the whole image sequence name C_[2500-6640 ], which is basically a layer name. It doesn't show the individual frame name (dynamically, like the missing frames layout does).


text:
Premiere Pro 2021 Refusing to Load My Project
On Premiere Pro 2021 whenever I try to work on a project that has multiple layers, it refuses to load it and instead I am met with “project is pending” and it refused to load it and then crashes.
I tried importing the project into a new project and the same thing happened.

You should contact Adobe for support. I think this cannot be sovled without access to your system or many more details what exactly was done with this project.

Have you tried resetting preferences and/or plugin cache?
From here:

Press Alt (Windows) or Option (Mac OS) while launching Premiere Pro.
You can release the Alt key or Option key when the splash screen
appears.
To reset preferences and plug-in cache at the same time, hold down
Shift-Alt (Windows) or Shift-Option (Mac OS) while the application is
starting. Release the Shift-Alt keys or Shift-Option keys when the
splash screen appears.


text:
Visualising MPEG TS informations (PMT, PAT) with wireshark
I captured a multicast MPEG stream (scrambled) transported over UDP, using a bridge between a set-top-box and the router.
I would like to extract these informations : PMT, Audio tracks PIDS, video track PID, subtitle PIDs ..etc
When I apply the MP2T dissector, I can see some "PID" informations on my capture but they don't correspond to what I'm looking for (the actual PIDs in the stream). It's like I'm missing a level of information with this filter.
How can I achieve that using Wireshark ? My goal is to find a method to see this (MPEG stream tracks infos) using only wireshark. I went to through several tutorials but they all require to extract the TS and to analyze with another tool.
Thanks

This site is about video production whereas your question is more about a network tool. Therefore it is off-topic here. I think your question could be a better fit for https://superuser.com/

I disagree that this is definitively off-topic. It falls into the engineering grey area of questions that have been answered here before. However, the question may still not get an answer here, possibly because it isn't possible to do what @pacman29 is asking for in Wireshark alone.

Why not just use ffprobe ?
see the   Stream #0:0[0x100] the hex number in the brackets is the pid.
  Input #0, mpegts, from 'video_109936.ts':
  Duration: 00:00:06.03, start: 74973.058900, bitrate: 2252 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 848x480, Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 128 kb/s
    Stream #0:2[0x102]: Data: timed_id3 (ID3  / 0x20334449)


text:
davinci resolve Editing subtitles at the same time as the video
I used a program to auto-generate the subtitles srt to a video which I'm putting in the timeline. I want to edit the video on the edit page, doing ripple deletes. But when I do a cut and a ripple delete the subtitle doesn't follow, only the video and audio gets edited. How can I edit it all together? The idea is that when I make ripple edits to the video timeline the subs should be automatically retimed.

It works for me in R17.1. Since you generated the SRTs outside, I’d suspect however you’ve applied them. What happens when you build subtitles from scratch by right-clicking in the track header, selecting “add subtitle track” and then adding some by hand? Will those follow a ripple delete?

Have you tried linking them to the audio and video (Ctrl-Alt-L)?


text:
How to detect "late" audio streams in MPEG-2 TS (with ffmpeg, ffprobe or mediainfo)?
I am recording from my Linux TV-Sat receiver in MPEG-2 transport stream (mpeg2video) format. The recording starts before the actual movie, so it usually only has a single (local) audio stream in the beginning, which is correctly detected by ffmpeg or mediainfo:
Input #0, mpegts, from '20131112 2012 - Sky Cinema - Django Unchained.ts':
  Duration: 02:43:02.20, start: 5841.428544, bitrate: 3898 kb/s
  Program 8
  Program 9
  Program 10
    Stream #0:0[0x20](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
    Stream #0:1[0x1ff]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x200](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s (clean effects)
  Program 11
  Program 20
  Program 43
  Program 251
  Program 261
  Program 3499
  Program 3500
  Program 3847
  Program 4021
  Program 4022
  Program 4024

Note the value for 'start' is taken from the recording itself when no explicit start value was given to ffmpeg by means of -ss or (a)trim=.
However, after some time, a second (eg english) audio stream is coming along, and it can well be used in the conversion from .ts to .mp4 (for example):
Input #0, mpegts, from '20131112 2012 - Sky Cinema - Django Unchained.ts':
  Duration: 02:43:02.20, start: 5841.428544, bitrate: 3898 kb/s
  Program 8
  Program 9
  Program 10
    Stream #0:0[0x20](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
    Stream #0:1[0x1ff]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x200](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s (clean effects)
    Stream #0:3[0x201](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, 192 kb/s (clean effects)
    Stream #0:4[0x203](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 0 channels (clean effects)
  Program 11
  Program 20
  Program 43
  Program 251
  Program 261
  Program 3499
  Program 3500
  Program 3847
  Program 4021
  Program 4022
  Program 4024
Stream mapping:
  Stream #0:1 (mpeg2video) -> trim
  Stream #0:2 (mp2) -> atrim
  Stream #0:3 (mp2) -> atrim
  setpts -> Stream #0:0 (libx264)
  asetpts -> Stream #0:1 (aac)
  asetpts -> Stream #0:2 (aac)
Press [q] to stop, [?] for help

(Note: here a value for 'start' was passed to ffmpeg; the value was manually derived and supplied after looking at the recorded .ts file)
Is there a way to detect audio stream(s) without supplying any 'start' value?

a value for 'start' was passed to ffmpeg --> what does this mean?

Sorry, I was typing too quick. I wanted to say that in the second example, I am using "-ss nnn" as prefix to the input (-i) and/or use (a)trim= in the complex filter to "position" the transcoding process to the beginning of the actual movie within the recording, say after 1 or 2 minutes.


text:
Add audio and subtitle in mkv video by one command
Add audio and subtitle in mkv video by one command.
Code add subtitle:
-i input.mkv -f srt -i subtitle.srt -map 0:0 -map 0:1 -map 0:2 -map 1:0 -c:v copy -c:a copy -c:s srt -c:s:0 srt -metadata:s:s:0 language=eng output.mkv

Code add audio:
-i input.mkv -i audio.aac -map 0:v -map 0:a:0 -map 1:a -metadata:s:a:1 language=eng  -codec copy output.mkv

I couldn't add subtitle and audio in one command.Please help me!

Why don't map everything
ffmpeg -i input.mkv -i input.aac -i input.srt -map 0:0 -map 0:a:0 -map 2:0 -map 1:a -c copy output.mkv

But it is unclear which one to map, you took different stream each time from the mkv -map 0:0 -map 0:1 -map 0:2 vs -map 0:v -map 0:a:0


text:
same image MP4 and png color differences
I'm making a 3D animation but, parts of it need to be static. I can use png renders for that, but pang format have slightly another color than mp4's. Because of this, ther's a visible difference when I put an mp4 and a static image after it, thought videp's frame is the same image as the static png.
How do I solve this problem?


text:
How to get ffmpeg configuration similar to that of youtube for 480p and 1080p video? I have got a function but the output quality is too low
Hey guys I am learning to develop a website that converts videos to youtube quality (or close enough) 480p and 1080p, I am not much familiar with ffmpeg and struggling with its documentation.
I have these functions,
video_480p      = subprocess.call([FFMPEG_PATH, '-i', input_file, '-codec:v', 'libx264', '-crf', '20', '-preset', 'medium',
                '-b:v', '1000k', '-maxrate', '1000k', '-bufsize', '2000k','-vf', 'scale=-2:480', '-codec:a', 'aac', '-b:a',
                 '128k', '-strict', '-2', file_480p])

similarly I have another function,
new_video       = subprocess.call([FFMPEG_PATH, '-i', input_file, '-codec:v', 'libx264', '-crf', '20', '-preset', 'medium',
                '-b:v', '1000k', '-maxrate', '1000k', '-bufsize', '2000k','-vf', 'scale=-2:1080', '-codec:a', 'aac', '-b:a',
                 '128k', '-strict', '-2', output_file])

Both these functions, transcode the video, but returns low quality videos, Can anyone provide me with the right settings for 480p and 1080p which is similar or close to youtube quality?
Thanks

the question you asked has a similar question (providing a good method to find out the settings) : https://video.stackexchange.com/a/15182/5055


text:
Why do we still have difference between Media Time and SMPTE Time Code?
I'm implementing a web application which works with video sources with SMPTE time codes printed on it.
Often the SMPTE and media time differs, my understanding of the reason based on what I have read is:

Video is shot at a regular frame rate (ex: 24 or 30)
Video is broadcasted on 23.976 or 29.97 frame rate due to NTSC historic reasons when it started broadcasting color (I understand the reasoning)

However, a few things are not clear for me:

It seems that Today is common to already shot in 23.976 or 29.97 cameras, so why would still this difference exist?
The current TVs and streaming services don't have the NTSC limitations anymore
NTSC is not the only standard around, European PAL doesn't have this issue, for example

Now, on my application the user needs to manually select the frame rate, based on my understanding above it doesn't make sense to automatically detect from the video file, because the difference happens when the recorded frame rate is different from the broadcasted one, therefore, it needs to select the broadcasted frame rate, not the video file.
Most of the videos on my application are from streaming services, those streaming services run worldwide, with all sort of different formats... so all of these are confusing me to have a fully understanding of the SMPTE time codes.

You might want to research drop-frame timecode.

I doubt asking about why those framerates are still in use will help you with your practical problem. There are probably many systems that only work with specific frame rates, so it's problematic to stop supporting them. Standards that supercede NTSC also support those rates anyway. so you will continue to see a variety of frame rates for many more decades.

I know about drop-frame @Matt, but I don't see how these relate to my question.

My question is not about supporting them or not, My question is because some of my understandings of SMPTE timecodes have been challenged with the points I have mentioned, and I want to know if my understanding and assumptions are correct or if I am missing something.


text:
after effects does'nt open
I have a Mac and for the last 24 hours my after effects just does'nt even open. I click on the software and its not responding at all. the only after effects thing that I have on my computer that opens is the render engine but it dose'nt really do much.

Hi - please can you add what Mac you have, what version of MacOS, version of After Effects, and anything else that might be useful?

Check if there are crash logs and tell us what they say: https://community.adobe.com/t5/after-effects/faq-how-to-find-after-effects-crash-logs-on-your-computer/m-p/10333124 (Maybe the logs' location has changed slightly for newer versions.)


text:
Home and end keys not working in kdenlive
i'm on kdenlive and for some reason the home and end keys aren't working ctrl+left or right takes me to the beginning or end of each clip but not home or end keys, i have no idea what's going on, any ideas? thanks

The online documentation seems to indicate: <ctrl>
+<Home> to go to the beginning of a project, and <Ctrl>+<End> to go to the end of a project ?  (I found the doc with a very simple google search: kdeenlive hotkeys )
If you indeed press that, check if your keyboard is not in some kind of numerical mode: many keyboards offer different mode for the numeric-pad keys (so that you can go to numerical mode and quickly enter many numbers in a spreadsheet, or go back to the other mode and quickly use the default usage of those same keys), and a <Fn>+<some_key> (or sometimes <ctrl>+<Fn>+<some_key>)  usually activates/deactivates that special mode.

I think you've mixed up sth. If I've understood the question correctly, the goal is to go to the clip's begin or end, not the project's begin/end.


text:
What Liunx video editors support keyframed speed ramping?
On Mac OS, Final Cut Pro supports speed ramping. How about Linux video editors?
Kdenlive and Shotcut don't support speed ramping at all, so it has to be done manually. Apparently the Olive editor doesn't support it either. DaVinci Resolve supports speed ramping, but it requires an NVidia GPU.


text:
How to export only an in/out range or selection of subtitles on Davinci Resolve?
I broke down a project into segments to make a playlist, and successfully exported the audio-video segments using in/out ranges, but the srt subtitles always come out for the whole timeline. I tried generating them together with the video files in the Deliver tab, and exporting them separately through File|Export|Subtitles, to no avail. Is the oversight mine or Blackmagic's?

You mean the .srt always contains the whole timeline?  You can edit those in any text editor to delete the parts you don't want.  BMD probably assumes most people want the whole thing, and that it isn't too inconvenient to do manually.  If you can show them otherwise, they're very good about listening to users about feature requests.

Editing all the timestamps by hand??
Anyway, I didn't mean to poke a hole on DR; just trying to figure out if I'm doing it wrong.

You wouldn't have to edit any timestamps, just delete everything after the last timestamp you want, or before the beginning of the first one.  I'm only recommending a workaround to trim the in/out points of the .srt file.

Also, have you tried using the subtitle export option on the Deliver page->Advanced dropdown, instead of File|Export|Subtitles?  The one under the file menu is for exporting the whole timeline; the one on the deliver page should respect the render range.

I have a project with several separate video lessons but within the same timeline for later with the in an out, export separately, as well as the subtitles where in delivery I choose the option to export separately too, to upload to the platform, but how to make srt subtitles export respecting the input/output intervals, since I have several blocks of videos on the same timeline? It exports the video normally and in any player, the video starts with the timecode at zero, but the subtitles always in the timecode 22 sec of the timeline of davinci as you can see in the print.

If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review


text:
the arms of my puppet appear under the leg
I have created my puppet with pins and the hands are going under the legs and under his beard and i need to make him eat grapes.
The pin layer of the hand is over the pin layer of the leg
thanx for your help

When you say "the pin layer" are you talking about a layer controlling the pin, e.g. with somethign like DuIK? Are the legs arms and beard all part of the same layer, or are they on separate layers?


text:
How Do I Make Kdenlive Use Multiple Threads For Import?
Adding a large clip with Kdenlive takes a long time.
When I look at the system monitor it is using a single core at 100%
How do I make the input process use multiple cores?


text:
How do i pan on a image without changing its position?
So basically, im trying to create a meme using Adobe Premiere Pro 2020. I want to pan from one end of image to another, but without changing the image's position on the video.
I want it to look something like this:

Is it a still image -- a photo or image file, or a video clip?


text:
Loading large videos in After Effects takes ages the first time. Any way to improve it?
They are really big videos, of several gigabytes, with 100-150mbps bitrate. These files load and play normally with any player. I don't think they are hard to decode, it's just that they have a very high bitrate. Taking them in After Effects, however, takes several minutes. It takes 2-5 minutes for a video to appear in the timeline, and then the preview takes again extra 2-5 minutes to load the first time. After these two long loads, the video plays smoothly in the AE preview panel and I don't have any problem. What is causing these long loads? Is there a way to improve them?

If performance is sluggish, I would make sure the videos are the same resolution and frame rate as the format you plan to deliver your final video in.
So if the videos you are trying to import are 4K, but you're working in HD in After Effects, I would transcode the videos down to HD.
Also use a non-GOP codec like ProRes instead of h264/mp4.  They perform better when editing, because the software doesn't have to "look ahead" across multiple frames in order to work out how to draw the current frame.


text:
What is the difference between lossless and lossy formats?
What exactly are the differences between lossless and lossy codecs? And is one better format better than the other or is it mostly relative?

If you imagine you have a video signal, and you want to capture all of it.. Let's say it is 1920x1080 at 25fps. You can store all the information about every pixel at full colour depth on every frame.  This would be lossless - you could full recreate the signal upon playback, and it would be identical to the original that you captured.
The downside of this process is that the files would be extremely large, and you may require relatively powerful hardware to successfully playback the signal successfully without dropping any frames.
So you may compress the signal or file instead in a number of different ways:  You might look at each frame, and try to spot areas where there isn't much detail (such as in an out-of-foucus background).  Instead of storing every pixel in this area of the frame, you could say "these twenty pixels are all about the same shade of blue).  The frame you have stored would take up less space on your computer, but when you come to recreate the frame upon playback, it would no longer be identical to the original.
Now you could also do this over time - this is called inter-frame compression.  So you can look at a number of frames over time, and spot where there is little variation in the image - and only record information where there is a significant change.
All of this involves working from a model of "perception" - what can the eye-brain combination see?  How clearly can it tell when something has been data reduced?
Lossy formats can store the same video at much smaller file sizes.  Or - another way to look at it - with a given amount of bandwidth, you can transmit a much higher quality video if it is compressed than if it was transmitted as a lossless format.
Recreating video from a lossy format also has performance overheads. So for a given system, you may find a codec that plays back well on one system performs very badly on another.
In general, most video files delivered on the internet to consumers are lossy.  This is for the reason mentioned earlier - you can deliver a perceptably "better" looking file using a lossy codec faster, than you could if the file was lossless.  So final deliveries to website such as YouTube etc are usually in a lossy format such as h264.
During the production process, this is not the case. If your camera can export it, and you have a fast enough computer, with enough storage space, you may want to use lossless formats for editing, or at least formats which don't use any inter-frame compression.  This is so that your computer doesn't need to "rebuild" frames that don't exist when you are scrubbing through your edit.  Each frame in a format like ProRes is fully described, even though there is still some data compression in the way the colour of each pixel is described.
Lossless and lossy formats both have their place. They're both useful tools when used in the right part of the production process.

Just to add a little detail to t @tomh's excelent answer: a 1920×1080 image comprises 2,073,600 pixels. To capture this in a way that includes all the visual information that you could see with your naked eye would require at least 14 stops of dynamic range, which translates to 3 channels of 14-bit colour (the three channels are the RGB components, or more usually the YUV components, and since an ƒ-stop is a doubling of the light levels, and because each bit you add to the end a binary number doubles it, 14 stops = 14 bits). So that's 42 bits of colour information, per pixel, per frame, or 2,073,600×42 = 87,091,200 bits per frame or roughly 10 Mb. Multiply that by the number of frames per second, e.g. 25 and you need ≈ 250 Mb/s to represent the image. Every minute will require 15Gb of storage. It's pretty easy to see that compression is going to be necessary.
There are lossless compression codecs that work by removing redundancy in the bits recorded, similar to the way you can zip a file on your computer to reduce the size, but still get back an identical copy when you unzip it. Most lossless compression uses this kind of compression scheme, particularly because a video stream usually has a lot of redundancy. They're nowhere near as efficient as lossy algorithms, but what you get out will be exactly the same as what you put in.
Whether any codec is better than another depends on a few factors, including:

fidelity—how accurate the output is compared to the input
data rate and efficiency—how much data it requires to record the video
speed—how quick it is to encode / decode frames
complexity—how much processing power is required to encode / decode the codec
robustness—how well the codec deals with missing or corrupted data during transmission, e.g. digital terrestrial television broadcast
availability—whether the codec is commonly available, whether it is free to use, also whether the format is open or closed source
compatibility—with container formats—some codecs only work in quicktime .mov or .avi containers, and with playback technology, e.g. does it play in browsers


text:
Can anyone give me a thorough explanation of some of the FFMPEG commands?
I am finally using FFMPEG after using programs like Virtualdub2 but I do need some clarity with some of the commands. Do not get me wrong, the resources that some people sent to me do help but I do some clarity on some of the commands. When you are inputting a video to convert another video, do need to type out the file location or just the video file?

If you are in the same folder as the input video you only have to specify the name of the video. Otherwise the whole path + filename + extension, the same is valid for the output video.

Are you supposed to put the path + filename + extension in quotes? I heard from another forum that you are supposed to put it in quotes as it is a command line and not a GUI.

If the input or output file have spaces in it you have to put it in quotes but if not it is not necessary. For example:
ffmpeg -i input.avi output.mp4
but if input or output is something like:
ffmpeg -i "My input video.avi" "My output video.mp4"
than you have to use quotes...

What about the other commands that FFMPEG has? Like the codecs, sizes,etc.?

Here are some general guidelines how to use FFmpeg. The command to use FFmpeg includes: input(s) and output(s), codec(s) and filter(s). It can include also other options, like map(s), but these are probably the very basic ones.
The most basic command is:
ffmpeg -i input.mkv output.mp4

It includes the input file (it is defined by -i option) and the output file (it does not need any definition, just put its name at the end of the command). This command will convert input.mkv to output.mp4 by using all the defaults of FFmpeg (including the re-encoding of streams from the input file).
The more advanced (but still basic) command is:
ffmpeg -i input.mkv -c copy output.mp4

It will do the same as previous one but the streams from input file will not be re-encoded, they will be copied, as -c parameter defines a codec to use (copy means to copy the existing one, you can define other codec). You can define codec for video by using -c:v and a codec for audio by using -c:a. For example:
ffmpeg -i input.mkv -c:v libx264 -c:a copy output.mp4

This command will re-encode video stream and copy audio stream.
If you want to do some more operations with the input streams (like to scale the resolution of video stream) you need to add some filters, like here:
ffmpeg -i input.mkv -c:v libx264 -c:a copy -filter:v scale=1920:1080 output.mp4

The -filter:v defines the use of scale filter to set the resolution of the output. You can use many different filters and you can use many different parameters with these filters. For example:
ffmpeg -i input.mkv -c:v libx264 -c:a copy -filter:v scale=1920:1080:flags=lanczos output.mp4

This command will scale the input video stream with the use of Lanczos algorithm.
These all options above are really just the basic ones.
You can find much more of them in the documentation.

That's a very general question, you will have to ask for a specific command if you want help since ffmpeg has a loooooot of options. But you can use the following command to get help:
-h      -- print basic options
-h long -- print more options
-h full -- print all options (including all format and codec specific options, very long)
-h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol
See man ffmpeg for detailed description of the options.

If the output is to long you something like: ffmpeg -h |more
And it shows a part of the text on the screen everytime you pess a key...

I guess I wanted to know how to do the things that you could normally do in editors like Virtualdub or any media editor. Like for example, how do you do PointResize, Lanzcos, Fade In, Fade, Fade Out, etc.?


text:
ffmpeg convert stereo to mono for multiple video files
I have a folder of video files listing:
1H.mp4;
1L.mp4;
2H.mp4;
2L.mp4;
....
The sounds are unbalanced for two ears - it is probably due to the recording is stereo.  How can I change the audio tracks from stereo to mono for all the video files?
I assume the workflow would be extract (copy) the audio tracks out, change to mono, then insert (copy) back. I have found codes for individual files, but with hundreds of such short mp4 files, I'd like to know if I can use a 'loop' to deal with them all.
Thank you!

No need to extract, you can downmix two audio channels and keep video channel and generate a new file in one command.
ffmpeg -i input.mp4 -c:v copy -ac 1 mono-output.mp4

Here -ac 1 says 1 audio channel, downmixed from stereo, look in ffmpeg docs.
Now make a loop. Assuming you are using bash or similar unix shell
for i in *.mp4; do ffmpeg -i $i -c:v copy -ac 1  mono-$i; done

Is there a way to do this without re-encoding the audio? (I assume not, ∵ lossy stereo codecs are a single stream.)

@Geremia it is not re encoded, the stream is simply copied


text:
Adobe Premiere Pro - How do I select a Region in the Timeline using Mouse
In Magix/Sony Vegas Pro I could just drag click it. I don't want to use the "in and out points" or how you call them, I want to select a region by drag-selecting with my mouse and then adjusting it if needed. I remember I did this somehow in Premiere Pro 2019 but I am not sure about this version.

Not sure it can do exactly what you're asking for.
Nearest I can think of is selecting the razor blade tool (or press  C).
Making a cut using the mouse on your region, then switching back to the selection tool (or press V).
Then selecting your region, and adjusting the ends if necessary by floating over them, then dragging.
(In and Out points are massively useful when you get into more complex edits.  There's a reason most editing software uses them - they're worth learning to use).


text:
Compress multiple videos at once on a Mac
I want to reduce the file size of a bunch of videos at once on my Mac.
Would you know any free tool that does that or any way to automate a loop in Automator to pilot Handbrake to loop on a given folder?
Thank you.

Handbrake can queue up a batch of files.
FFmpeg is free and works on a mac, but you'd have to run it from Terminal.
You can install it using Homebrew for Mac.
Once Homebrew is installed, go to Terminal and type
brew install ffmpeg

Then you should be able to change directory to wherever your files are by typing something like:
cd /Users/my.username/Movies

where my.username would be your username on that mac, and Movies would be whatever directory the files were in
Then you can convert them by typing something like
ffmpeg -i input.mp4 output.webm

Where input.mp4 is your source file, and output.webm is your output file.
To convert all the mp4 files in that directory you would enter
ffmpeg -i *.mp4 output.webm

More info on selecting different codecs etc.


text:
Can I swap out compositions, or control a composition's layer visibility via the timeline?
Is there anyway to swap a composition with another via the timeline, so the new one still has all the same properties as the old one? (rather than just putting them on separate layers and ending one and starting a new one).
Or maybe hide/show the layers within the comp via the timeline? (trying to animate a character with a few preset animations)
Right now I have the animations on separate layers, but it's annoying to keep adding a layer every time i want to swap the animation, because it makes lots of layers, and i have to manually line them up every single time.
This is what I currently have, but I'd like it to all be on a single layer:

You can replace a comp in the timeline with a comp from your project tab:

Select a comp in the project tab
Select the layer in your timeline that you want to replace
Hold down alt
Drag and drop the new comp from the project window

It will replace the layer in the timeline, maintaining all the settings on that layer.
You can show or hide a layer using the Opacity control on each layer. Select the layer and press T to reveal them (remember it as "opaci-T").
Then you can make a keyframe on that layer to animate it on or off (hold keyframes are useful for this).
You could also pre-comp all your layers onto a single layer, then use Time remap to select which frames appear when (and use the Loop expression on the time remapping to loop sections if necessary).

but i want to still keep the old one, I want to switch them out at a certain point in time

Duplicate the original layer, then do a split / duplicate at the point where you want to make a new one  using CMD + SHIFT + D ?

added to the answer about using opacity to show or hide layers


text:
Re-encode corrupt videos (that still play) and drop bad frames FFMPEG or other app?
I have about 300GB of assets that have been deemed "corrupt" by FFprobe but most all of them still have playable portions of the video.
What I've been trying to determine how to do is either one at a time or in batch, use FFMPEG or another app/tool to re-encode the assets dropping all the bad frames leaving me with an albeit, still not 100% complete, but at least usable assets.
Can anyone shed any light on this? Offer any ideas or suggestions? I can run on either Windows, MacOS or Linux OS and am competent with basic scripting and terminal command usage.
Thank you!
Jason

I would try TMPG Smart Renderer, https://tmpgenc.pegasys-inc.com/en/product/tmsr6.html. It should just "pass-through" any non-corrupted video, and will re-encode the portions of the file the need to be. Or you can manually cut those pieces out. It will depend how corrupt the input is as to what you'll need to do. It is a commercial product, but for a one-off project you can likely do everything you need in trial mode.


text:
Can two spinning drives in RAID 0 configuration support 4K ProRes Raw data rates?
I'm helping a friend to assess external storage options. We are hoping that a Lacie 2big will be fast enough to support a 4K final cut work flow. Can two spinning 7200RPM drives configured as RAID 0 even play back 4k ProRes raw?
I found an apple white paper which looks extremely informative -- can someone confirm that "Mbps" in this document refers to megaBITS per second? If so, we see these data rates for ProRes 4444 (no alpha):
24p     1697 mbps   212.125 MB/s
25p     1769 mbps   221.125 MB/s
30p     2121 mbps   265.125 MB/s
50p     3539 mbps   442.375 MB/s
60p     4242 mbps   530.25 MB/s

If I understand that white  paper correctly, those data rates look pretty high for just two drives. Does anyone have any personal experience working with 4K ProRes RAW off a pair of spinning drives in RAID 0? Is this feasible? Or should we be looking at 4-drive or 5-drive units?

If you have the hardware already, and you're on a Mac, the BlackMagic SpeedTest app is a great way to see what video your system is capable of reading and writing.

@tomh we do not yet have the hardware, and are wanting to avoid buying anything that doesn't do the job. thanks for the comment, though! that looks handy.


text:
draw rectangle when pixel in video has specific value using ffmpeg
My question might seem a bit confusing but what I want is simply to look at a specific pixel value and when it has the value eg. (25,25,25) in rgb, it would use the drawbox filter to draw a rectangle somewhere else in the video.
Having read the ffmpeg documentation I found that drawbox has timeline editing capabilities but it can only use the following values
‘t’
timestamp expressed in seconds, NAN if the input timestamp is unknown
‘n’
sequential number of the input frame, starting from 0
‘pos’
the position in the file of the input frame, NAN if unknown
‘w’
‘h’
width and height of the input frame if video
So is there a way to achieve what I want using drawbox or maybe another filter like geq?


text:
Help: Short film Credits (only 3 people)
I'm just finishing up my animated short and preparing to submit to film festivals but I'm unsure how to go about end credits. The visuals of the film (written, design, storyboards, animation, compositing editing etc.) was done by me. Then I employed a sound designer/composer who composed the music, did simple sfx, but also voiced the main character. Plus a musician for the music.
I know how to list the musician but unsure how to title myself and my sound guy.
Currently:
Written & Created by: me
Music & sound design
& voice of chara: sound guy
Flutist: musician
My sound guy's title seems clunky. I'm not sure "created by" is professional terminology.
So help and ideas?

Maybe ask the festivals to which you’re submitting if they have any requirements.  If they don’t, it’s probably completely a matter of taste.


text:
Can Premiere edit AV01 files?
I downloaded my own video from YouTube, it is 4k and is an av01 file type. Quicktime can't play it, VLC does.
When I try to import the file into Premiere it gives me this error.

Any solutions or do I just need to convert it using Handbrake or something? I don't want to lose quality etc.

Whenever you get such an error it does indeed mean the file is not supported and you cannot edit it without transcoding it to another format first using another tool.
Choose a compatible format and make sure the bitrate is set high enough to avoid noticeable compression artefacts. If possible, set the tool to copy the audio track because it probably doesn't need transcoding.

No, Premiere Pro does not support this codec format.


text:
ffprobe 4.4 doesn't show Frame Side Data
I created a library to integrate with ffmpeg via CLI. In tests I verify that ffprobe output can be parsed. One of the tests checks that with -show_frames option frame data and side data are parsed correctly.
Recently tests started to fail because of absent frame side data in output. After an investigation I found that it happened because of ffmpeg & ffprobe update.
With ffprobe 4.3.1 side data is present:
docker run --entrypoint="ffprobe" collelog/ffmpeg:4.3.1-alpine-amd64 -show_frames -of flat https://samples.ffmpeg.org/3D/car.avi
...
frames.frame.2929.color_primaries="unknown"
frames.frame.2929.color_transfer="unknown"
frames.frame.2929.chroma_location="unspecified"
frames.frame.2929.side_data_list.side_data.0.side_data_type="QP table data"
frames.frame.2929.side_data_list.side_data.1.side_data_type="QP table properties"

With ffprobe 4.4 side data is absent:
docker run --entrypoint="ffprobe" collelog/ffmpeg:4.4-alpine-amd64 -show_frames -of flat https://samples.ffmpeg.org/3D/car.avi
...
frames.frame.2929.color_range="unknown"
frames.frame.2929.color_space="unknown"
frames.frame.2929.color_primaries="unknown"
frames.frame.2929.color_transfer="unknown"
frames.frame.2929.chroma_location="unspecified"

Is it a bug?

Are these all the sidedata dumped?

yes, from https://samples.ffmpeg.org/3D/car.avi it's all side data shown


text:
Extract subtitles in time range using ffmpeg
I have original video (with subs) and cropped version of it (without subs). I need to add subtitles from original video into cropped in appropriate time range.
I think the best way to do is:

Extract subtitles from $start to $end. I found this command ffmpeg -i Movie.mkv -map 0:s:0 subs.srt. But

I don't know how to specify time
Will data in subs.srt be correct? Since I want to add subs to cropped vesrion, time of all subs needed to be $original_time - $start.
It extract only one track

Add subs.srt to cropped video.

The -ss and -to flag specifies start time and end time in format hh:mm:ss. Here goes the code
ffmpeg -i original_video.mp4 -ss <start time> -to <end time> -c:s copy cropped_sub.srt

This extract first subtitle stream in between start and end time in cropped_sub.srt. And now combining cropped files.
ffmpeg -i cropped_video.mp4 -i cropped_sub.srt -c copy cropped_combined.mp4


text:
OBS custom filename for recordings
OBS allows you to change the pattern for the recordings filenames but there is no simple way to update the file name with any custom string before every recording.
You need to visit the options pane and change settings manualy.
The default for the filename formating is: "%CCYY-%MM-%DD %hh-%mm-%ss"
Let's say you've changed the pattern to "MY-HOME-VIDEO %CCYY-%MM-%DD %hh-%mm-%ss" and recorded a file.
Then if you need to make another recording about something else with the prefix "MY-OTHER-VIDEO " you need to change the pattern again, manually.
How to update the filename formating without visiting options pane every time?

I've managed to achieve this using obs-websocket and simple/dirty python script.
The obs-websocket plugin can get/set the pattern used by OBS to save recording files.
Steps:
Install/configure obs-websocket plugin.
Then use obs-cli (https://github.com/leafac/obs-cli) or obswebsocket (https://pypi.org/project/obs-websocket-py/).
cli example (under Windows os, beware of double quotes):
obs-cli-win SetFilenameFormatting="{ ""filename-formatting"": ""TESTNAME %CCYY-%MM-%DD %hh-%mm-%ss"" }" && ^
obs-cli-win StartRecording && ^
obs-cli-win SetFilenameFormatting="{ ""filename-formatting"": ""%CCYY-%MM-%DD %hh-%mm-%ss"" }" && ^
obs-cli-win GetFilenameFormatting

python example:
client = obswebsocket.obsws("localhost", 4444, "")
client.connect()
print(client.call(obswebsocket.requests.GetFilenameFormatting()))
client.call(obswebsocket.requests.SetFilenameFormatting("TESTNAME" + " - %CCYY-%MM-%DD %hh-%mm-%ss"))
client.call(obswebsocket.requests.StartRecording())
print(client.call(obswebsocket.requests.GetFilenameFormatting()))
client.call(obswebsocket.requests.SetFilenameFormatting("%CCYY-%MM-%DD %hh-%mm-%ss"))
print(client.call(obswebsocket.requests.GetFilenameFormatting()))
client.disconnect()

I saw your code on the OBS Forum as well and wanted to help here too.
I made some tweaks to your Python example and it worked great!
I want to clarify some things in case anyone wants to do exacly what OP wanted. You should follow these steps:

Install the obs-websocket plugin
Install the obs-websocket-py which is the Python tool for the plugin (you can do this using pip)
Create a new .py file wth this code:

Python:
import obswebsocket
from obswebsocket import obsws, events, requests

client = obswebsocket.obsws("localhost", 4444, "") #Change this if you have a different name, port or password
client.connect()
client.call(obswebsocket.requests.GetFilenameFormatting())
print("Hi! I'm your new video\nWhat's my name?\nFilename:")
client.call(obswebsocket.requests.SetFilenameFormatting(input() + " - %MM-%DD %hh-%mm")) #Custom name + date. The best of two worlds
client.call(obswebsocket.requests.StartRecording())
print(client.call(obswebsocket.requests.GetFilenameFormatting()))
client.call(obswebsocket.requests.SetFilenameFormatting("-%MM-%DD %hh-%mm-%ss"))
print(client.call(obswebsocket.requests.GetFilenameFormatting()))
client.disconnect()

Open OBS and execute the code
And voilà! A new window will open and it should ask you for your video's name and then start recording.

I wanted to write this bc it took me a lot of time to figure this out. So let me know if it helped you too.

Thanks for sharing.

My final solution is a simple python script (for Windows) that starts OBS minimised (if not started yet), asks for the filename prefix and starts recording.
Dirty but fits my needs.
#!/usr/bin/env python
import psutil
import obswebsocket
import obswebsocket.requests
import subprocess
import sys
import signal
import time

def signal_handler(sig, frame):
    print('\n\nExiting.')
    sys.exit(0)

obs_process_name = "obs64.exe"
obs_bin_dir = "C:\\Program Files\\obs-studio\\bin\\64bit\\"
obs_bin_full_path = obs_bin_dir + obs_process_name
obs_params = "--minimize-to-tray"

signal.signal(signal.SIGINT, signal_handler)

if len(sys.argv) >= 2:
    file_name_prefix = ' '.join(sys.argv[1:])
else:
    print("Enter recording name or exit with CTRL-C.")
    file_name_prefix = input("Recording name: ")

if not obs_process_name in (p.name() for p in psutil.process_iter()):
    print("Process " + obs_process_name + " not running. Starting.")
    subprocess.Popen([obs_bin_full_path, obs_params], cwd=obs_bin_dir)
else:
    print("Process " + obs_process_name + " already running.")

file_name_prefix = "".join([c for c in file_name_prefix if c.isalpha() or c.isdigit() or c == ' ']).rstrip()

print("Will use name [" + file_name_prefix + "].")

client = obswebsocket.obsws("localhost", PORT_NUMBER, "PASSWORD")

while True:
    try:
        client.connect()
    except:
        sys.stdout.write(".")
        continue
    else:
        client.call(obswebsocket.requests.SetFilenameFormatting(file_name_prefix + " - %CCYY-%MM-%DD %hh-%mm-%ss"))
        client.call(obswebsocket.requests.StartRecording())
        client.call(obswebsocket.requests.SetFilenameFormatting("%CCYY-%MM-%DD %hh-%mm-%ss"))
        client.disconnect()
        break


text:
FFMPEG -vf does not extract first frame
I am running the following command to extract frames at a rate of 1 per second. This works fine, except that the first extracted frame is not the first frame of the video, but the frame after 1 second of video.
ffmpeg -i input.mp4 -f image2 -vf fps=1 ./out_%01d.jpg

How can I force ffmpeg to extract frames starting at the very first frame of the video?

See https://stackoverflow.com/q/47671742/

Thank you! Is there a way to also force the very last frame (if not on a round timestamp?). So if video is 3.5s long, frames at timestamps 0, 1, 2, 3 and 3.5s. I tried  round=up:eof_action=pass but am not getting the last frame


text:
What is a good FFMPEG/AVISynth to upscale gaming videos?
I plan to use Retroarch to dump and create videos from the various cores that are featured there. I had asked for advice from other places online ranging from recommended emulators to what video editing programs to use for editing. Although I thank them for giving me some good advice, there are still things that I still need some help on.
I want to ask what is a good setup for lossless, high quality videos that I can create on Retroarch? What is a good way to upscale my videos to 720p using FFMPEG/AVISynth? Retroarch usually dumps .mkv files so I figured that it would make my experience easier.

FFmpeg Nvidia/cuda scaler : -vf scale_npp=w=1920:h=1080

I also I am looking for the PointResixe/Nearest Neighbor equivalent in FFMPEG? I want it to 720p but I also want it to be as close to the original as possible.


text:
Encode VP9 in mov container with pcm audio
Davinci Resolve's supported Codecs list shows it only supports decoding VP9 if placed in an mov container. Add to that the audio limitations also present on the Linux version and mov is somewhat preferred overall.
The issue of course is Quicktime File Format doesn't officially support VP9.
Attempting to do so with ffmpeg like so
ffmpeg -i input.webm -c:v libvpx-vp9 -c:a pcm_s16le output.mov

results in the error
[mov @ 0x55719f592d40] vp9 only supported in MP4.

I contacted Blackmagic Design (BMD) support a few weeks ago now asking if there was an updated codecs list with the version 16 to 17 update (there isn't), and asking if the mov extension requirement for VP9 was in error. After providing a sample video they replied that VP9 is

... a Quicktime Render Option in Mac which would go in a .mov package.

going on to say that

I have also confirmed that using Adobe Media Encoder along with the Webm plug-in that you can render [your video] as a QuickTime .mov format.

I was able to test the Adobe Media Encoder method myself, but the plug-in simply added an option to manipulate .webm files and export files with the .webm extension using VP9 codec. Webm extension doesn't import into Resolve though.
The Quicktime option in Adobe Media Encoder uses .mov extension as expected, but the codecs aren't related to VP9 as far as I'm aware. I encoded a test video with each available Quicktime options in Adobe Media Encoder, checking each with ffprobe after, and none reported VP9 like BMD seemed to be saying was possible. They do match to other supported codecs listed on the PDF though. I relayed that to BMD to which they replied,

Using the Adobe Encoder encodes the webm vp9 codec to Pro Res 422 which is .mov
It does not specifically rewrap the vp9 codec as .mov
A video in Resolve can be rendered as VP9.mov but there doesn't appear to be any way to import a VP9.webm video into Resolve first.

If I'm understanding Blackmagic Designs response to my reply, then it seems they're confirming that yes, none of those options actually encode a .mov extension file which contains VP9 encoded video. Yet per their supported codec document, across all platforms that is the only extension that is able to import and decode VP9 coded video.
I was also unable to render a video from Resolve as a VP9 coded video in mov format as support stated is possible, testing on both Windows and Linux.
So am I missing something really obvious here? Or is this actually a combination of codecs and container that doesn't exist in a sane way?

Does any Apple software generate VP9 in MOV? If yes, it should be possible to allow it in ffmpeg.

Seems unlikely since late last year they dropped official support for a large list of codecs, at least in Final Cut Pro. VP9 being included it seems. https://support.apple.com/en-us/HT209000
I don't have access to any Apple products to test though.


text:
FFMPEG is not writing the correct video duration in the output playlist file for HLS
I have 5 cameras each having an RTSP stream. I am converting that rtsp stream to HLS. This is the command I am using:
ffmpeg -rtsp_transport tcp -i rtsp://*:*@*:*/ -f hls -codec copy -strftime 1 -strftime_mkdir 1 -hls_time 10 -hls_list_size 360 -hls_segment_filename %Y%m%d/%H/%M%S.ts playlist.m3u8

The command gives the right output for 2 of the cameras. For the rest, the playlist files always has the incorrect duration (It is supposed to be 10 seconds):
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000000,
videos/0/2/20210513/13/2632.ts
#EXTINF:5.000000,
videos/0/2/20210513/13/2642.ts
#EXTINF:5.000000,

For some reason the duration always gets written as half of the actual video duration in the playlist.
When I set hls_time to 5 seconds, the playlists for those respective cameras shows duration as 2.5 seconds even though the '.ts' is 5 seconds long.
What could be wrong?


text:
FFMPEG Loop Concatenate Video to Specific Length
I am trying to use FFmpeg to generate for example a 1-hour video from concatenating a 1-second input video over and over and over again.
The problem is that the length of my input video is of various lengths so I can't just hardcode it to make it concatenate 3600 times.
My approach is:
1.Acquire the length of the input video (in this example, 1s)
2.divide the target length by the length of input video (in this example, 3600)
3.Let FFmpeg concatenate for (3600) times with -vcodec copy -acodec copy
I am using Android Studio and the com.writingminds:FFmpegAndroid:0.3.2 module
Any ideas would be appreciated.

Use stream_loop to loop the input indefinitely and set output -t to limit the duration.
ffmpeg -stream_loop -1 -i input -c copy -t 3600 output


text:
How to export source timecode and clip names as an overlay in Premiere?
I need to supply timecode, source timecode, and source filenames as an overlay for a colour grade.
In Premiere, I have set up my Overlay settings as shown:

Note the checked box "enable overlays for transmit"
But when I export as usual I do not see the overlays.
What am I doing wrong?

This https://premierebro.com/blog/an-overview-of-overlays-in-premiere-pro suggests it's not possible... But a grader has asked for it...

I've finally found out the answer. It is possible, but fiddly.
For the source timecodes for every clip:

Duplicate your sequence.
Find the Timecode effects in the Effects panel and apply it to the first clip in the sequence.
Double click the clip and go to Effects controls and make sure the Timecode Source effect is set to "Media".
Then copy the first clip on the timeline.
Select all video clips on the timeline and then Paste Attributes, just the Timecode is needed, untick everything else.

You will now see all the clips have the original source timecode and this can be compared to the original master clip.
To show the filenames of every clip on a given track:

Add a transparent video layer.
Add it to the timeline.
Add the Clip Name effect to it.
Double click on the transparent video clip and go to Effects controls and select under File Name - Display choose - FileName
and under Source track choose the track that the clips are on on the timeline.
You may need to move this down a bit to avoid overlapping the timecode.

If you need to add filenames from another video track, just copy the Clip Name effect on your transparent video layer, and paste it below the existing effect, then adjust the position and size of each effect.

Even easier, apply BOTH the timecode effect AND the Clip Name effect to the transparent clip and assign V1 or whatever you want.

Had the same issue. Here was my workaround:
Apply a timecode effect to first video clip. This allows you to set multiple overlays (source and record timecode as well file name).
Position everything where you want it - and then copy the effect to all other clips in your sequence.
Ideally works best if you've collapsed all video to 1 track beforehand.


text:
Video editing software with good support for dual speaker subtitles?
I'm currently using DaVinci Resolve to subtitle my videos but I realize now that it has no support for people speaking with multi track subtitles. I want to color code subtitles for different speakers and perhaps move the subs closer to the speaker depending on who's speaking. What other software should I be using instead? Does premiere have a good workflow for this usecase?

Resolve does support multi-track subtitles.  To add a second subtitle track, right-click in the track header and select "add subtitle track."  This is used for language localization, so that you can deliver different caption versions for the same program.  Resolve is advanced in this respect, with support for updates via supplemental IMF and DCP, so that film and broadcast studios don't need to re-export entire programs whenever they need to make minor corrections.
You won't be able to use two tracks at the same time in any software, because you can't display two languages of captions at the same time within current broadcast television standards.  It's the same reason you can't choose English and Spanish on your television at the same time.
If all you want to do is control the appearance of two different styles of text, use the "Title" category of tools, located in the effects library, not the subtitle track.  I'd recommend "Text+" over the legacy "Text" which doesn't offer any advantages.  Define the settings you want for each style on independent titles on the timeline, then drag a copy of each look from the timeline to the media pool.  Use these as your templates/presets, it helps to rename them accordingly.
If you need to alter the appearance of a batch of titles at the same time, you can copy the source style via cmd/ctrl-C and then "paste attributes" to multiple destination titles via alt/opt-V.

I don't want to use titles because of the poor workflow, it's harder to adapt from the auto speech to text generated subtitles. But thank you it's good to know that broadcast standards hold back video editors. I'm used to Aegisub and SSA formats that can handle this fine so this is quite unfortunate, but thanks.

@Harry I’m sorry, don’t know what you mean by “auto speech” vs “text generated.”  Resolve/Fusion does support scripting via Python/Lua, though, so real-time text generation and formatting is about as straightforward as it gets.

Thanks, for letting me know about the scripting, maybe I'll look into that to see if it works out for me. I meant "speech to text", automatically.

I had the same question and I even came up with 2 ways to solve it!
The first solution is: simply add another line of text in the same box, but 1 line lower. If you start the bottom line with 20-30 spaces every time, that line will move to the right and the top line to the left, if you centralize the subtitles of course. This way you can easily create two different lines of text. Just make sure that the text is never longer than one line. (And if so, cut the lyrics in more parts, or adjust the font size.) Here's an example, with two separate lyrics lines:

In this example, the top and bottom lines always start in the same frame. If you want them to start in different frames, just cut the boxes into different parts with blank lines where applicable. Just make sure the letters don't jump as you move from one box to another.
The second solution (which I haven't tried yet) is very simple: complete your project with a line of subtitles burned into the video, save the file, load it as the base file in a new project, and add the second line below the first! It may affect the overall quality of your video, but you can always try. And you will be able to choose a different font or color to distinguish the two lines even better. Also in this case: make sure that your text is never longer than one line. Good luck!