text:
Increasing text layer area size without changing font in Premiere Pro
I have created a text layer and inserted text as shown below.  When I try to show more of the text by grabbing the text area handles, the font size increases, which I don't want.  I am trying to create some rolling credits (position keyframes working fine), but cannot get the text box bigger when I add text - it gets truncated as shown in the pic.
I'm clearly not looking up the right thing in google, as I get responses about expanding the text for titles.  Being new to Premiere / video editing, it could be I don't know the terminology, or just plain ignorance.

This is a good question, and it's not obvious.
When you click once with the text tool, you make a single line of text.  If you drag the handles of this line, the text gets bigger and smaller.
But if you click and drag with the text tool instead to create your text, you get a text box.  Now resizing the box with the handles increases the amount of text in the box, not the font size.
Video (animated gif because of this website) below to demonstrate:


text:
Davinci Resolve 17 Omitting Clips from within Fusion Clips in Render
I am trying to render out a music video in Davinci Resolve. I have a green screen in the shot and my band playing in front of the green screen. I duplicated the clip and put one clip on top of the other one. The top clip I keyed out the green screen, the bottom clip I made into a fusion clip where the green screen is corner pinned with animation to follow the green screen. The only thing appearing in the final fusion clip is the replaced green screen. The bottom layer is just a screen and the top layer is the rest of the clip with an empty spot for the green screen. It works perfectly in the view port, but when I render the video the screen is completely black. I can fix this by deleting the clip, dragging in the same clip from the media collection, and moving it into the fusion area as a new node and reattaching it exactly where the old version of the clip was. The only problem is as I keep editing Davinci "forgets" about it in the final render. What am I doing wrong?
This is the view port:

This is the fusion background clip:

This is a failed video render screenshot:

The best way to control the order-of-operations is to do all of your compositing in a single Fusion clip; all of your keying and corner-pinning happens in a single Fusion clip, ideally. To set this up, lasso both of the clips on V1 and V2, right-click, and choose "create Fusion clip" from the contextual menu (do this to new, ordinary video clips, not ones you’ve already made into Fusion clips).
But in case you are trying to preserve some amount of edit flexibility, or have another reason to keep the Fusion clips distinct on the Edit timeline, I suspect that the issue is an order-of-operations problem related to the Color page.
I think that when Resolve sees two Fusion clips stacked on top of each other, it processes the
bottommost clip’s Fusion effects first, passes the V1 Fusion to the Color page, then calculates V2 Fusion and V2 Color.  I could be wrong about bottom-first processing, but it definitely does send to the Color page before returning to Fusion to handle the second clip, whichever one that actually is.
So, it’s likely the Color page that’s messing up the alpha channel. You could try opening the topmost clip on the Color page, right-clicking anywhere in the node tree background, and choosing "add alpha output” from the dropdown menu. In previous versions of Resolve, it was necessary to inform the Color page that it should output an alpha. Since your alpha is coming from Fusion, you'll also probably need to right-click in the background select "add source," and wire the new green triangle on the left to the blue alpha output on the right.  This is the manual way to tell the Color page to "pass through" an alpha channel.
Resolve’s image pipeline undergoes frequent modification, especially with respect to alpha channels, and the way different Edit page containers prioritize and calculate (including premultiplication).  For the most part, it has improved greatly over the years, but you'll still run into situations where it doesn't do what you'd expect. The developers are great about incorporating user feedback, but on the other hand, that's why the image pipeline is in a constant state of flux.  And since the codebase changes more frequently than the documentation, sometimes the order of operations isn't clearly defined…
Which is why it's still best to contain all of your Fusion compositing in a single clip.
One last thing that might help, and I always forget to recommend, because it's a new feature; Render In Place.  You can render either (or both) clips to disk, which will both speed up playback and help you troubleshoot, and depending on your requirements may be a sufficient solution itself.  Right-click on either clip in the timeline and select the option from the dropdown, but be sure to select a codec which supports alpha channels, such as ProRes 4444.

source: Stack Exchange

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

sort: votes


text:
Can i use my laptop as an external recorder
Can i record 4k video from a canon mirrorless (r6) directly to my laptop hard drive just like one would do with an Atomos Ninja? I record a lot of singing events where the camera is standing in one spot, recording, most often, choir singing.
using a laptop would give me several terabytes of recording space, and the option, hopefully, to simultaneously broadcast to youtube, without spending another $1k, which i'd rather spend on a gimbal.
I've dug around high and low, and there is very limited information on this topic. Figured I'd be able to acquire the 5 cents worth of some seasoned vets here. Thanks in advance.
Jared

Not really. Not unless your laptop happens to contain a 4K capture card.  Most laptops don’t have video signal inputs.  You can do HD with a Blackmagic Ultrastudio Mini Recorder for a little over a hundred dollars, as long as you can find capture+encode software, but putting the encoding onus on your laptop isn’t very reliable.
If recording space is your major concern, many cameras are now capable of writing directly to externally attached SSDs, presuming the data rate generated by the codec you’re recording is lower than the write speed of the SSD.  I’m not sure about the R6, but if it doesn’t, you might consider trading it for one that does, depending on your priorities.

hey man. thanks for stopping by............ok the 4k capture card gets me somewhere, because there is such a thing as USB capture cards. I'll just have to dig into which one is good............i did look at the Ultrastudio, and i like it, but i'll need a laptop that's thunderbolt capable. unless i can buy an adapter. i'll dig into that as well...........and the only reason i need to record externally is because even the new canon cameras are stuck on the stupid 30 minute recording limit from 500 years ago. recording externally bypasses that...........so i'm a lot closer now. thanks man ;)

also, you mentioned "capture+encoding software". is OBS capable of that? or do i need something additional?

@jwsl224 I think OBS must encode, but I’ve never used it.  I used to use ScopeBox, but they’ve made it way more expensive than it used to be.

alright. i shall check. thanks man.

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


text:
How to convert Dolby Vision HDR to HDR10+?
I'd like to convert a file recorded from an iPhone 12 to a royalty-free version (for upload to Wikimedia, Flickr, etc). So the transfer involves:

Source (iPhone proprietary-encumbered)
Destination (royalty-free)

4k 60fps (UHD, not DCI)
4k 60fps

BT.2020 in HLG (WCG)
BT.2020 in HLG (WCG)

Frame-level dynamic HDR metadata in Dolby Vision profile 8.4
Frame-level dynamic HDR metadata in HDR10+

HEVC
VP9 (open to AV1 as well but that's likely more nascent)

Bitrate is 31 Mb/s
Fine with higher bitrate to maintain same SSIM/PSNR

Audio is in AAC
Audio to Vorbis/OGG

According to https://codecalamity.com/encoding-uhd-4k-hdr10-videos-with-ffmpeg/ it should be possible to do most of this.
Anyone can help me cook up the right command for this?

Can you share the sample file, say via dropbox? I can assist

@DennisMungai here you go! https://github.com/sagz/files/releases/tag/v0.1

I'm currently investigating a solution based on libplacebo for this, will report back with findings.

any luck, @DennisMungai? :)

Still investigating, looking into the ffmpeg build for Jellyfin. libplacebo seems like a dead end on this one.

Sadly no, not without expensive specialist broadcast processing hardware.
From the Reddit link,

Dolby Vision is 100% proprietary. There is no incentive at all for
Dolby to convert anything to HDR10+ to help out Samsung users (and
pre-2019 Panasonics) when the only reason HDR10+ exists is because
Samsung didn’t want to pay Dolby for the license.
Dolby Vision is simply an enhancement layer on top of HDR10 which is
the base layer. There are a couple types of DV layers. The MEL
(minimum enhancement layer) and the FEL (full enhancement layer) which
reconstructs the original 12-bit signal. The FEL is what gives DV a
large advantage over HDR10 and HDR10+.
Page 12:
https://www.dolby.com/us/en/technologies/dolby-vision/dolby-vision-for-creative-professionals/dolby-vision-uhd-bluray-authoring-workflow.pdf


text:
A text animation tool or plugin pack that has very elaborate text animations?
I dont want to do the animations by hand myself. The idea is that I use something that already exists and just slap my text inside. Manually doing all these elaborate animations is not an option for me.
It doesn't need to be exactly like in the photo e.g. text gets written out, then erased afterwards. But some plugins or packs or whatever will do just fine. Thing is, I googled for a long time now, never saw something similar.
Am I googling for the wrong tool (adobe premiere pro)?
here an example how the text pops out:

then another example where it goes away again:

the idea is that the text animations are interesting. They do not need to be exactly one way or another.

If you don't want to do your own animations, you might want to search for Essential graphics presets. Essential graphics allows you to load AE compositions inside PP ready to edit like the ones you have seen. There are a bunch of places where you can get them, for free and paid, like Envato Elements, Premiumbeat, Mixkit, even Youtube itself.
If you want to know more about it, here's a link to Adobe's wiki for "Essential Graphics": https://helpx.adobe.com/es/premiere-pro/how-to/essential-graphics-panel.html

I noticed that the rendering is very very very slow. Hours for a 5 minute video. is that normal or did I just get a bad one?


text:
Video with transparent background file-size issue
A client asked me to do an animated product visualization in 3D and then render out the animation in 4K with a transparent background to put on their website. The animation is done but if I want to export it without background I realized that Quicktime is the only option. The 4-sec video then becomes 1,8GB in size! Is there any way around this or do I have to tell them that we can't go with 4K? or can I compress it or use some other format? The animation is also choppy in the video exported without background. When I render out an MP4 with the background it runs smoothly.

Transparent video on the web is possible, but it's going to only work for users with modern browsers.  You'll need to export in two different codecs - one for Chrome users, one for Safari.
From this site:

Safari supports HEVC with alpha, Chrome does not.
Chrome supports VP9 with alpha, Safari does not.

You need to export an HEVC with alpha channel for Safari.
You need a .webm VP9 codec with alpha for Chrome.
The animation codec you've exported at is not designed for web publishing.  It's a lossless very large codec designed for editing or archiving your finished project before you use it to make a smaller lossy version to go on the web.
This is how to make the webm using ffmpeg
ffmpeg -i "movie-prores.mov" -c:v libvpx-vp9 movie-webm.webm

I would recommend also exporting a "fallback version" for browsers that can't cope with transparent video (as a normal h264 mp4 or webm).

Thank you so much for your help! I will try this!

You’re welcome- please mark it as an answer if it helps!

Probably a good option, depending on the animation, is a CSS or JavaScript animation of a PNG sequence. This works well for 360° animations.
https://www.google.com/search?client=firefox-b-d&q=360+javascript+animation

Yes - this is a solution a lot of newspapers use for their "scrollytelling" animations.  Works better for shorter diagramatic animations than photographic work due to file sizes.


text:
Display only Intervals Selected using FFMPEG command
I have been working to remove certain intervals in audio using FFMPEG and was wondering if there is a command or certain technique to only display certain intervals selected.
For example, say I have an audio file (audio.wav) of duration 400 sec, and I run a command to only select the intervals from 30 sec and beyond as such:
ffmpeg -i audio.wav -af "aselect=not(between(t,0,30)), asetps=N/SR/TB" output.wav

The command above produces an audio file output that does not include the first 30 seconds, however, my goal is to know what intervals that it did include. I am looking for something to display some output like:
start_time: 30 sec, end_time: 400 sec

I do not want to hardcode these values which is why I am looking for some type of way for FFMPEG or technique to produce it based on the intervals not included in the original audio. If anyone could please share with me any command, technique it would be greatly appreciated!

FFmpeg won't provide this information in compact form. At most, you can get the result of aselect's per-frame evaluation by switching to debug log level.
ffmpeg -v debug -i audio.wav -af "aselect=not(between(t,0,30)), asetpts=N/SR/TB" output.wav

The log will contain lines of the form
[Parsed_aselect_0 @ 000001ce36d7c440] n:107.000000 pts:219136.000000 t:9.938141 key:1 samples_n:2048 consumed_samples_n:nan -> select:1.000000 select_out:0
[Parsed_aselect_0 @ 000001ce36d7c440] n:108.000000 pts:221184.000000 t:10.031020 key:1 samples_n:2048 consumed_samples_n:nan -> select:0.000000 select_out:-1

select:1.000000 means the frame was selected, and 0.000000 means it was dropped. The t: on the same line is the timestamp.
So, locate the first select:1.000000 and then the select:0.000000 following that. The corresponding timestamps form the selected range. Repeat till end.

Is there a way to see this same information without having to produce another output wav file? I just want to see the information on the 'audio.wav' file after doing selecting which frames I want. Or do you happen to know a programming technique to where I can just compute the intervals myself? Eg: Intervals Not Selected -- [0,34], [67,100], program produces the intervals [35,66], [101, 400].

Without generating a file: ffmpeg -v debug -i audio.wav -af "aselect=not(between(t,0,30))" -vn -f null -

Thank you for this, however, the issue with this is how long it takes to produce the output considering prints every single frame that was used in selection.

Yes. No way around that,


text:
Why my OpenShot Video Editor gets very slow every time (Win10)?
I just started to use OpenShot Video Editor to concatenate some short videos I filmed with my phone and add a sound track recently. The task is quite simple. But the software seems to mess up with the CPU or Memory or something. It's smooth in the beginning of a project, and then after half an hour or so, my laptop always makes a lot of noise and asks me to wait via a circle for every operation I do, while everything else than OpenShot can still function properly.
Well this is a new laptop, and I don't know what Task Manager means by 31; there're only 5 to 6 tabs open in Google Chrome. I'm afraid I'm totally a layman in computer and electronics. Can anybody point out the problem for me, please?

It is probably not a video production topic. You seem to have not much free memory left at the time you took the screenshot. Maybe you ran out of memory at some point which makes the system use the much slower hard disk instead for storing what should go into the RAM. This typically slows down every application, like you have observed. However, it's difficult to diagnose this from afar, the RAM problem I described is just a likely guess, but it could be something else. If you can, ask sb. you trust and is well versed in computer matters to help you in person.

Go Edit, Preferences.
Your memory limit may be at 250mb
change it to 3000mb

That's it! Thank you very much!


text:
Why don't I see flickering in artificial light despite using the wrong framerate?
I've read on several sources that when using artificial light, in Europe (50Hz mains frequency) you are supposed to record on 25/50fps or you can induce flickering. Makes sense in theory and all, but I wasn't able to ever reproduce it. I tried with my LED kitchen lightning, my LED studio light and even the halogen bulbs in my bathroom, everything both at 50 and 60fps. No recording shows even the slightest bit of flickering.
Is this normal? Is the flickering effect overstated and actually occurs only in very specific circumstances? Or if not, what could be the reason I don't see it?
(I'm using a Canon EOS200D if it matters. I watched the videos both on PC and camera, and I also double-checked on PC that I got the frame rate on the camera set right, which I did.)

You aren't using lights which will show up flicker.
Fluorescent lights are the worst, as their light output varies significantly with the mains frequency - so if you record at 60Hz in Europe where the mains runs at 50Hz you will see a very obvious 10Hz beat frequency.
Halogen lights don't really flicker, as the filament remains white hot throughout the cycle.
Good quality LED lights, will have no flicker, and cheap ones, if they do flicker at all, are likely to be at either double the mains frequency or even higher, so you are less likely to see any flicker.


text:
After Effects Prevent Widows in Text
So I'm pulling in text from a csv and I am trying to find a way to prevent widows (where there is a single word on a line).
in JS we'd do this text = text.replace(/\s(?=[^\s]*$)/g, ' ');
But I can't seem to find a similar method in After Effects with expressions, to insert a nonbreaking space between the last word and the second last word in a string.

There is not much information about this. I have found a discussion where someone said there could be a bug with regex lookahead, maybe it's not even implemented (source).
Instead, you could capture the last word and add it along with the space (captured elements start with index 1, so $1 is the first and in this case only group):
text = text.replace(/\s([^\s]*$)/g, " $1");

Only issue is that I can't seems to place a non-breaking space that AF respects and doesn't just treat as a regular space.

used \u2007 to create the space. Only issue was that it started breaking words onto the next line. lol Can never win.


text:
Weird colors when stacking videos
I want to "stack" two (or more) videos with the same background, such that it looks like there are two people moving at the same time (not sure if stacking is the right term for that?).
So far, I've tried that using opencv-python, both by summing or averaging the overlapping frames.
The desired effect is there, but I get these weird colors:

Where do these effects come from and how can I avoid them?

That looks like a case where you get an overflow.
Just doing an addition of two components with a char (or std::uint8_t in C++) will often overflow. I don't know about python implementation and how you've done your add, but just checking whether it's more than 255 if the value is on one byte is not going to work. You need to do the addition in at least a short, average, then save the results.
One way people deal with this issue is by using a float for each pixel. The addition won't break the type and you can easily calculate the average afterward.

That solved it, thanks! :)


text:
Pixel fragments after rendering only after adjustment clips that highlight a little area in the video
I used adjustment clips in some videos to highlight areas in videos by darkening the background.
Up until now I have never had any problems.
After rendering the video there show up some pixel fragments in the video right after the adjustment clip with the highlight effect.
I also used adjustment clips to create little arrows but they work perfectly fine and no fragments show up after the arrows.
So there are fragments only after the highlighting adjustment clips.
When I delete these specific adjustment clips, the fragments also dissapear.
Can anybody help me with that?
I added this picture of the fragments I have been talking about
Thank you in advance for your help!


text:
What would be the most efficient codec for streaming long videos?
I have a video streaming website that has videos with lengths of around 3 hours, and video file sizes going between 2GB and 5GB for 720p and 1080p ~30fps H.264 AAC videos. There are some outliers (like files that are just a few minutes long and 100-300MB in size), so it should work fine with them too (even if not that efficient). The streaming is VOD (not live). I am running out of bandwidth and trying to encode the videos to minimize their file size.
To reduce bandwidth consumption, I am searching for an efficient codec that:

would preserve as much quality of the original videos as possible while keeping the output file sizes as small as possible
have wide compatibility with the latest internet browser versions for all popular OS (without any OS changes or browser settings needed).

Tre-encoding will be done using ffmpeg and Intel® Xeon® E-2276G CPU which comes with Intel® UHD Graphics P630 GPU.
So far, I've decided on AV1 but am not sure if it's the best choice given my context and am not sure about its browser compatibility. If AV1 is a good option, I would also want to use AV1 in fmp4 HLS streams if possible, so that I can also reuse the fmp4 segments for DASH. I am not sure if this is possible and how much web players (like video.js) could influence positively the browser compatibility.


text:
Concatenated Video created with FFMPEG is longer than expected
I am using this Video-List:
file 'C:\Users\X\Documents\test\input.mp4'
inpoint 00:00:02.7650000
outpoint 00:00:04.7650000

and the following Command:
ffmpeg -y -safe 0 -f concat -i output.txt -map 0:v -map 0:a -c:a copy -c:v copy output.mp4

which should result in a Video with 2 Seconds in Length. But if I do a check with ffprobe I get this:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.16.100
  Duration: 00:00:04.85, start: 0.000000, bitrate: 394 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 382 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

Whats the cause of this?

As explained in the documentation, the inpoint directive works best with intra frame codecs, because for non-intra frame ones you will usually get extra packets before the actual In point and the decoded content will most likely contain frames before In point too.
And it's the same problem for outpoint directive.

Okay so to make it work with the Videos I have I should use ffmpeg to re-render them using a intra-frame codec? Right?

@Snickbrack Yes. For example : ffmpeg -i input -c:v libx264 -g 1 output


text:
Convert video to hequirect while setting the background black and blur the transitional area
I am using
ffmpeg -i input.mp4 -vf "v360=input=fisheye:ih_fov=122.6:iv_fov=94.4:output=hequirect:h_fov=180:v_fov=180:in_stereo=2d:out_stereo=sbs,format=yuv420p" -b:v 25M -maxrate 60M -bufsize 25M output.mp4

Which works as advertised to convert a fisheye to hequirect except for two problems:

The background is not black but seems to try and set it to the average color of the video. It should be black throughout.

The corners are not blurred but should be, there should be a soft transition from the corner of the video into black.

Please do not crosspost. See Is cross-posting a question on multiple Stack Exchange sites permitted if the question is on-topic for each site?


text:
Time Remapping Panel Greyed Out for Colour Channel Mixer
A lot of effects in KDE support automation/animation. However, effects such as the colour channel mixer don't seem to have this option. Here's a screenshot of the greyed out time remapping panel (top mid-left):

My goal is to be able to automate some sort of colour rotation, which doesn't seem to be possible with this effect for some reason. Why is my time remapping panel greyed out for that effect amongst others, and is my assumption accurate that animation for that effect is unavailable?


text:
Improving / upscaling old VHS video footage
i've recorded an old video tape via USB grabber - it has a resoution of 720x576 pixels.
What i want to do now is:

enhancing quality by AI-resizing to 4K (maybe using Topaz AI 4 or a cheaper method)
apply some video stabilization as the footage is pretty shaky
apply frame interpolation by using Flowframes for smoother video

In what order should i do it? Can you recommend software for those tasks? I was thinking about using Videodub and the Deshaker plugin - or maybe Adobe premiere?
Thanks

Actually, you can enhance the old VHS video quality by upscaling resolution to 4K, applying frame interpolation, deinterlacing and denoising simultaneously by an AI enhancement software.
I used AVCLabs Video Enhancer AI. It supports choosing the multiple models at a time.
[![enhance video quality]2]2


text:
Text styles in Davinci Resolve
Is it somehow possible to reuse text styles in Davinci Resolve (and Fusion)?
Each text node by default has OpenSans font, which does not work for me when I want to insert Japanese text (e.g. I want to switch the font to Noto Sans JP, adjust the size a bit etc.) Basically, like I would use character styles in Word, Libreoffice, Affinity Publisher etc, to develop a kind of custom stylesheet for my videos.
I know that I can create a custom title template which holds this Text+ node in Fusion, and just include it in the timeline. Unfortunately, then I cannot use any of the normal templates available (let's say a call out template). Or I would need to customize every one of these and save in a power bin.
I guess my main options are currently just to note in a separate text file the custom options and then just apply it manually? This seems really ugly though...
Are there maybe any better options?


text:
Shape Layer won't Align to composition
I have a stroke in my composition, and the anchor point of the stroke is set to the middle of the stroke.
I'm trying to use the Align Panel functions to bring the stroke to the middle of the composition, but it won't work. I can't seem to understand why.

Coudl you add a screenshot showing the Shape details, the "Transform: Shape 1" and "Transform" properties fully expanded?


text:
How to apply LUT in Da Vinci Resolve - no PhD in Color Science
I downloaded a free LUT from the almighty Youtube and want to apply this Da Vinci Resolve. However there are plethora of options and 100 blogs telling 1000 different settings. Can someone give me a straight forward answer what settings to apply, please skip the PhD-level dcientific thesis about color science.
This is what I am seeing in my project settings under color management, which drop downs do I need to use to select my LUT?


text:
How to serve long duration HLS playlist (12 hours) without creating massive playlists in FFMPEG?
I'm serving an HLS stream with the following ffmpeg command:
ffmpeg -f flv -i rtmp://127.0.0.1/live -crf 22 -ar 44100 -ac 2 -fps_mode passthrough -force_key_frames expr:gte(t,n_forced*2) -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -c:v libx264 -filter:v:0 scale=1280:720 -maxrate:v:0 3000k -c:a aac -b:a:0 160k -c:v libx264 -filter:v:1 scale=854:480 -maxrate:v:1 2000k -c:a aac -b:a:1 160k -c:v libx264 -filter:v:2 scale=640:360 -maxrate:v:2 1000k -c:a aac -b:a:2 128k -var_stream_map "v:0,a:0,name:720p v:1,a:1,name:480p v:2,a:2,name:360p" -preset veryfast -hls_list_size 30 -threads 0 -f hls -hls_time 2 -master_pl_name master.m3u8 -y %v.m3u8
The playlist is limited to 30 segments of 2 second duration, 60 seconds total. I'm using hls.js with low latency enabled for html video playback.
I'd like to make the stream have up to 12 hours of duration, which is 720x longer than it currently is. Is there a way to do this without creating enormous playlists? If I adjusted my command to just have a higher list size that would make the user have to constantly fetch ~500kb m3u8 files.
I figured if we know the overall duration and the segment duration then we can make a pretty accurate guess what # segment to serve if the user rewinds 6 hrs into a 12 hr stream...
I assume there's something in the HLS spec that allows for very long/infinite duration streams. Is there? If so how do I implement it?

If you want a limited no. of segments, add -hls_flags +delete_segments, this leads to a sliding window. If you want users to be able to rewind, then you have to keep all segments listed - a player isn't going to guess or remember the entry and its filename for an earlier time.


text:
Non-monotonic DTS Errors in Concatenated FFmpeg Output with Multiple Streams
I've encountered an issue while concatenating video files using FFmpeg, specifically when including multiple streams using the -map 0 option. Here are the details:
I have two FFmpeg commands to trim the first three seconds of a video from a public sample:

Without -map 0:
ffmpeg -i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -t 3 output_t.mp4 -y

With -map 0:
ffmpeg -y -i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -map 0 -t 3 output_t.mp4

When using the output from the first command in a concat demuxer, everything works fine. However, using the output from the second command results in numerous "Non-monotonic DTS in output stream" errors and the final video's length is incorrect.
The whole process looks like
ffmpeg -y -i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -map 0 -t 3 output_t.mp4
ffmpeg -y -i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -filter_complex '[0]trim=duration=3[s0];[0]atrim=duration=3[s1]' -map '[s0]' -map '[s1]' trim_atrim_duration.mp4
ffmpeg -y -f concat -safe 0 -i files.txt -map 0 -c copy concat_demuxer.mp4

the body of files
file 'output_t.mp4'
file 'trim_atrim_duration.mp4'

Here are my questions:
Why does including -map 0 (to include all streams) in the trimming process cause non-monotonic DTS errors when those segments are later used in a concat demuxer?
Any advice on how to diagnose and resolve these issues would be greatly appreciated. I'm particularly interested in understanding the underlying cause of the non-monotonic DTS errors and finding a reliable workflow for trimming and concatenating videos with multiple streams.
Thank you for your help!
I tried analysis the PTS & DTS to see if there is any difference between the w/o map output_t.mp4

ffprobe -v error -select_streams v -show_entries frame=pkt_pts_time,pkt_dts_time -of default=noprint_wrappers=1:nokey=1 output_t.mp4 > video_pts_dts.txt
ffprobe -v error -select_streams a -show_entries frame=pkt_pts_time,pkt_dts_time -of default=noprint_wrappers=1:nokey=1 output_t.mp4 > audio_pts_dts.txt

but didn't find any difference


text:
Adding the index expression to a rotation property and making that change over multiple keyframes?
I would like to reduce the value looping rotation of the leaves on this foliage design further towards the base of the design. I could do this manually by setting two keyframes and setting the rotation of each leaf from a negative value to a postive value. Then I can add the expression

loopout ("pingpong")

to achieve the motion in a short loop that can be time remapped.
However it is tedious to do this for multiple leaves.
I am aware of the index expression and how it can increase a value like rotation depending on the value of the layers index number in the stack on the timeline. Can the index expression also be used to target individual keyframes.
It would be nice to be able to increase the value of the rotation from -2 to 2 degrees at the base of the plant up to say -16 to 16 degrees right at the tip using an expression like index combined with something else to automate the process of setting up the rotations?
Thank you

This kind of thing might do it?

Null control at the top has a slider for movement and a slider for scale factor (how much you want each index position to be affected).
The rotation of each "leaf" is controlled by an expression.
thisComp.layer("Null 1").effect("Slider Control")("Slider") * (thisComp.layer("Null 1").effect("scalefactor")("Slider")*(1/index))

Which takes the value of slider 1, multiplies it by the inverse of the scale factor.
Then a "loop out" property on slider one and three keyframes does the animation (number of keyframes is counted from zero):
loopOut(type = "cycle", numKeyframes = 2)


text:
I need help creating a good GIF
I am using VSDC to create a GIF image of three images that fade from one into the other.  I think I have gotten the fade working well.  In the timeline, I fade out one image as I also fade in the next one.  This works pretty well.
I made each image the same size and dimension. So this, I thought, would make it look smoother and the transitions look flawless.
The problem was not the images but the canvas.  I thought I was scaling the canvas/work site down to the size of the images.  But this is not the case since the resulting GIF has a huge black border.  Please advise.  I will probably have several follow-up questionis.


text:
Inverse Telecine (IVTC) anime DVDs
Issue
I have a bunch of anime I've ripped from DVDs and even BDs that are 480i.
I want to upscale these videos with Topaz Video AI for higher quality on a big screen, but also because subtitles are a blurry mess at 480px height unless the player I use keeps the resolution at 1080p or 4K.
In this case, the upscale is introducing interlacing artifacts that aren't in the original file.
Anime Framerate
Anime is 23.976fps yet the files on the discs are 29.970fps at what is essentially 60i.
The first frame is duplicated twice and the second 3 times, then twice for the 3rd frame, and 3 times for the 4th. This is 2:3 pulldown.
Devices can do inverse telecine to get back the original 23.976fps video in realtime, but to upscale, I need to convert it to 23.976fps first on disk, then send that file to the upscaler.
ffmpeg
I'm trying to use ffmpeg to convert these files, but my command seems to be broken. Can you help me figure out how to alter this command to achieve my intended results at minimal to no quality loss?
This is the command I settled on so far:
ffmpeg -i "input.mkv" -c copy -map 0 -map_metadata 0 -vf "pullup" -c:v hevc_nvenc -profile:v main10 -level:v 4.1 -crf 18 -preset slow -fps_mode cfr -tag:v hvc1 -r 24000/1001 "output.mkv"

I added -level:v 4.1 because the original file is L4.1. For some reason, it gets converted to L3 without this change. I'd rather just say "use whatever it was originally", but I haven't figured out how.
I'm also converting to HEVC not because I care about compression, but because I think it produces a higher-quality encode. Especially if I'm going lossy to lossy, I want to lose as little detail as possible, so I figured AVC to HEVC should be safe. This assumption could be incorrect.
File still shows Interlaced
So long as I've done everything correct up to this point, my remaining issue is the file showing "Interlaced" when it should be, and visually looks, progressive.
Original file specs:

Resulting file showing Interlaced:

Keyframes are wrong
For some reason, after converting, the keyframes are wrong. I might not be understanding this term correctly, but when I seek through the file, it goes in 10- and 11-second intervals. The original file lets me seek in 1-second intervals.


text:
How to get a 7.1 PCMle encode in an MOV container to stay a single track while also rendering as 8 mono tracks in an NLE like an MXF container
I've been trying to convert Blu-Ray footage to the most efficient, yet least time consuming format for editing footage from them. For a while, I would make an MXF container and encode the h264 to DNxHD and the lossless compressed audio to pcm_s24le. I really liked how convenient it was to have my audio linked to my video, how it could be played as a single track in a media player, but then be inserted into my NLE as 6-8 separate mono tracks.
However, I found the DNxHD encodes to be unnecessary as they took up too much storage space and my NLE could perfectly handle the original h264 files in an MOV or MP4 container. But I noticed that switching from MXF to an MOV container meant that things that were jettisoned from the former were in the latter. Some of this was actually welcome, like the chapter markers, but I noticed that 7.1 audio (but not 5.1 for some reason) would now render in my NLE as a single 7.1 track.
I looked in MediaInfo and think I figured out that the issue is that the MOV container formats the channel layout while the MXF one doesn't. I'll paste the info to show what I mean
MOV FILE

ID : 2
Format : PCM
Format settings : Little / Signed
Codec ID : in24
Duration : 1 min 41 s
Bit rate mode : Constant
Bit rate : 9 216 kb/s
Channel(s) : 8 channels
Channel layout : L R C LFE Ls Rs Lb Rb
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 111 MiB (34%)
Title : English
Language : English
Default : Yes
Alternate group : 1
Menus : 3

MXF FILE

ID : 3
Format : PCM
Format settings : Little
Format settings, wrapping mode : Frame (AES)
Codec ID : 0D01030102060300
Duration : 1 min 13 s
Bit rate mode : Constant
Bit rate : 9 216 kb/s
Channel(s) : 8 channels
Sampling rate : 48.0 kHz
Frame rate : 23.976 FPS (2002 SPF)
Bit depth : 24 bits
Stream size : 81.1 MiB (5%)
Delay_SDTI : 0
Locked : Yes

Any ideas?
I tried this code:
ffmpeg -i "INPUT.mkv" -c:v copy -r 23.976 -c:a pcm_s24le -filter_complex "[0:a:0]pan=mono|c0=c0[a0]; [0:a:1]pan=mono|c0=c0[a1]; [0:a:2]pan=mono|c0=c0[a2]; [0:a:3]pan=mono|c0=c0[a3]; [0:a:4]pan=mono|c0=c0[a4]; [0:a:5]pan=mono|c0=c0[a5]; [0:a:6]pan=mono|c0=c0[a6]; [0:a:7]pan=mono|c0=c0[a7]; [a0][a1][a2][a3][a4][a5][a6][a7]amerge=inputs=8" "OUTPUT.mov”

And got this error message:
Stream specifier ':a:4' in filtergraph description [0:a:0]pan=mono|c0=c0[a0]; [0:a:1]pan=mono|c0=c0[a1]; [0:a:2]pan=mono|c0=c0[a2]; [0:a:3]pan=mono|c0=c0[a3]; [0:a:4]pan=mono|c0=c0[a4]; [0:a:5]pan=mono|c0=c0[a5]; [0:a:6]pan=mono|c0=c0[a6]; [0:a:7]pan=mono|c0=c0[a7]; [a0][a1][a2][a3][a4][a5][a6][a7]amerge=inputs=8 matches no streams.

This looks to be a behaviour of the NLE - there should be an option in it to a split each channel to a different track on the timeline.


text:
Does FFMPEG rewrite HLS m3u8 playlist files from scratch every segment when -hls_playlist_type = event?
hls_playlist_type event means the playlist file is supposed to be appended with each new segment reference and segments are never removed.
And yet I've always noticed in the ffmpeg log with each update:
[hls @ 000001c7870a4440] Opening '720p.m3u8.tmp' for writing
Which looks like it's not doing a simple append but rewriting the entire lot.
Every other playlist type this makes sense for but, for this it doesn't.
I'm using ffmpeg to create very (very) long running playlists containing potentially tens of thousands of segments, and if I'm correct in my assumption then it's going to be doing a lot of unnecessary writing and I'll need to find an alternative.


text:
batch generate thumbnails
I am looking for a way to batch generate thumbnails contact-sheets with ffmpeg.
A single line bash command line will do but a script is also okay.
This a example.

-The dimensions of the jpg must be 1498x753 pixels
-4 rows and 4 columns
-the first thumbnail 55 seconds into the video
-the rest of the thumbnails evenly spread till the end of the video and it must have the time in the nail itself when it was made
-it must include information about movie size, duration, resolution, length and name
-it must make thumbnails for all video's in the directory
-if there is a error it must stop and print the name of the faulty video
I’m using a debian based distro.
I looked at the ffmpeg man page but it is way above my level of understanding. I also searched the web and fount nothing.
I hope some one knows.


text:
Flip card (turnover) animation from two still images
I want to create an animation from two still images. One still is the front of a card, the other is the back, and I want the animation to turn over the card. [Here](is an example in Adobe After Effects]. I looked at the Wipe transitions that are built-in, as well as the add-ons provided by the community, and they all seem 2D transitions with an animated opacity mask between the two images, whereas this one would be closer to 3D with perspective and distortion.
Is it possible in Kdenlive to produce a "flip card" turnover animation?


text:
Automatic video compilation AI based tool or app
I am in search of an application, website, or tool that allows for the creation of video compilations based on the selected videos as input. I want to generate 60-90 seconds videos for social media based on dosens of video files I have. I don't care much about how the input videos are cut for the final video.
Most AI tools I've experimented with create entirely new graphics (no option to import your own video) or apply AI effects to existing footage, which is not what I need.
Google Photos has a feature somewhat aligned with my needs, where it can create videos based on a keyword from my video library. However, it does not allow for manual selection of specific videos. Also, its keyword functionality is limited — you cannot assign keywords to your videos yourself, and it generates the same video every time you try.
Is there a tool that allows for manual selection of specific videos and generates a new video of specific length?
Ideally, this tool would be user-friendly and designed for generating content suitable for social media platforms like Instagram.
Thank you for any suggestions.


text:
How to change resolution without compromising video quality using ffmpeg?
I'm trying to develop a simple video transcoding system. When you upload a video, After extracting the video and audio separately, I want to encode them at 360, 720, and 1080p resolutions respectively and then merge them to create three final mp4 files. At this time, I have two questions.

Is there a big difference between encoding the video and audio separately in the original video file and encoding the original video file as is? In a related book, it is said that a system is created by separating video and audio, and I am curious as to why.

I want to change the resolution without compromising the original image quality. At this time, the resolution of the uploaded file can be known at the time of upload. As a test, I created files according to each resolution, and found that the image quality was damaged. If I want to change only the resolution while keeping the original image quality, I would like to know how to adjust each ffmpeg option. We plan to change it to 360, 720, and 1080p.

Lastly, are there appropriate settings for the three resolutions (360, 720, 1080) that I am trying to convert to ffmpeg?

Is there a big difference between encoding the video and audio separately in the original video file and encoding the original video file as is?

If you're only downscaling the video, then you can save a small amount of time by separating the audio and converting it once, so for each uploaded video, there is 3 video encoding steps + 1 audio encoding step instead of 3 video encoding steps + 3 (redundant) audio encoding steps.
Here's an example of how to do this, taking $input and compressing it into three videos of 360p, 720p, and 1080p resolutions. It encodes the audio as 64kbps Opus. The video is encoded to AV1 with the default CRF:
ffmpeg -sn -dn -vn -i $input -c:a libopus -b:a 64k temp.opus
ffmpeg -sn -dn -an -i $input -i temp.opus -c:a copy -c:v libsvtav1 -vf "scale=-2:360:flags=lanczos+accurate_rnd" -c:a copy 360p.webm
ffmpeg -sn -dn -an -i $input -i temp.opus -c:a copy -c:v libsvtav1 -vf "scale=-2:720:flags=lanczos+accurate_rnd" -c:a copy 720p.webm
ffmpeg -sn -dn -an -i $input -i temp.opus -c:a copy -c:v libsvtav1 -vf "scale=-2:1080:flags=lanczos+accurate_rnd" -c:a copy 1080p.webm
rm temp.opus

There would be a way to do this all in a single command with no temporary files using filter_complex and the tee pseudo-muxer, but it would be more complex to read and isn't necessary to illustrate the point.

I want to change the resolution without compromising the original image quality.

That isn't possible. Whenever you transcode you damage quality. This is called generation loss and you should always minimize the number of generations of transcoding that a video goes through. When you downscale, you also remove information. You can optimize bitrate and resolution trade offs for best quality by using something called a "convex-hull approach".

Lastly, are there appropriate settings for the three resolutions (360, 720, 1080) that I am trying to convert to ffmpeg?

You should pick a CRF for each resolution that gives you acceptable quality at acceptable bitrate. Lower CRF means better quality but higher bitrate. You can also improve quality by using a slower preset. This will give better quality for any given bitrate (put another way, you can get the same quality at a lower bitrate) but at the expense of more encoding time. There are diminishing returns at the really slow presets though.


text:
Converter Box SD CARD
Unable to use last 2 Gigabytes of Storage on my SD card at the same rate as previous video.
I have been using a converter box for recording to an SD CARD. The amount of video was reduced to only 40 minutes for 2 Gigabytes, instead of 7 Hours for 6 GB. What would cause the difference in recording bitrates?
Trying to record video to SD card and make video file size consistent with recording previous files. I changed channels and made sure Television Set picked up video without interference.


text:
Timeline movement lock turned off in Premiere Pro
I have no idea how to word this correctly. Normally in Premiere Pro I can move clips on different layers and have them perfectly aligned from the beginning of the clip, but now that feature is gone for some reason. How can I turn it back on?

Snapping - with the timeline panel highlighter, press S and look for the little magnet icon.

https://helpx.adobe.com/premiere-pro/using/clips-sequence.html


text:
Search for a text in a video (text is from the images, not the speech)
I'd like to be able to search for a text in a video. E.g., if a video frame contains the text "Interactive", then I'd like the solution to point to that frame if I search for this word:

(image source)
How can  I do that?

I found a tool that can run on Linux that does what you want! If you don't have a Raspberry Pi or a Linux PC, you can use a Kali Linux virtual machine inside VirtualBox.
Just follow the instructions here. :)
Video-OCR


text:
Why does this HEVC HLS stream not play on browsers?
I have a HEVC HLS stream that does not play when I paste it e.g. in Safari. The video is encoded in HEVC and has a resolution of 4608x1728. The screen just stays black.
The URL is: https://cdn2.taggy.cam/videos/JFNi2a3JVxmUxWh8t6YkbzR5t9HyS94ZaQy81KVrbwJ2ztTp9f/hls/h265/video.m3u8
(or https://cdn2.taggy.cam/videos/JFNi2a3JVxmUxWh8t6YkbzR5t9HyS94ZaQy81KVrbwJ2ztTp9f/hls/h265/playlist.m3u8 for the master playlist)
VLC player does play it.
I tried several different players to get an error message, but the only thing I got was "MEDIA.VIDEO_ERROR (4,,CHUNK_DEMUXER_ERROR_APPEND_FAILED: Video stream codec hevc doesn't match SourceBuffer codecs.)"
The video is initially created with FFMpeg by recording the RTSP stream of a webcam with
ffmpeg -i rtsp://stream -tag:v hvc1 -f hls -hls_time 1 -hls_list_size 0 -hls_segment_filename output-directory/video-%05d.m4s -c copy

Any ideas how to debug this would be appreciated!
Thanks,
Sebastian


text:
is there any name for this style of video editing?
Here is the style:
A person is talking in a certain setting and a certain dress, let's say for 10 seconds, and when he finishes his first sentence there is cut and after the cut, the same person is in a different setting and different dress but continues with his 2nd sentence. The viewer gets impression that it was a complete sentence spoken.


text:
What video editors have a similar feature (Storyboard) to Windows Movie Maker?
I used to use Windows Movie Maker when I was growing up and I really enjoyed using it. I have since moved on to free, nonlinear editors like ShotCut and PowerDirector. There was however one feature that I really enjoyed using in Movie Maker. That feature was the "Storyboard" feature on Movie Maker.
The "Storyboard" feature was a feature that allowed us to reorder the clips that were being used. It is different from the timeline feature where you trim your clip or modify the timing. I know I am essentially describing Movie Maker but I really like that feature and I want to focus on the clips I use. Does anyone know of an editor that have this feature? Or where can I ind this feature in the editors I use?


text:
RTMP Stream in to MS Teams Seldom Works
I'm attempting to send an RTMP stream from my encoder (Wirecast or OBS) to an MS Teams Town Hall event. The Town Hall event has RTMP-in turned on. However, when I start streaming from my encoder, Microsoft's RTMP server (MSRTC/1.0) consistently drops the connection after the encoder sends the stream metadata in the @setDataFrame message. The server first stops the TCP/IP connection with a [FIN/ACK] packet and after the encoder continues to send data, it finally blasts back a bunch of TCP [RST] packets.
Microsoft's server just does this over and over with each connection attempt by my encoder.

It does this regardless of the encoder I pick or its streaming settings
It does it no matter which network I'm connecting from (corporate, home, tethered phone)
It continues this way for 10 or 20 minutes and then finally accepts a connection from my encoder.

After it accepts the connection from the encoder once, I can then connect again with any other encoder from any other network or device and their server will accept the stream.
I noticed that traceroute to their server (emea.rtmpingest.mcr.teams.microsoft.com), places it in Dublin. Our corporate headquarters so far as Microsoft is concerned is in Berlin. However, this office and our ISP is in the U.S.
Has anyone else observed this behavior with MS Teams Town Hall events with RTMP-In? Any idea how to fix it?


text:
What do they mean "Recording Ratio" in in the VLC Media Player, and what are the units (e.g. frames per second)?
There exists a video-player known as VLC Media Player.
My question is, for the scene video filter, what is the recording ratio?
If the number is 50 does that mean...

extract one frame every 50 seconds.

extract 50 frames per second.

extract 1 in 50 frames. Ignore the other 49 frames.

To digress.... computer programmers usually only write units such as millimeters, frames per second, meters, hours, pixels, etc... as comments. comments in a programme in Java, C++, Python, etc... are always deleted when the code is converted into machine language (machine language is mostly ones and zeros for ALU instructions). Perhaps one day we will see some template class for putting scientific units on numeric data-types like whole numbered ints and decimal-numered floats. For example, record_ratio = Uni<float>(50, "fps") instead of record_ratio = float(50).


text:
Where to find up-to-date video compatibility reference?
I am developing a video streaming website and trying to decide on what the best video containers and codecs would be for its use. For this, I need to know what the compatibility of each OS and browser is with each container and codec. Where can I find an up-to-date reference that contains a table summary of this information and is kept up to date?
An example of things I want to know: Per OS, on which browsers are the H.264, H.265, VP9, and AV1 codecs supported (and not supported)? The same question for audio codecs like AAC, Opus, etc.


text:
FFmpeg video trimming without acodec is time-consuming
I am using yt-dlp to get a direct link to the video. Some 360p and 720p links have an acodec. yt-dlp formats
In case if you trim a video with a segment of 5 minutes for example, a video that has acodec will be trimmed in seconds, while the same segment in the same quality but without acodec will take several minutes.
The FFmpeg command I use:
ffmpeg -ss 00:00:01 -to 00:05:00 -i "direct_video_link" -c copy video.mp4
With the -c copy argument, trimming video with an acodec takes less time but does not affect the speed of video without an acodec.
The yt-dlp command I use:
video with acodec - yt-dlp -S res:720,acodec:mp4a.40.2,ext:mp4,proto:https,fps30 -g "link"
video without acodec - yt-dlp -S res:720,ext:mp4,proto:https,fps30 -g "link"


text:
How to find out if a video file has picture types P and/or B and uses inter-frame prediction optimally?
Over on Super User, I asked the question, "What file properties affect the size of a video file?". A comment from Gantendo taught me about picture types and the apparently equivalent frame types. Another comment from him taught me that I can inspect a file to observe the use of these techniques by installing FFmpeg and running:
FFmpeg -i <filespec> -vf "showinfo" -f null -

and then looking at the values of the field type in the output.
I did that on one of my files and if I understand the output, it has some introductory data followed by a line of data for every frame, including a field type. From a quick look at that output, it appears that there are a few I frames, while most of the frames are of type P. So it seems that the file is using "inter-frame prediction" a lot.
My question has four parts:

Is there a way to tell if a file is using inter-frame prediction without having to inspect thousands of lines of output from FFmpeg?
Is there a way to tell if a file is using inter-frame prediction optimally, so that I know whether this type of compression is being done as well as possible or could be improved?
If a file is not using inter-frame prediction, is there a way to convert it to one that does?
If a file is using inter-frame prediction, but not optimally, is there a way to convert it to a file that uses the technique better?

@Gantendo - Thank you. You answered all four parts of my question. Is there a reason you don't want to post that as an answer? If you do, I would like to accept it.

The following answer is compiled from comments on the question made by Gantendo.
A helpful resource for understanding video compression is A Detailed Overview Of Popular Video Compression Techniques by ImageKit.

Is there a way to tell if a file is using inter-frame prediction?

Yes, you can look at which codec is used. If it is a codec that does not use inter-frame prediction then it is not used and vice versa.

(This part of the answer is not entirely helpful. How can I know if a particular codec uses it? I have not found a place with this information.)

Is there a way to tell if a file is using inter-frame prediction optimally?

"Optimal" is a difficult word in this context because, since there is a tradeoff between space (and even gpu/cpu used) and quality. Use H.265 and it is pretty damn good.

If a file is not using inter-frame prediction, is there a way to convert it to one that does?

Yes, you can convert videos from one codec to another. Check out Handbrake and Tdarr.

In addition to those, it appears that ImageKit also does this. The ImageKit article also says VLC and Adobe Media Encoder can be used.

If a file is using inter-frame prediction, but not optimally, is there a way to convert it to a file that uses the technique better?

If a file is H.264 you can convert it to H.265 which should improve compression. See HEVC (H.265) vs. AVC (H.264): What’s the Difference? by BoxCast.


text:
The H264 Codec in Premiere Pro CS6 Creates MP4 Files with Variable Frame Rates
I am trying to export my project and sequence to the final video format for distribution, which ideally would be H.264, however, after reviewing the resulting MP4 video in MediaInfo, I am concerned that it exhibits a Variable Frame Rate.  The variables being Min 29.97fps and Max 30fps.  To my knowledge most film distributors require video submissions to have a constant frame rate, and yes, I realize I could use Handbrake to achieve this in post production, but I would like to know if this is how all H.264 codecs currently process video with VFR.  I say this, because I have some older MP4 videos that I previously created through PP CS5, and they are reported to have a constant frame rate by MediaInfo. Yet, all my exports to H.264 from PP CS6 have a Variable Frame Rate.  Any help would be appreciated, I have been experimenting with all of this for 5 weeks and I can't afford any more time being lost.  Thank you


text:
Ffmpeg outputting empty mp4 files for video concatenation command
When I run the following Ffmpeg command it produces empty mp4 files as an output.
The command takes segments of a video as inputs, crops each input at particular locations, and then concatenates them :
ffmpeg -ss 551.389000 -t 47.292417 -i ./testo.mp4 -ss 598.681417 -t 34.217583 -i ./testo.mp4 -vcodec libx264 -r 59.94005994005994 -b:v 6890k -movflags faststart ./out.mp4

I have used this command for thousands of videos, but for this particular video it causes this empty mp4 files. Depending on the specific regions of the video that I specify as inputs, sometimes the command works without issues. The inputs supplied for this video are valid, as the video is 15mins or so.
Here are the relevant output logs for the video (see appendices for all other input/output):
[vost#0:0/libx264 @ 0xfae9410] No filtered frames for output stream, trying to initialize anyway.
[aost#0:1/aac @ 0xfaeab60] No filtered frames for output stream, trying to initialize anyway.
frame=    0 fps=0.0 q=0.0 size=       0kB time=N/A bitrate=N/A speed=N/A
[mp4 @ 0xfae88d0] Starting second pass: moving the moov atom to the beginning of the file
[out#0/mp4 @ 0xfae87d0] video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[out#0/mp4 @ 0xfae87d0] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=N/A bitrate=N/A speed=N/A
[libx264 @ 0xfae9790] final ratefactor: 17.79
[aac @ 0xfaeaee0] Qavg: nan

Main insights from outputs:

The output tbn is 1000k (usually 60k)
"No filtered frames for output stream" for both video and audio outputs.

Things I have tried:

I have a feeling its to do with the video frame-rate, so I tried using several permutations of commands like fps_mode, video_track_timescale, copytb, and enc_time_base.
Unsetting output fps
Changing input locations (this works)

Appendices
Here is the ffprobe input for the video, which was downloaded from YouTube:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './testo.mp4':
Metadata:
  major_brand     : isom
  minor_version   : 512
  compatible_brands: isomiso2avc1mp41
  encoder         : Lavf60.16.100
Duration: 00:14:31.44, start: 0.000000, bitrate: 939 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 6848 kb/s, 59.94 fps, 59.94 tbr, 60k tbn (default)
  Metadata:
    handler_name    : ISO Media file produced by Google Inc.
    vendor_id       : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 105 kb/s (default)
  Metadata:
    handler_name    : SoundHandler
    vendor_id       : [0][0][0][0]

Ffmpeg output format, note the very high tbn value (usually this is 60k):
Output #0, mp4, to './out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.16.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 608x1080 [SAR 1:1 DAR 76:135],
  q=2-31, 6890 kb/s, 59.94 fps, 1000k tbn
    Metadata:
      encoder         : Lavc60.31.102 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/6890000 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc60.31.102 aac

Full command log can be found here: https://pastebin.com/5CpnaUvg


text:
Splitting videos andsubtitles together
I am involved in a project where we would have a video with srt or vtt subtitles and we will need to split it into multiple shorter videos with the subtitles adjusted accordingly for each of the split videos.
I did some online research and although there are many programmes that offer video splitting, I could not find anything about the subtitles. My workflow is that I load up the big video file with its subtitle file and I am specifying the segments for splitting - I want to be able to do all segments in one go and when the video is split, the corresponding part of the subtitle is included in the clipped file.
Could you please suggest any programmes that will accommodate this (commercial programmes are fine and, actually, preferable)?
Regards,
George

You could easily do that with FFMpeg if you are ok with the program. Here's the official documentation and the Wiki.
For instance, I have a following video SampleVideo_1280x720_30mb_srt.mp4 (the source), which I added a few subtitles to. Let's probe the file:
$> ffmpeg -hide_banner SampleVideo_1280x720_30mb_srt.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SampleVideo_1280x720_30mb_srt.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.20.100
  Duration: 00:02:50.86, start: 0.000000, bitrate: 1474 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1086 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
      Metadata:
        handler_name    : VideoHandler
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
      Metadata:
        handler_name    : SoundHandler
        vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
      Metadata:
        handler_name    : SubtitleHandler
  Stream #0:3[0x4](ger): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
      Metadata:
        handler_name    : SubtitleHandler
  Stream #0:4[0x5](fre): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
      Metadata:
        handler_name    : SubtitleHandler

It's 02:50 long with 5 streams: video, audio, and 3 subtitles in EN, DE, and FR. FFMpeg can cut/trim videos including all streams. The following command extracts 30 secs after the first minute including all streams: audio, video, and subtitles:
(Note  metadata info are excluded from the following outputs)
$> ffmpeg -ss 00:01:00 -t 00:00:30 -i SampleVideo_1280x720_30mb_srt.mp4 -map 0 -c copy output.mp4

-ss and -t depict beginning of the time and duration. -map 0 instructs on including ALL streams from the input 0, that is the first input file. Here's the output from ffprobe:
$> ffprobe -hide_banner output.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Duration: 00:00:30.01, start: 0.000000, bitrate: 1806 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1213 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 384 kb/s (default)
  Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
  Stream #0:3[0x4](ger): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
  Stream #0:4[0x5](fre): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s

The duration of a new video is 00:30 and all subtitles have been copied. If I decided to keep only one subtitle, I'd have to be more specific in which stream to include in output file. This is done via -maps:
$> ffmpeg -ss 00:01:00 -t 00:00:30 -i SampleVideo_1280x720_30mb_srt.mp4 -map 0:v -map 0:a -map 0:s:0 -c copy output.mp4

Here maps 0:v and 0:a tell FFMpeg to include both video and audio streams from the input 0. Then, -map 0:s:0 only includes the first subtitle, the one in English. Again, using ffprobe on such video gives the following output:
> ffprobe -hide_banner output.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Duration: 00:00:30.01, start: 0.000000, bitrate: 1806 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1213 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 384 kb/s (default)
  Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)

I have used -c copy in all above examples, which copies streams without any processing. Sometimes -ss may produce artefacts at split points. A simple way to avoid is to slightly adjust  time for -ss. Otherwise, re-encode the video stream
$> ffmpeg -ss 00:01:00 -t 00:00:30 -i SampleVideo_1280x720_30mb_srt.mp4 -map 0 -c:v libx264 -preset slow -crf 20 -c:a copy -c:s copy output.mp4

libx264 and its settings is only an example.
You should check FFMpeg manual or FFMpeg official Wiki if you need more info. Just for completion ffmpeg -hide_banner -codecs lists all available codecs, while ffmpeg -hide_banner -h encoder=libx264 will for instance list options available for H264 encoder.
Hope this helps.


text:
What kind of video or audio encoding is causing this?
Trying to stream a video (mkv) on a Samsung 2017 TV and some videos are "lagging" / buggy. I don't know the term for this kind of issue so it's hard for me to pinpoint the problem.
The video stream is AVC, the audio AAC LC.
I did try to re-encode into a different format, but it's not always a sure shot. If someone can point me in the right direction as to how this issue is called and how properly convert if needed, it'd be appreciated.
The file is transferred through a network base app called Jellyfin, no transcoding is being applied.

It looks like it is dropping data when trying to stream to the client device.
Take your original footage and re-encode it using several different bitrates for the video. See which ones drop out and which ones work with your network connection. You can convert videos using e.g.  Handbrake (free) or Media Encoder (not free).
This should give you a sense of how many megabits per second can be streamed over your network. Then you need to decide whether to transcode your videos in advance, or whether you have a server with enough processing power to transcode them on the fly.


text:
(VSDC) Can you apply a DeLogo filter to an ellipse shape?
I usually use DeLogo under Video Effects/Filter options. Now I am wondering if one can create an Ellipse that has the DeLogo effects applied.
I attempted this by creating an ellipse object and then applying a DeLogo filter. As you can see in the image, only the border of the ellipse seems to have the DeLogo filter applied and not the inner part of the shape.


text:
Structure of MPEG-4 "©xyz" box
[This was originally posted at https://stackoverflow.com/questions/77971906/structure-of-mpeg-4-xyz-box, and I was redirected to here. I understand if it is too OT and is closed.].
I am trying to parse out ISO/IEC 14496-12 based files (essentially MPEG-4 movies). There are a few boxes are not in the standards (or on the MP4 Registration Authority lists), but are in real-world files. They mostly pretty simple to trace to QuickTime or similar, where the implementation is just not updated.
I'm struggling with the GPS location box (©xyz).
Here is an example:
0x00, 0x00, 0x00, 0x1e, 0xa9, 0x78, 0x79, 0x7a,
0x00, 0x12, 0x15, 0xc7, 0x2b, 0x34, 0x31, 0x2e,
0x33, 0x37, 0x35, 0x38, 0x2b, 0x30, 0x30, 0x32,
0x2e, 0x31, 0x34, 0x39, 0x32, 0x2f

The first eight bytes are the box length and box name. No problem with that.
The next four bytes are the unknowns: 0x00, 0x12, 0x15, 0xc7.
The remaining bytes are text "+41.3758+002.1492/" which is the expected
latitude and longitude (Barcelona) per ISO 6709 (albeit not the 2023 version).
Of the unknowns, I can interpret the first two bytes as a 16 bit (unsigned) integer which matches the number of characters in the text. That is guesswork though.
The next two are a mystery - could perhaps be constants since I see the same 0x15 0xc7 values when generated from a different device in Australia.
What is the defined structure for this box, and is there a published specification that defines that structure?

Looking at a video I have with exiftool and using the -v4 option, which shows a breakdown of the structure, it seems that the character encoding and language should appear before the actual GPS data, but exiftool is showing 8 bytes instead of 4, and I can't seem to figure out what your 4 bytes mean.  I've posted an example output to Pastebin which includes a default entry and a French entry.  Hopefully, that can help.

Thanks. Over at the original stack overflow question, we traced it down to the language code (which a single pad bit, then three 5 bit numbers which are the difference from 0x60 to the ASCII value.


text:
What is this glitch/corruption?
A while ago I was uploading some old videos on my computer, and I found this video,and thought glitching on it looked really interesting, and I wanted more info on it. However, I couldn't find any info about this specific type of corruption, and I'm not sure if this has happened to someone else before or if it's a result of damage to my hard drive.
Thanks!

Hi, welcome to Video Production Stack Exchange.  Can you add some description of the glitch you are talking about.  As it currently stands, if anything happens to the video clip you have linked, the question will not have any meaning on its own.

@AJHenderson It seems to be quite a complicated glitch. It includes a strange high-pitched screeching/buzzing noise, and it seems to "merge" different frames together and move them randomly. A lot of the "activity" seems to be concentrated near the bottom. I also think I should mention that while I could play it on Youtube, the actual file would open up normally (I think).


text:
DIY Ronin 4d-like camera rig with a Micro studio camera G2
I've been looking into making a compact camera rig with 4-axis stabilization in the style of a Ronin 4D. I plan to use a Black Magic Micro Studio Camera 4k G2 along with a smaller gimbal that will be attached to a stabilizer arm that should be around 5-6 inches long. The total weight of the camera rig at the end of the arm will be approximately 35 oz. My main issue was finding an electronic 4th-axis with little information on the topic. Is this arm something that is worth trying to make myself, or would a spring arm have the same results? What type of motor is on the Ronin 4D's arm? Also, does anyone have any suggestions on a gimbal that is compact, can hold 15oz, and is easily dissectable?
Thanks for any feedback!


text:
PNG Logo from Illustrator in Da Vinci aliasing issue
I need to put a logo watermark on a video but the aliasing is terrible. I already tried all the settings (premultiplied etc) in clip attributes. I also tried moving the vector over to Photoshop and exporting a .tiff file instead but the issue is still present. The aliasing is present both on the watermark as well as on the zoom animation (zooming from original size to smaller). How can I fix this? I really don't want to use After Effects for something this simple.
Thank you in advance!

Could it be a scaling issue? Can our show an example?


text:
whatsapp media files cannot be concatenated by ffmpeg
hi I have written a Python program to concatenate multiple video files using ffmpeg concat demuxer. initially, I used media files from WhatsApp in my mobile which were sent to my laptop via email.
but all the WhatsApp media files failed to concatenate and program gave an error "non monotonous dts... " but when i replaced the whatsappp media files with the video files in my laptop which were diectly downloaded from a site the program worked and it concatenated the videos. i am wondering what might be the reason whatsapp media files not working here ? is it some kind of special encryption by whatsapp of its media files which is making them unreadable from ffmpeg ?
here is code
def story(path):
videos = [f for f in os.listdir(path) if f.endswith(".mp4")]
print(videos)
command = [
    "ffmpeg","-y",
    "-f","concat",
    "-safe","0",
    "-i","concat_list.txt",
    "-c","copy",
    "final.mp4"

 ]
with open("concat_list.txt","w") as f:
    for video in videos:
        f.write("file " + os.path.join("assets/story/",video) + "\n")
        #print(os.path.join("assets/story", video))
subprocess.run(command)
os.remove("concat_list.txt")

return "final.mp4"

path = "assets/story/"
story(path)


text:
Bulk crop, change speed, volume, zoom, contrast etc Videos
I want to edit some videos in batch, i want to be able to change volume, speed, zoom, contrast, volume and also be able to crop the videos. I want to be able to adjust all the mentioned options.


text:
Ffmpeg command to mux in subtitles matching the style of VLC
I am trying to mux in subtitles with ffmpeg, but I am having trouble getting the desired style and output with a reference point being VLC's standard format of showing subtitles matching the look of the subtitles below (when selecting standard.srt files in VLC):
VLC standard subtitle format
What would be the command to achieve this exact output style for burning subtitles into a video file? I have tried commands looking like this one, but to no avail so far in getting it to match the VLC standard subtitle style:
ffmpeg -i input.mkv -vf "subtitles=sub.srt:force_style='FontName=Arial,FontSize=22,PrimaryColour=&Hffffff&,SecondaryColour=&Hffffff&,OutlineColour=&H000000&,BorderStyle=3,Shadow=1,Outline=2" output.mkv
I have been trying to extract a style from the VLC settings by tweaking some of the parameters, but no matter what I try to adjust it seems to give an undesired output style or format

I think, you didn't close the quotes: ...,Outline=2' " ...

@БаярГончикжапов I got it working and tweaked some of the settings, but I find it hard to impossible to imitate the style of VLC. If someone has some good styling commands or one which achieves the desired VLC look I would be more than happy if someone would share them here

try FontName=Arial,FontSize=22,PrimaryColour=&H00ffffff,OutlineColour=&H00000000,BackColour=&H7f000000,BorderStyle=1,Shadow=1,Outline=1

@БаярГончикжапов The output is looking great and just what I was looking for - thanks for the help!

authors: Баяр Гончикжапов


text:
Right pypeline to shoot crowd on chromakey, to add 3d on post
I NEED THIS TYPE OF PRODUCTION+VFX+3D ANIMATION
VFX+3D
My storyboard of the scene:

If We shoot the crowd on a chromakey from these angles, which option would be easier and faster:

To make a full 3D city scene, and put footages into 3d scene?
To shoot the real city from exactly the same angles, and just add 3D air balloons into city footage, and put crowd footage into 3D balloon?
Just shoot on camera crowd in the city, and imitate camera angle to the sky, to add on post the 3d balloons, with tracking and compositing(masking crowd)
... I dont know

I found this tutorial, but im not sure how to get right results. I just dont know the right pypeline
Chromakey in Blender
Please share the right pypeline! More about how to shoot and work with chromakey
Btw, i need to understand how to make this type video until 15 march(15 march will video-prod day)
UPD.
Softwares: Blender, C4D, Embergen, FSpy, Material Maker, AE, Davinci Resolve, Photoshop, AI, Audition, Premiere Pro, Final Cut
Our skills:

Concept arts
2D/3D motion design - Blender mostly, a bit C4D
Rigging and character animation
Blender Geo-Nodes - junior
VFX - Embergen, AE, Davinci Resolve Fusion
Tracking - KeenTools, FSpy, Blender, AE, C4D
Compositing - AE, Davinci Resolve
Video shooting
Film Making
Color Correction
Editing

I NEED THIS TYPE OF VFX+3D ANIMATION:
VFX + 3D ANIMATION WITH LARGE CITY BACKGROUND
Scenario of video - one blogger on an air balloon(in the city, ground) calls a crowd of people, atract them. They are come to him, listen something and follow him, buy standing on an air balloon. And Balloon starts flying from the city. Next shot is fro the ground looking to the sky, how these people flying on a balloon. Final shot from the sky, air balloon flying to another city.
15 March - day of shooting(production), we will do prod.
So until 15 March i need to get the best way to shoot
And I guess i have enough of skills to make it, i'm just not sure in pypeline


text:
FFMPEG Invalid data found when processing input when muxxing ASS file
I made a Python script to use FFMPEG to extract a subtitles file(ASS) from an MKV, modify a few things with Pysubs2, and then remux it as a new sub. The code works has worked correctly until now, but a file that I decided to use it for today is now throwing an error message that I'm just unable to understand what's going on.
This is the equivalent of the command that I use with Python to mux the ASS file to the MKV
ffmpeg -loglevel quiet -report -y -i "Videofile_02.mkv" -i "Videofile_02.ass" -c copy -map 0:v -map 0:a -map 0:s:0 -map 1 -metadata:s:s:1 language=eng -metadata:s:s:1 handler_name=English -metadata:s:s:1 title=Test -max_interleave_delta 0 -disposition:s:0 0 -disposition:s:1 default "./Finished/Videofile_02.mkv"

I use the -report option to attempt to understand what's happening, but, this is what I get:
...
Applying option disposition:s:0 (disposition) with argument 0.
Applying option disposition:s:1 (disposition) with argument default.
Successfully parsed a group of options.
Opening an output file: ./Finished/Videofile_02.mkv.
[file @ 0x55abe42c5780] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
[matroska @ 0x55abe42b8c00] get_metadata_duration returned: 1431013000
[matroska @ 0x55abe42b8c00] Write early duration from metadata = 1431013
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Error initializing output stream 0:4 --
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:4 -> #0:1 (copy)
  Stream #0:1 -> #0:2 (copy)
  Stream #0:2 -> #0:3 (copy)
  Stream #1:0 -> #0:4 (copy)

[AVIOContext @ 0x55abe42c59c0] Statistics: 0 seeks, 1 writeouts
[AVIOContext @ 0x55abe4212cc0] Statistics: 1050661 bytes read, 2 seeks
[AVIOContext @ 0x55abe4258c40] Statistics: 34795 bytes read, 0 seeks

From what I'm understanding, seems like there might be a problem muxxing the subtitle file into the MKV(Maybe?). As an aditional piece of data, this file is part of a set of files that I'm applying this process to, all have the same characteristics, and the first one completed correctly, muxxed the subtitle file and is viewable, but from the 2nd to 6th it show this problem, and the others work correctly, so I don't think that the problem could be caused due to syntax errors in the ASS file, or things like that. Also, probably very important, I tried to mux these files using MKV Toolnix, and it merged them correctly, so is not like is not possible to mux them or there is an error, just FFMPEG that is not allowing me to.
Does someone knows what might be a cause, or what might I do to gather more info? Sorry, I'm not very into using these tools, so I'm not sure what kind of other data I could provide, or what else to check.


text:
How to synchronize multiple Video Clips based on background music
I’m working on a dance video project where there are multiple clips of people dancing to the same song. I want to synchronize these clips so that they match the beats of the music. How can I achieve this using DaVinci Resolve or Adobe Premiere Pro? (I have access to both).
The background music is the same song for all clips and it is recorded from a camera, so there is some level of additional noise.
I need a method to align these clips, so that I can cut to another clip without missing the beats of the music.
Is there a feature in DaVinci Resolve or Premiere Pro that can automatically synchronize the clips based on the audio waveform?


text:
Fix video files which have aspect ratio 1:1
I'm using VideoProc Converter to convert several video clips. The video clips are in different format. My purpose is to make all of them in same format with 1080p resolution and 30 fps.
I've noticed that a few files are showing 1:1 aspect ratio, despite the video having 9:16 aspect ratio:

On the left preview pane, you can see the aspect ratio.
The problem is, after I convert, whether I keep the resolution and aspect ratio same or whether I change the aspect ratio to 16:9, the resulting video's aspect ratio becomes 1:1 and thus the video is stretched horizontally.
How can I convert properly so that the videos aren't stretched this way?


text:
ffmpeg copy some audio streams and re-encode some audio streams
The Problem
I have a mkv file that contains audio in a format that not all my devices support. To get full support, I want to copy that audio and convert it while retaining the original audio.
Input:

mkv
4 stereo audio tracks

Output:

mka (I only care about the audio)
2 stereo audio tracks (original, track 0 and 2 copied)
2 stereo audio tracks (converted, track 0 -> track 1, track 2 -> track 3)
the original track 1 and 3 shall be discarded

What I´ve found so far (using ffmpeg 6.1):
To copy audio track 0 and 2, I can use the following command:
ffmpeg -i input.mkv -map 0:a -c:a:0 copy -c:a:2 copy output.mka

And this command to change the audio format of track 0 to OPUS.
ffmpeg -i intput.mkv -map 0:a -mapping_family 1 -ac 6 -c:a:0 libopus -metadata:s:a:0 title='Opus 5.1' -metadata:s:a:0 language='eng' output.mka

I think I can remove the -mapping_family 1 -ac 6 part, as I´m only dealing with stereo audio.
The question:
How can I combine both commands to get the following track layout?:

track 0 (original, copied, metadata retained)
track 1 (re-encode from track 0)
track 2 (original, copied, metadata retained)
track 3 (re-encode from track 2)

mapping ffmpeg -i "$f" -map 0:a:0 -map 0:a:0 -map 0:a:2 -map 0:a:2 -c:0 copy -c:1 libopus -c:2 copy -c:3 libopus -metadata:s:0 title="aac 0" -metadata:s:1 title="Opus 1" -metadata:s:2 title="aac 2" -metadata:s:3 title="Opus 3" /tmp/out.mka

authors: Баяр Гончикжапов


text:
Retain Embedded Cover Images Between ffmpeg Conversion?
I like to embed a cover image into my video files, but I have noticed that they are lost whenever I convert or remux, is there a way to retain these embedded images like I can with metadata? Are there limitations to this depending on which container I use? The code below is for converting the video stream to AV1, and keeps the original infile container. Most of the time the container I am using is Matroska Video.
for %%f in (%*) do (ffmpeg -hide_banner -y -i %%f -movflags use_metadata_tags -c:v libsvtav1 -preset %Preset% -crf %CRF% -b:v %ABR%M -c:a copy -c:s copy "%%~nf (AV1)%%~xf")


text:
ffmpeg - How to do H.265 encoding on ffmpeg using Mediainfo encoding data?
This is the Mediainfo File of my encoded video. The original video has multiple audio tracks & subtitles. I want to keep them all intact. Plz note the encoding needs to be done on Android via Termux. Sorry if this is a newbie question. Thanks for the help.
General
Complete name                            : TheBatman4KEncoded.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 1 010 MiB
Duration                                 : 12 min 1 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 11.7 Mb/s
Frame rate                               : 351.338 FPS
Writing application                      : Lavf60.16.100
Writing library                          : Lavf60.16.100
ErrorDetectionType                       : Per level 1

Video #1
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10
Format level                             : 5.1
Format tier                              : Main
HDR format                               : SMPTE ST 2086, HDR10 compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 12 min 1 s
Bit rate                                 : 8 023 kb/s
Width                                    : 3 840 pixels
Height                                   : 1 608 pixels
Display aspect ratio                     : 2.39:1
Frame rate mode                          : Variable
Frame rate                               : 351.338 FPS
Original frame rate                      : 23.976 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.004
Stream size                              : 9.87 GiB
Writing library                          : x265 3.5+rarbg-HDR-38-20255e6:[Linux][clang 16.0.0][64 bit] 10bit
Encoding settings                        : cpuid=1111039 / frame-threads=6 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1608 / interlace=0 / total-frames=0 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / no-eob / no-eos / no-hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=1 / keyint=24 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=3 / limit-refs=3 / no-limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=8000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=0 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1) / cll=413,65 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.03 / no-opt-cu-delta-qp / no-aq-motion / hdr10 / hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.2020
Transfer characteristics                 : PQ
Matrix coefficients                      : BT.2020 non-constant
Mastering display color primaries        : Display P3
Mastering display luminance              : min: 0.0001 cd/m2, max: 1000 cd/m2
Maximum Content Light Level              : 413 cd/m2
Maximum Frame-Average Light Level        : 65 cd/m2

ffmpeg -i "in.mp4" -map 0 -c copy -c:v libx265 "out.mkv"

-map 0 From input index #0 (the 1st input) select all streams.
Source

For each stream, the last matching c option is applied, so -c copy -c:v libx265 will copy all the streams except the (first) video, which will be encoded with libx265.
Source

If you want to encode all audio streams to aac rather than just copy them, you would you can add the audio encoding like so:
-c copy -c:v libx265 -c:a aac.


text:
Save ffprobe Output to Log File?
I made a script for ffprobe I can use to view information of my media more easily.  An additional feature I want is to breakout the output information to a log file.
Implementation 1:
@echo off

for %%f in (%*) do (ffprobe -hide_banner -i %%f>"%~dp1ffprobe.log)

Implementation 2:
@echo off

(
for %%f in (%*) do (ffprobe -hide_banner -i %%f)
)>"%~dp1ffprobe.log"

The issue I am having is that the log is being created in the expected location but it it always empty with either of these implementations. Usually either of these methods for breaking into a file have worked for me. Is there a native or alternative way of accomplishing this?

With ffprobe 5.1 or later, you can add -o OUTFILE to store probe data in a file.
If using redirection with earlier versions, redirect stderr as well.

I have tried this, but I believe this is part of ffmpeg and not ffprobe. It works in ffmpeg when converting or remuxing, but I am unable to get output saved to a file with the same flag.

ffmpeg has no -o option.


text:
{Help} FFMPEG with NVIDIA hardware acceleration
I just started using ffmpeg so I am new this. I am currently (code-1) to overlay a simple png on a video nothing fancy.
Now I want to the same thing but with hardware acceleration using a NVIDIA GPU. But I am clue less as to how to go about it. Can you please tell me how to do this.
FFMPEG is the latest version and my gpu is supported plus i have all the latest drivers and the cuda support.
!ffmpeg -i /content/tst.mp4 -vf "movie=/content/over1.png[img01];[in][img01]overlay[out]" output.mp4


text:
How to Slowly Darken a Picture using Photoshop?
How do we slowly darken the picture as shown in the sample GIF?

I have a still image of a face made but I really don't have idea on how to achieve that effect in Photoshop.
Any hints would be very welcome.
Thank you all!


text:
Da Vinci Raw to Blender and back to Da Vinci
I need to make a vfx shot that requires using the video itself as a texture for a wall breaking (basically projecting the original footage onto the tracked CGI wall). The clip on my timeline is BRAW. What is the best way to do the round trip so that my CGI plate has still enough information for color grading and overall compositing in fusion?
1)Should I send it to Blender in log?
2)What color space should I export it in?
I usually color manage my projects in Da Vinci WG through nodes.


text:
How can I create a video file from 35mm film shot with a motion picture camera?
I use a 35mm motion film camera to shoot some scenes of my productions.
The area of the images shot by the camera, when scanned at around 4k, is roughly 3648 x 2862. It can also be 2214 x 1712 but I prefer to make a higher quality file.
All images are scanned RAW, and I usually drop them as a 15fps sequence in After Effects. Ordering them into an animated sequence is the easy part, but exporting is more difficult.
When I export as Lossless from After Effects CS6, the file doesn't play on any other devices or plays very slowly and is huge (but the frames look decent, the grain is not too badly damaged by compression).
When I export with H.264 codecs from After Effects, however, parts of the image's edges are randomly clipped in the exported file.
I tried exporting as Lossless .mov from AE, then converting to one of the profiles in AME called HD 1080i 25 (1.33 PAR), but this step either adds black bars randomly, creates a file I cannot play on recent devices, or compresses the image and the result looks very poor.
How can I export a sequence of a pixel size and frame rate that I defined, without losing quality, the resulting file not being playable of having parts of the image cut off?


text:
Galaxy A03s Not Recording at 30 FPS Constant - Mouth Movement and Audio Out of Sync
I have an unlocked Samsung Galaxy A03s [1]. Per the Samsung website, it's supposed to be specked at FHD (1920 x 1080)@30fps. Unfortunately, I almost never get it to actually record at 30fps constant. Instead, it frequently records at what I think is about 17fps variable [2]. IIRC in extreme cases, the audio and video may even get out of sync.
I tried resetting the phone to factory defaults and turning on airplane mode several times, but I still get the lower 17fps.
Is there any way to get either the front or rear facing cameras on this phone to consistently do 30fps constant at 1920 x 1080? Presuming it's legal, would I be better off jail breaking this phone and installing a mobile GNU\Linux distro? Is it possible that buying a new external MicroSD card for the Samsung would alleviate these problems? Would coughing up $250 for a GoPro be the only way to truly resolve this?
Please keep amateurs on extremely limited budgets in mind when answering this question.
BTW: This somewhat tangential, but I also have a Kodak Z980. Unfortunately, it does worse with audio/video synchronization than my Samsung Android...
[1] - I believe I paid full retail price for said phone on the Samsung website and use the phone as much for video recording as I do for cellular service.
[2] - Sorry, I don't have the best memory. I also have problems with the phone automatically adjusting the lighting and focus when it shouldn't, but that's really a different question.

mobile phones are not designed to be professional or even prosumer level video equipment.


text:
How did Sony VTRs use 'jog' data in 9-pin protocol?
This is pretty obscure, but there may be a fellow old-timer here with experience in VTRs and edit controllers.
In Sony P2 ("9-pin") protocol, the Jog, Shuttle and Var commands use two data bytes to express the desired speed, in a convoluted way that yields a range of .01x to 999,728x play speed (64 00 gives 1x play, for example).
Jog is a low speed affair, so most of this range is wasted. So my question is: Do 'Jog' (and Var) use a limited range of data bytes, or do they scale the speed after computing it from the full range of data bytes?
Any insights welcome.