text:
how do I can check whether a sound clip I want to use is copyrighted? (I want to use it in a video and an app also)
as mentioned in title, I want to be sure that a sound I found on youtube (2 seconds long) is copyrighted
(and also, if I will modify it (in audacity or something) will it still break copyright laws?)

Hire a specialist to clear the rights or create your own sound or contact the creator and just ask. The work is most likely copyrighted, unless the sound designer is long dead, e.g. more than 70 years or sth. similar depending on the country you live in. There are licenses that allow free usage under certain conditions (like Creative Commons) but those are little used. There are some exemptions in copyright law that would allow you to use the sound without permission, but without knowing all the details about your project and your country's specific copyright law this cannot be answered.

By the way, if the sound is merely a recording of something mundane, like a car driving by, it may not be copyrighted, because it's to trivial. But check your national copyright law if there is such a limitation stated.

https://www.youtube.com/watch?v=EDX_KXGHirE (the sound)

Please note, for this answer I use the term copyright as a synonym for whatever law is applicable in your country that deals with protecting intellectual property rights for creative works. Some countries use quite different names for such a law.
Here's a little guide how this topic can be approached. In a professional context, I advise to consult a specialist to clear the rights for you. When you can try to create as much creative content as possible on your own. However, when you decide to tackle the issue of clearing rights yourself this is how I would do it:

Check if the copyright has been expired. Read the law (or at least Wikipedia) to find out how long this time span is in your country. Usually, it's a very long time, so you will rarely find anything from the 2nd half of 20th century or newer with expired copyright.

Find out which copyright limitations or exemptions are defined in the law in your country (e.g. "fair use" in US law). Usually you don't have to ask the creator for permission to freely use their work as parody, in an educational context or when citing an excerpt, but pay attention to quote only the bare minimum.

In most countries there should be a threshold when copyright can be applied. Sometimes the work is so trivial that it shows not enough merit to be protected by the copyright law. In some countries the threshold is very low and you have to read a lot of court decisions to get a good grasp how this is interpreted in practise. If we take a look at your example, after hearing it several times, I am somewhat sure that it is not a simple, plain recording. Either they have created the sound digitally or invested some energy in cleaning up and tweaking a recording. This probably means it has enough merit to be protected. This is my opinion based on what I know how such a case might be judged in my country and if it applies to yours too, you have to decided for yourself.

If none of the above conditions are fulfilled or you are unsure (for example in case of orphaned works), it is safe to assume that the work is protected. If you still want to use the work, check what license options are available. Sometimes Creative Commons allow you free usage of the work but you need to carefully follow every condition they make. Creative Commons comes in various versions and variants. Especially for commercial projects their conditions are often hard or impossible to fulfill. When you do not find any license information, you can always try to contact the creator and discuss business and agree upon a contract for your situation. It will probably cost you a bit but usually you are on the safe side with a contract. If you do not know much about contract law, it will be best to hire a lawyer. However, you have to make sure you are talking to the rightful copyright owner, not to someone who has just published the work with or even without permission and pretends to be the owner. For the example you have provided in the comments to your question, I have my doubt how well such an agreement works, as this person has no contact information on their channel which indicates a non-professional context. This always complicates things.

Do not use YouTube to search for sounds when you need them published along with your own work even in an edited version, like in your case where you want to built an app and use the sound there and in videos. Use trustworthy sources instead, that means professional sound libraries with clearly stated terms of service and license terms. Besides, maybe you already have access to royalty free sounds without knowing it via some software subcription you may have. For example, Adobe offers such sounds when you are a subscriber to their Creative Cloud.

I will not give legal advice how to proceed, but my general recommendation is to look for sounds at some better place, as described in step 5 above, because buying a proper license from this YouTuber person might be hard work. I guess they are not prepared for such a scenario and have no contracts ready, no license terms, etc.


text:
Video format for instagram
I need convert to the .mp4 video with this requirements.
Container: MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file.

Video codec: HEVC or H264, progressive scan, closed GOP, 4:2:0 chroma subsampling.

What is means?

If we explain everything in detail, it will result in a lengthy text, so could you tell us what exactly is unclear? I mean you can google most terms and should find a good answer about what they mean. Or is your question more about how you do that with ffmpeg?

Thanks for help.I need convert video file with the current requirements what I wrote. By service or ffmpeg console command it doesn't mater right now

"no edit lists, moov atom at the front of the file" and "progressive scan". I dont know what it means

Edit lists is a feature, that allows you to edit videos without re-encoding. For example, you want to remove a scene, make your edit points which are written into the container file. A video player reads those instructions and just such parts of the video. However, not many players seem to support that feature, nor does Instagram, so simply don't use it. I think it's not possible with mp4 only with mov anyway, so nothing to worry about.
The moov atom contains information how to play the video (duration, fps, etc.), it needs to be at the beginning in this case, which allows to start playing the video over the internet immediately while more data is loaded. In contrast, when the moov atom is at the file's end you need to wait until the video has been fully downloaded/buffered. The moov atom is rarely an issue in practice, most editors don't even allow to configure it and just put it at the front of the video file after the encoding is done. With ffmpeg you have control by using certain flags (I think -movflags faststart).
Progressive scan is the usual way to present a video on progressive screens (which means any screen in any modern device). There is also interlaced which is still somewhat relevant as a legacy format for TV but should always be avoided in the web. The difference is that progressive scan works with a full image per frame whereas for interlaced scan two half fields are combined into one image. Interlacing worked well on old CRT monitors, but not on modern devices. Both of these variants are often marked with a little suffix after the resolution of a video. For example you will see 1080p, referring to a video with a resolution of 1920x1080 using progressive scan, or when you see 1080i it means again a resolution of 1920x1080 but using interlacing. When creating video projects or creating a sequence where you put clips together or before export you may be asked to select profiles. Just make sure you always pick one of the progressive profiles where resolutions have the little p as suffix. Some tools may omit the distinction if they only support progressive scan.

source: Stack Exchange

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

sort: votes


text:
ffmpeg: concat without temp files?
Is it possible to concat without temp files using ffmpeg?
eg;
# nice ffmpeg -v error -f concat \
  -ss "52.519" -copyts -to "53.153" -i in.mkv \
  -ss "53.186" -copyts -to "390.690" -i in.mkv \
  -ss "464.264" -copyts -to "2831.331" -i in.mkv \
  -c copy out.mkv < /dev/null
Invalid duration specification for ss: "52.519"

if so, what is ffmpeg version 4.2.4 complaining about?
the "duration specification" is valid when using temp files followed by concat.
mkvtoolnix is able to do this btw.

If I understand the question correctly: yes! You can create a file that is a concatenation of different parts of the input video.
The script you're looking for is something like:
ffmpeg \
-i "$INPUT_FILE" \
-filter_complex \
"[0:v]trim=start=5:duration=10,setpts=PTS-STARTPTS[v0]; \
 [0:a]atrim=start=5:duration=10,asetpts=PTS-STARTPTS[a0]; \
 [0:v]trim=start=20:duration=10,setpts=PTS-STARTPTS[v1];
 [0:a]atrim=start=20:duration=10,asetpts=PTS-STARTPTS[a1]; \
 [v0][a0][v1][a1]concat=n=2:v=1:a=1[final]" \
-map "[final]" concat-video.mp4

You can read a little bit more about this on this blog post
(Disclaimer: I'm one of the co-founder of https://mediamachine.io)
Hope this helps!

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


text:
How to losslessly replace a specific area in a range of frames
I have a short screen recording of an old video game (duration 1:38.72, 2468 frames, 25 fps, 320×200 px, 4 colours only, bgr24, CamStudio Lossless Codec, no sound, AVI).
The video contains an incorrect area (static, 16×16 px, top left corner at [136, 144]) in a range of frames (starting at 0:43.88 and ending at 1:38.44).
I'd like to replace that area in that range with correct data, everything losslessly.
I searched for "replace area in range of frames" on this server but didn't find anything.
Would you know how to do that with free software on Windows please? Maybe FFmpeg?

I don't know if FFmpeg supports the Camstudio Lossless Codec, but if it would. Then replacing the area with a PNG file (hence: adding a logo) could be a solution.
The explanation is done here at "Timing the overlay".
https://superuser.com/questions/683643/how-to-add-my-logo-for-the-first-30-seconds-in-a-video-with-ffmpeg
In that example codec:a copy was already given (for audio). If you would take any lossless videocodec the result will be lossless.

I'm surprised the overlay filter processing does not take place at RGB or YUV444. Great catch.

Thanks for pointing me to overlays, Skinkie!
I've checked Low power's answer at ffmpeg - how to apply filters without losing quality and overlays in FFmpeg documentation.
The command that will do the magic is:
ffmpeg -hide_banner -i input.avi -i patch.png -filter_complex "[0:v][1:v]overlay=136:144:enable=between(t\,43.88\,98.44):format=auto" -f yuv4mpegpipe -pix_fmt yuv444p output.y4m

OK, it's not exactly lossless because the color space conversion from bgr24 to yuv444 alters the colors slightly. But I still internally consider it lossless because no artifacts are introduced and the output still has exactly 4 colors. :-)

I would use Davinci Resolve to do this.
It is free, runs on windows, and has great object removal tools.


text:
How do you batch resizes of Genesis videos in FFMPEG?
I am trying to a create 4:3 video upscale encodes with Sega Genesis videos that are usually around 320 x 224 using FFMPEG. While I had been advised to use FFMPEG (and AVISynth) in the past, it was only until fairly recently that I started it to use it and I am still learning about FFMPEG. Prior to using FFMPEG, I mostly used a setup where I used Virtualdub2 to do two resize filters (Nearest Neighbor; Lanzcos3) while using "compute from height ratio" on the second resize filter. I had been looking for better methods to upscale my videos while still maintaining the quality of the videos. Here are some of the methods tried using the resources I found on the internet:
ffmpeg i -s 1440x1080 -sws_flags neighbor -c:v libx264 -pix_fmt yuv420p -c:a aac -b:a 256k
ffmpeg -i mysourcevideo.avi -vf scale=1600:1120 -sws_flags neighbor -c:v libx264 -crf 10 -c:a aac -q:a 2 outputfile.mp4
These methods appear to work but the thing is I am working with pixel art form older videos and I do not what methods work those kinds of systems. I also learned that while some older consoles can upscaled to 4:3, not all may look good for those for video streaming. I could be wrong or at least inaccurate but what FFMPEG settings that I can use to upscale Genesis (both emulated or otherwise) videos? I also want it pixel accurate with Nearest Neighbor/PointResize, YUV420, AAC with an MP4 container.

What have you looked into so far? Any searches you've done? Any things you've tried?

I looked to sites like TASvideos where they gave me a FFMPEG script for some good encodes.  I also looked to other video forum sites where I can find more tips on FFMPEG encoding. They seem to work but I am looking for somethign that can account for all Genesis video dumps.

You can edit your question to include things you've tried. "they seem to work but" : please write in your question what commands you've tried that seemed to work, but could not account for all genesis video dumps. No need to write "edit", "update", just update your question as if you're asking it for the first time, but with all the relevant details.

Okay I will do that.


text:
Audio clipping after amerge in FFmpeg
Hoping someone out there can help me with this audio issue I'm having using FFmpeg. I've written a bash script using FFmpeg that processes as source a broadcast quality ProRes (HQ) file with four mono tracks of audio. Source audio is LPCM 24-bit, 48kHz signed little endian, and I am exporting the same. Track 1 is full mix left, track 2 is full mix right, track 3 is music/FX left and track 4 is music/FX right. The script takes the source video and trims the video asset using in and out points from a sidecar XML. It also adds a custom slate at the head that uses a separate slate-only MOV file and is joined together via concat. Custom text is added to the slate via the drawtext filter and, finally, audio tracks 3 and 4 are removed and tracks 1 and 2 are merged together into a single stereo interleaved track using amerge.
All of this, seemingly, works like a charm. The problem I'm noticing occurs when I run the resulting export through our in-house QC software. This software detects audio signal clipping at multiple points throughout the file created by FFmpeg. When I create this exact same file via Adobe Premiere or another transcode system, our QC does not detect any clipping. Our QC tools also do not detect any clipping in the source file. This leads me to believe that the clipping is being introduced either by FFmpeg or by my implementation of it. I've tried multiple additional filters within FFmpeg, including pan, amix, volume, etc., but nothing seems to help.
Anyone have any ideas? Pasting the relevant section of my script for reference:
ffmpeg \
-ss "$hour":"$min":"$sec""$mil_fin" \
-t "$hour_minus":"$min_b":"$sec_b""$mil_fin_b" \
-i "$vid" \
-i "$elements_path"Slate_HD.mov \
-filter_complex \
"[0:a:0] [0:a:1] amerge=inputs=2 [stereo]; \
[1:0] [1:1] [0:0] [stereo] concat=n=2:v=1:a=1 [v] [a]; \
[v]drawtext=enable='between(t,0,28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170:text='$title', \
drawtext=enable='between(t,0,28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170+50:text='Series $series_number Episode $episode_number', \
drawtext=enable='between(t,0,28)':fontfile="$fonts"Arial.ttf:fontsize=50:fontcolor=white\
:x=170:y=170+150:text='$transcode_date', \
yadif=0:-1:0 [o]" \
-map '[o]' -map '[a]' \
-timecode 09:59:30:00 \
-c:v prores_ks -profile:v 3 \
-c:a pcm_s24le \
-threads 3 \
"$output_name".mov


text:
Why does a h264 encoded video recorded with HTML MediaRecorder on an Intel macbook not play on an m1 macbook with hardware acceleration enabled?
I've reproduced this issue in a simple sandbox: https://codesandbox.io/s/practical-driscoll-veyc2 (you'll have to open https://veyc2.csb.app/ in a new tab to have the screen recording functionality to work).
When using this sandbox to encode the mediastream to video/webm;codecs="h264", the resulting video plays fine on a Macbook Pro with an intel chipset. However, when transferring that same file to an m1 macbook with hardware acceleration enabled, the video fails to play. You can transfer it by right clicking the video player, show controls, then press download under controls.
When disabling hardware acceleration, or when creating a new recording and encoding it to h264 from that same m1 machine, the video plays fine.
Why does a h264 encoded video recorded with HTML MediaRecorder on an Intel macbook not play on an m1 macbook with hardware acceleration enabled?

Contact Apple for support. Your question is off-topic here as it's not about video production but about a problem/limitation with your device.

It's a problem with the encoding though, rather than decoding, since other h264 videos not created (produced) using mediarecorder work fine

If you believe it's more likely to be MediaRecorder's fault, you could file a bug report there. The fact remains this question isn't really suitable for the site, no matter if it's a device limitation or software bug. Try other tools in the meantime.


text:
Create own "insert clip" macro like "add image sequence" in kdenlive
I would like to write an own script/macro/program/command similar to the "add image sequence" command. The main purpose is to insert portrait mode photos into the timeline, which are displayed on a side-by-side layout (two photos on one slide).
Inserting this layout into the timeline by mouse and keyboard is quite a mess, though possible, so I think this could be automated in any way.
Is this at all possible, and if so, where can I find additional information on scripting kdenlive?
EDIT: If I could not describe my idea very well, see this short video clip on Youtube.


text:
Converting m2ts to mp4 with ffmpeg I get empty date fields
I am trying to turn an m2ts to an mp4 and add geotagging metadata to it in the process.
I am using the following command
ffmpeg -i input.m2ts -movflags use_metadata_tags -map_metadata 0 -metadata location=41.380+2.180 -metadata location-eng=41.380+2.180 -vcodec libx264 -crf 20 -acodec ac3 output.mp4

Here's the exiftool info of the source m2ts (with grep for Date):
[File]  FileModifyDate         : 2011:10:09 20:39:52+02:00
[File]  FileAccessDate         : 2021:05:01 17:00:35+02:00
[File]  FileInodeChangeDate    : 2021:05:01 17:00:35+02:00
[H264]  DateTimeOriginal       : 2010:05:10 17:08:03+02:00

And here it is for the destination mp4 file:
[File]          FileModifyDate          : 2021:05:01 17:29:21+02:00
[File]          FileAccessDate          : 2021:05:01 17:28:59+02:00
[File]          FileInodeChangeDate     : 2021:05:01 17:29:21+02:00
[QuickTime]     CreateDate              : 0000:00:00 00:00:00
[QuickTime]     ModifyDate              : 0000:00:00 00:00:00
[QuickTime]     TrackCreateDate         : 0000:00:00 00:00:00
[QuickTime]     TrackModifyDate         : 0000:00:00 00:00:00
[QuickTime]     MediaCreateDate         : 0000:00:00 00:00:00
[QuickTime]     MediaModifyDate         : 0000:00:00 00:00:00
[QuickTime]     TrackCreateDate         : 0000:00:00 00:00:00
[QuickTime]     TrackModifyDate         : 0000:00:00 00:00:00
[QuickTime]     MediaCreateDate         : 0000:00:00 00:00:00
[QuickTime]     MediaModifyDate         : 0000:00:00 00:00:00

These fields with 0's are a problem for me (Google Photos will think the file was created in 2021 instead of 2010).
I expected the Date/Time Original field to be copied over either as it is, or its value to go into the Create Date field of the mp4.
Any idea of how to get the value of Date/Time Original into the Create Date, keeping in mind that I am trying to automate a process and use this process to, umm, process tens of thousands of files ?
Thank you.

It would be useful to know the actual location of that tag. By default, exiftool only lists descriptions (see FAQ #2).  Try this command on the file to see the groups the tags belong to as well as tags will duplicate names exiftool -time:all -G -a -s file.m2ts

@StarGeek I have updated the question with the info you asked for. All those quicktime tags, no idea where they come from, and why the DateTimeOriginal tag isn't copied over, which is what I was hoping for.

The Quicktime tags are all part of the MP4 format.  In this case they're all unset, which is why they're all 0s.  The DateTimeOriginal in the original is part of the Modified Digital Video Pack Metadata.  You'll have to check to see if it's supported by FFMpeg.  I wouldn't know how to deal with it in FFMpeg but you could batch copy it with exiftool with exiftool -TagsFromFile %d%f.m2ts "-AllDates<DateTimeOriginal" -api QuickTimeUTC /path/to/files/  That command assumes the m2ts and mp4s are in the same folder.

ffmpeg didn't seem to be able to copy over the DateTimeOriginal tag, and Google Photos didn't seem to read it anyway from m2ts files, so I ended up having to turn all m2ts files to mp4, even those who had all the metadata I wanted. I wrote my own bit of software to call ffmpeg because I wanted to do some more stuff and needed a UI. Thanks for your answers !!

@StarGeek you can post a reply so I can mark it as the correct one.

I don't really know what answer you pulled out of that.  You can write up what you came up with and mark your own answer as the correct one.  See Can I answer my own question?


text:
Kaomoji characters on Text object
I'm having problems rendering Kaomoji characters using Premiere's text tool, I'm working on a windows environment. if I copy-paste the Kaomoji below:

٩*ˊᗜˋو

It is rendered like this:

On the effects panel it is shown properly though:

I've tried many fonts even installed fonts that claim to support Kaomoji but the issue persist. Maybe I should tweak some text configuration setting which I'm not aware of?

Get them to work in TextEdit first (assuming you're on a mac).
Check exactly which font works in TextEdit.
Then try that font in Premiere when copying the characters from TextEdit using "paste and match style" into a text box.
If that doesn't work, you might have to export from textedit as a PDF, then import the PDF in Premiere (but this means the text will no longer be editable in Premiere).

I'm working on windows environment :(

apologies - you did say that.

No, I didn't, I edited my post after your answer :) regardless, no need to apologize maybe your answer is usefull for other users with my problem.


text:
Why is animated SVG not used for streaming cartoons?
Considering that, per https://video.stackexchange.com/a/18726/34808, animated .SVG can be used (even across the internet, via browsers) as a vectoral video format, why are cartoons not served to the user in this format?
Surely it would be significantly more efficient for the distribution company (Crunchyroll, Funimation, etc.) and a superior experience for those with high-resolution displays and/or slow internet connections?

There are multiple reasons.

Anime and cartoons are not created for the web.
They are mostly created for TV and broadcasted there, and TV simply don't support SVG most of the time.
Even today, Anime is mostly drawn. So SVGs would be require fitting to the source image.
This process is prone to errors and artifacts, and usually doesn't look that good.
Some of them use 3D or 2D models, but they still require rendering, therefore the same limitation applies.
SVGs require quite a bit of math to render on the client, so streaming the latest episodes on your phone would be extremely wasteful and probably impossible.
SVGs are extremely limited in supported shapes and colorization.

The only way to get rid of the limitations of SVGs and make it work in this context, would be to send about 2 million tiny rectangles.
We could call them pixels, which brings me to my last point:

SVGs are extremely wasteful. Normal video is compressed to save bandwith, SVG uses big shapes and options for customization to optimize.

<rect x="100" y="100" width="100" height="100" />

This is the simplest rectangle in SVG i know of. You could use 2'000'000 of these for your initial frame.
Add attributes for coloring and you have your first frame.
Then continue by adding animations.
That would require about 60Mb for your first frame (if it's completely black).
SVG would be producing the amount of data Crunchyroll uses for an episode, but within a couple of frames.
Edit:
SVG simply has different applications than video.
Modern containers and codecs are highly optimized toward video production, while svg excels in simple shapes and logos.
I would shake my had and walk out if the graphics designer would bring me the new logo as a png.
And I would do the same if an Animation studio would provide me with animated SVGs as videos

Thanks, lots. That was quite concrete.

https://www.reddit.com/r/anime/comments/16v8xa6/comment/k2pj6xh/?utm_source=share&utm_medium=web2x&context=3

Anime isn't drawn with vectors. You would need to reinvent every animator, studio workflow just to make happen what you are proposing.

https://www.reddit.com/r/anime/comments/16v8xa6/comment/k2pj6xh/?utm_source=share&utm_medium=web2x&context=3

Anime is not produced with vector images. It would look no different in high res screens.


text:
What variables are permissible in OBS's "Filename Formatting" field?
I want the default filename to be ISO 8601-1:2019+A1:2022-compliant (because adhering to the ideal, RFC 9557, is infeasible). However, I've been unable to ascertain whether a variable exists for a numeric timezone. Usually, this is %Z, but this outputs GMT for me, instead of the desired +0000 (expanded, +00:00) as would be specification-compliant. The best that I've achieved in this case is +%CCYY%MM%DDT%hh%mm%ss%Z.
For this use case and others, I want to more broadly know how to ascertain which values are permissible (and, ideally, what values they are able to output). I expect documentation to exist, but I've been unable to locate any.

Per a helpful answer from reddit (paraphrased):

If you mouse over the filename box, a list of variables should pop up (does on Windows, version 24.0.3).

...I've been able to acquire a list of valid variables, which I've formatted nicely (as an HTML table) at gitlab.com/-/snippets/4772474.
However, SE doesn't permit ths in a tbody, so I've provided them undermentioned as YAML:
#!/usr/bin/env -S xdg-open
"%CCYY": Year, four digits
"%YY": Year, last two digits (00-99)
"%MM": Month as a decimal number (01-12)
"%DD": Day of the month, zero-padded (01-31)
"%hh": Hour in 24h format (00-23)
"%mm": Minute (00-59)
"%ss": Second (00-59)
"%%": A % sign
"%a": Abbreviated weekday name
"%A": Full weekday name
"%b": Abbreviated month name
"%B": Full month name
"%d": Day of the month, zero-padded (01-31)
"%H": Hour in 24h format (00-23)
"%I": Hour in 12h format (01-12)
"%M": Minute (00-59)
"%p": AM or PM designation
"%s": Time in seconds since UNIX epoch
"%S": Second (00-59)
"%Y": Year, last two digits (00-99)
"%y": Year
"%z": ISO 8601 offset from UTC in timezone
"%Z": Timezone name or abbreviation
"%FPS": Frames per second
"%CRES": Base (canvas) resolution
"%ORES": Output (scaled) resolution
"%VF": Video format

Ultimately, %z provides what I desire.


text:
How can I add video effects like these to my video
I want to add a beginning like in this video

Which software should I use?
I am completely clueless. Help

Everyone's clueless when they start. Dive in :)
I reckon this was made with Adobe After Effects.
It's a combination of shapes, masks, and text animating on, with lots of easing and bouncing on the movement.
This is a great but old free tutorial on the basics of after effects:
https://www.videocopilot.net/basic/
The easing and bouncing might have been done manually, but more likely using something like the Mt MoGraph Motion plugin.

There's nothing in this intro which requires After Effects, specifically, and plenty of alternatives are available.  Apple Motion is an easy one if you're on a Mac.  BlackMagic Fusion is less easy, but cross-platform, including Linux, and there's a free version.

The question was "which should I use".. Which is personal preference at the end of the day.. If you have useful links for the poster to follow based on those packages, please add them as another answer.

No, the question was "How can I.."  if it were "which should I use," I would've flagged it for being opinion-based.  Your answer expresses an unsolicited personal opinion.  A better answer would not.

Please add your better answer.  I wish you well.

I am so happy that you answered my naive question.


text:
How to convert ProRes/Quicktime MOV to instagram-friendly with ffmpeg so I can post it on IG
My colleague made a really nice video to hype my record release. The file he exported is a 1.3GB MOV file, and appears to use the Apple ProRes codec in a quicktime container (I have no idea what this means). My goal is to post this video on instagram, which refuses to let me select it with a desktop browser.

If I visit instagram in my desktop browser (ubuntu using latest firefox), I can browse for the video, I can choose it, but when I click OK, instagram simply ignores the video I've chosen, and the prompt to choose a video just stays the same.
I have tried uploading this video using the instagram app using my phone. Sadly, I can't seem to get the video into my Photos app. When I download to my phone using the WeTransfer link he sent me, it ends up in the Files folder and, curiously, i when i try to play it there, i can hear the audio but not see the video. I tried to share the video from Files and chose instagram. This seems to sort of work, but the file upload never seems to complete, and this approach completely fails to make use of my high speed internet connection, averaging a paltry 3.5 Mbit/second or so.
According to this adobe page, one should use these parameters if you want to get the video into instagram:

mp4 format
AAC audio
3500 kbps bitrate
30 fps (frames per second)
Maximum of 60 seconds long
1080 pixels wide (max)
1920 pixels tall
H.264 codec

The problem seems to be a combination of instagram hating my video format and the file being too large to upload in a reasonable time frame. I'd like to try and convert it using FFMPEG on this ubuntu workstation to the parameters above. I know it's a bit long, but I'd like to try a straight conversion without cropping the ends first.
Can anyone help me cook up the right command? Seems like we need to change the codec to h.264, change the audio from pcm to AAC, and set the 3500 kbps bitrate. Any help would be MUCH appreciated.
EDIT: I've been searching for a suitable ffmpeg command and one i found here seems pretty close:
ffmpeg -i {in-video}.mov -vcodec h264 -acodec aac {out-video}.mp4

I'm not at all sure that will do the trick but it does appear to be converting to h.264 and audio to AAC. However, the output from the command looks like the bitrate, 4577kbps, is too high.

For a web-compatible encode, you will need the video stream to have a yuv420p pixel format. ProRes, as a editing codec, uses different pixel formats.
Use
ffmpeg -i in.mov -pix_fmt yuv420p -c:v libx264 -b:v 3500k -c:a aac -movflags +faststart out.mp4

The input framerate should already be between 25-30, as exported by your friend, as well the resolution. Bitrate values for streaming services are typically recommendations, not a requirement.

THANK YOU for this detail. I used your command here, and was still unable to post the video with a desktop web browser, but I was able to put the resulting video on a google drive and download it from there to my phone, where the iphone liked it much better. I was subsequently able to post the video with the instagram app on my phone. REALLY ANNOYING that I can't post this via desktop browser though. Youtube is SO MUCH BETTER designed.


text:
how to extract segment of input.mov, loop an image at the end, and then replace audio with segment of audio file?
I've got a movie that I captured with my iphone. Let's call it input.mov. Having edited this video using my iphone, it appears to have dimensions of 1370x970, at least according to the iphone's information panel.  I also have some audio in a separate file, let's call it song.wav.
I want to:
STEP 1) extract the middle of input.mov, trimming off the first 14 frames or so (0.45 seconds) and the last few frames (not sure how many yet)
STEP 2) loop an image, text-image.jpg for 3 seconds and append the resulting video to the end of the trimmed output of STEP 1
STEP 3) extract the middle part of song.wav, let's say starting at x seconds and running just long enough to replace the audio of the video yielded by STEP 2. I.e., the song will be too long; I want just enough of the song to match the video's length.
STEP 4) output the whole resulting video in a format I can upload to instagram using a browser.
I've used some handy commands before, but I can't seem to combine them to get the results I want. This command works to trim off the beginning of input.mov and output an instagram-friendly result.
ffmpeg -ss 00:00:00.45 -i "input.mov" -pix_fmt yuv420p -c:v libx264 -b:v 3500k -c:a aac -preset slow -movflags +faststart "trimmed-instagram.mov"

Working from that trimmed video, I try this command to loop text-image.jpg as suggested here:
ffmpeg -i "trimmed-instagram.mov" -loop 1 -t 3 -i "text-image.jpg" -f lavfi -t 3 -i anullsrc -filter_complex "[0:v] [0:a] [1:v] [2:a] concat=n=2:v=1:a=1 [v] [a]" -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" with-text.mp4

That command always barfs with this error:
[swscaler @ 0x564345f8a340] deprecated pixel format used, make sure you did set range correctly
[Parsed_concat_0 @ 0x56434572ee00] Input link in1:v0 parameters (size 1370x970, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1370x970, SAR 9974:9977)
[Parsed_concat_0 @ 0x56434572ee00] Failed to configure output pad on Parsed_concat_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #2:0
Conversion failed!

NOTE that text-image.jpg is 1370x970, like input.mov.
I've also used this command to replace the audio for some video:
ffmpeg -i trimmed-instagram.mov -i 'song.wav' -c:v copy -map 0:v:0 -map 1:a:0 -shortest with-audio.mov

However, I need to trim off the beginning of the audio file, and when I provide an -ss parameter, this command trims the beginning of both the video input and the audio input:
ffmpeg -i trimmed-instagram.mov -i 'song.wav' -ss 00:05 -c:v copy -map 0:v:0 -map 1:a:0 -shortest with-audio.mov

I need to specify different start/duration parameters at this point. I want all of trimmed-instagram.mov but want to start x seconds into song.wav and either go for some duration or use just enough of the song to match the video length.
EDIT: As suggested by @Gyan, I have tried this command:
ffmpeg -an -ss 00:00:00.45 -i "input.mov" -loop 1 -t 3 -i "text-image.jpg" -ss 00:05 -i "song.wav" -filter_complex "[1]setsar=1[img];[0][img]concat=n=2:v=1:a=0;[2]apad" -pix_fmt yuv420p -c:v libx264 -preset slow -b:v 3500k -c:a aac -shortest -movflags +faststart "final-instagram.mp4"

However, this also results in an error:
[swscaler @ 0x55573305b040] deprecated pixel format used, make sure you did set range correctly
[Parsed_concat_1 @ 0x55573303a880] Input link in1:v0 parameters (size 1370x970, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1370x970, SAR 132987:133027)
[Parsed_concat_1 @ 0x55573303a880] Failed to configure output pad on Parsed_concat_1
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #2:0
Conversion failed!

In one command:
ffmpeg
 -an -ss 00:00:00.45 -i "input.mov"
 -loop 1 -t 3 -i "text-image.jpg"
 -ss 00:05 -i 'song.wav'
 -filter_complex
 "[0]setsar=1[v];[1]setsar=1[img];[v][img]concat=n=2:v=1:a=0;[2]apad"
 -pix_fmt yuv420p
 -c:v libx264 -preset slow -b:v 3500k
 -c:a aac
 -shortest
 -movflags +faststart
 "final-instagram.mp4"

THANK YOU for your suggestion. I tried your suggested command but received an error: Input link in1:v0 parameters (size 1370x970, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1370x970, SAR 132987:133027)

Edited answer...


text:
Keep residual image of an element in a video
I have a video of a static background with a spider which is the only moving element.

The spider is going forward for a few seconds, then the video stops.
I want to summarize the video into a single image where the background doesn't change, but where we see each frame of the spider going forward, like a superposition. Something that I can illustrate with the following image:

I understand that I will probably need to downsample my video to a few frames, but I don't know how to do the rest. If needed I can put a green background like: (but I'd prefer not to)

EDIT: This is the kind of results that I am looking for

You ned to look for something about "image stacking"

You'll need to separate the spider from the background somehow. Then you can stack successive images of the spider on top of the initial background, and the previous spider image frames.
here's an ascii art representation
        sp5------------->
      sp4--------------->
    sp3----------------->
  sp2------------------->
sp1--------------------->
bg---------------------->

So on the first frame we see the BG with the first Spider frame composited above it. This frame is held, then on the next frame we add spider frame 2 and hold, then on the next spider frame 3 is added, and so on.
How you actually achieve this depends on the software you're using.

I can do it manually but actually I'd like to automatize it as much as possible. I can use softwares like Photoshop, Premiere, After Effect if needed.

You can script AE with extendscript to do this https://ae-scripting.docsforadobe.dev/


text:
How to display multiple lines of subtitles that have overlapping time on Youtube?
I have 2 subtitle entries that look like this in the srt file
00:10:15,60 --> 00:10:18,00
- We're good here in the sun, right?

00:10:15,80 --> 00:10:18,00
- You need some sunscreen? I got a 70 here.

As you can see, they overlap in time. When I test the subtitles with my KMPlayer, the result is:

The first sub appears at sec 15,60 on the second line on the screen
The second sub appears at sec 15,80 on the first line on the screen. They both disappear at sec 18,00.

When uploading them onto Youtube, in the Subtitles Edit window,  the first sub appears on the first line and the second sub appears on the second line of the screen, which is even better to read:

BUT in the actual YT video, the first sub appears at sec 15,60 and disappears right at sec 15,80 before the second sec appears, so the viewers could only see the second sub:

Is this a Youtube bug or somebody could show me how to fix this, please?

Have you tried asking on youtube forums?

Yes I did, but I got no answer there.


text:
Video Stream Loop FFMPEG for YouTube, what is missing here?
I am using FFMPEG for streaming 24/7 mp4 video on youtube.
The video is somewhere in 2 minutes, the stream starts but does not go on replay, what should I do?
I am using this code:
@echo off
d:
cd "D:\ffmpeg"
ffmpeg -stream_loop -1 -i 1.mp4 -c:v copy -c:a copy -f flv rtmp://a.rtmp.youtube.com/live2/my_Secret_key


text:
Is copyright infringed when any animation is redone?
Is copyright infringed when any animation is redone and not literally copy cut pasted but if the whole animation is done from scratch with different colours and different background but if the creative concept in general is the same? It is possible that an animated segment looks very similar to another one but has maybe more objects different colours and background. Will it still be an infringement of copyright?
The animation made will be for an educational purpose but if uploaded on YouTube may/may not lead to monetisation....

What’s protected copyright and what’s permissible on YouTube are two different things.

I agree with @JasonConrad, YouTube is using automatic solutions to flag content and they don't take the nuances and limits of the law into account. However, it happens typically when you use other peoples' audio/video and integrate it in mostly unchanged form into your own video. When doing an animation yourself, no such flagging should happen if you do the animations like you said, because it will look too different for the algorithm. There are YT channels where they recreate VFX from movies and even show the original scene (keeping it short) without any problems.

Copyright laws or similar intellectual property laws usually protect creative works or excerpts from such works but not the ideas nor techniques that were used to create these works.
What you intend to do should be safe. Compare it with writing a story, where the final work is of course protected, but not the language itself, nor the plot ideas, structural decisions etc. Likewise, the steps to achieve a certain animation are not protected.
However, there is one tiny exception: source code. Some animation tools, like After Effects, let you write short scripts or expressions to enhance animations. Theoretically the code can be protected by copyright, but only if the code shows enough originality. There is a certain threshold of originality required to be protected, however it depends on the individual case where the threshold is. As a rough rule of thumb, if there are only a handful of lines of code then the script will most likely be too trivial to be protected. Also, if there are no alternative ways to write such a script because the environment dictates the lines of code, then you can safely copy and paste other people's code. Most of the time this will be the case.


text:
FFMPEG 9600x1080 5 video
FFMPEG 9600x1080 5 video stitching outputs black video
Hello everyone. I’m trying to merge 5 1920x1080 videos into a one big 9600x1080 clip. I’m using FFMPEG for it with the following script:
ffmpeg -i 1.avi -i 2.avi -i 3.avi -i 4.avi -i 5.avi -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih[1v][0v];[2:v][0v]scale2ref=oh*mdar:ih[2v][0v];[3:v][0v]scale2ref=oh*mdar:ih[3v][0v];[4:v][0v]scale2ref=oh*mdar:ih[4v][0v];[0v][1v][2v][3v][4v]hstack=5,scale='2*trunc(iw/2)':'2*trunc(ih/2)'" 5vid_final.mp4
pause

I’ve also tried a simpler method:
ffmpeg -i 1.avi -i 2.avi -i 3.avi -i 4.avi -i 5.avi   -filter_complex hstack=inputs=5 s5.mp4
pause

they both seem to work, but the problem is that when I play these files I get a black screen.
I’ve tried stitching 4 videos (using the same commands as above) and I get propper playback, but when I add additional input, the output file is black during playback.
Video details claim that the resolution is as it should be (9600x1080) which leads me to believe that it may not be FFMPEG’s fault? Or maybe it is?
I don’t even know how to check what’s causing the problem. Maybe someone has a verified 9600x1080 sample video or know where I could get one to try and play it locally?
I would be grateful for any assistance you could spare.
Best regards
RafałT
p.s.
I could try and post my vid and maybe someone could check if it's viewable? If someone would like to help, I could post it somewhere online.

That resolution is above H.264 level limits. ffplay should still play it. Maybe VLC too

You dear Sir are a FREAKIN' genius! Thank you soooo much! I’ve tied using ffplay and it worked! I’m so happy. Thnak you again!
Topic closed.

This is likely not the fault of ffmpeg or VLC, but the specified resolution is above H.264 limits, as Gyan says in the comment. H.264 Max Resolution says the max resolution would be 9437184 luma sample rate (samples per frame), and while your resolution of four videos is 7680x1080 = 8294400, five videos is 9600x1080 = 10368000 which is above the limit. That is a huge resolution that may be supported by some decoders but is technically invalid.
If you really need such huge videos, look into HEVC, which at the max level supports up to 4278190080 luma sample rate.

Thanks to @Gyan I was able to solve my problem. Guess VLC isn't natively able to support such resolutions. Maybe there's an option somewhere to do it, but ffplay works out-of-the-box so I won't be pursuing other routes.
Topic closed.
Thank you again @Gyan


text:
Problem combining multiple filters with ffmpeg
I'm trying to generate a video file out of 3 files:
file #1 and #2 are both dynamically generated image list file;
file #3 is a dynamically generated pcm file;
I need to slow down or speed up the final video based on user input, for this I use setpts and asetrate, so for example the commands below generates a final file called video3.mp4, which is exactly what I need:
ffmpeg -f concat -safe 0 -i file1.txt -f s16le -ar 11025 -ac 1 -i file3.pcm -filter_complex "[0:v]setpts=PTS/0.4[final], [1:a]asetrate=4410[audio]" -c:v libx264 -preset veryslow -crf 0 -map "[final]" -map "[audio]" video.mp4 -y
ffmpeg -i video.mp4 -f concat -safe 0 -stream_loop -1 -i file2.txt -filter_complex "[0:v][1:v]overlay=shortest=1[final]" -map "[final]" -c:v libx264 -preset veryslow -crf 0 -map 0:a video2.mp4 -y
ffmpeg -i video2.mp4 -filter_complex "[0:v]scale=480:-1:flags=neighbor[final]" -map "[final]" -c:v libx264 -preset veryslow -crf 0 -map 0:a video3.mp4 -y

as I said, the final output (video3.mp4) is exactly what I need but I didn't want to run 3 separated commands to get it, so I tried to combine it all into a single command but it does not output what I need. The issue I have is that the overlaid file (file2.txt) is out of timing.
For example, this is the content of file2.txt:
file 'image1.png'
duration 1
file 'image25.png'
duration 1
file 'image37.png'
duration 1
file 'image75.png'
duration 1
...

so it basically needs to overlay a new image every 1 second but if I combine the commands it gets completely out of timing...
this is the command I I have:
ffmpeg -f concat -safe 0 -i file1.txt -f concat -safe 0 -stream_loop -1 -i file2.txt -f s16le -ar 11025 -ac 1 -i file3.pcm -filter_complex "[0:v]setpts=PTS/0.4[setpts],[2:a]asetrate=4410[audio];[setpts][1:v]overlay=shortest=1[overlay];[overlay]scale=480:-1:flags=neighbor[final]" -c:v libx264 -preset veryslow -crf 0 -map "[final]" -map "[audio]" video.mp4 -y

so do I really need to run separated commands or am I missing something in the combined one?


text:
How to add timecode for time-lapse video
I recorded a video from 6:50 pm to 10:50 pm. Then I shrinked the video from 4 hrs to 1 min 40 seconds.
Now I'd like to add timecode on this video to show the real time,
I've tried to put timecode in a single sequence - drag it into the main video sequence - speed it up,
but the duration of the first sequence is too long (4 hrs), I can only shrink it down to 5 min 57 sec(10000%) at most, still way longer than my video length 1 min 40 sec.
Just wonder if anyone know how to add the timecode for it. Thanks in advance!

Eventually I nested this video TWICE to speed it up


text:
How to make DVR-generated MP4 easily playable in Windows?
I have a HAR324-8 DVR, and when I export a video clip, I get an MP4 that I cannot play with Windows Media Player 12, Chrome, or Edge browser. When I open the file with VLC Media Player 3.0.16, it will play a few frames before VLC crashes.
Oddly enough, I am able to upload the file to Google Drive and after a while, it seems there is some processing done in the background (I'm not sure what) but it will then allow me to play the MP4 I've uploaded using Chrome or my Pixel phone.
Can someone tell me what is happening and how I can get this file converted to a format that can easily be played by any general-purpose OS/smartphone without needing to download additional codecs? Is there software that can be purchased that will allow me to analyze and convert this file to something playable by most platforms out of the box?
Here is a sample clip:
https://drive.google.com/file/d/1ihj0mWhldg8VhysxGS2aXFsefMgx1oxb/view?usp=drivesdk

As this should not be a problem, I can only assume there is either a fault with your DVR or your machine. Having some error messages could help, but really it's not a question of "how to make DVR generated mp4 playable" and more troubleshooting your setup.
I'd be surprised if there was anything in your Google Drive that was processing your file, so perhaps your computer has a problem in reading a file from certain locations?
There are various codec converters available that will transcode to the format of your choice, assuming they can successfully read the input.

Is there a program you could recommend for transcoding this file. I was worried that this DVR might have been creating invalid MP4s. Or would you know how to prevent VLC from crashing?


text:
How can I animate reputation changes in Stack Exchange?
I'm making a YouTube video on discrimination, and among other things I'll explain this study which shows anti-female bias against new female StackExchange users, but pro-female bias toward experienced female StackExchange users (i.e. high reputation users with female usernames).
I'm thinking of animating it using the below picture, where the user upvotes Bruce's question, and Bruce's reputation increases to 11. Thereafter the reputation of both rapidly increases to 1000 (i.e. both become high reputation users). And then Emily receives an upvote, bringing her reputation to 1010.

How can I do so? I am using ShotCut. After doing some internet searches, I think the timer filter can be used to animate the reputation increase, but I'm not so sure how to animate user clicks short of manually creating a HTML/Javascript page and then recording my screen. Most of the videos on animating user clicks in ShotCut explain how to add pre-recorded "click on YouTube subscribe" buttons to one's video.

While the context is interesting, in essence you're looking for two things: 1) animate a user clicking a button and 2) animate an (increasing) number counter. If you do a web-search for both (button, counter), what methods did you find? What issues did you encounter? Please edit your question to include these things.

The reason I ask, is because someone could write a whole answer, only to find that you've looked into that already and that didn't work for your because of certain reasons (e.g. no after effects, technique does not work for your case, etc...).

I completely forgot/didn't realize the points you mentioned. Just edited my question. Many thanks, @SaaruLindestøkke


text:
Join video-file m4v and audio file m4a. to make a mp4?
What is best way, to join a Video-Only file, .m4v
with m4a audio file, and output as mp4
Want to join them, without losing original quality,
both file have same time length.
any good software.etc?

ffmpeg -i audiofile.m4a -i videofile.m4v  -c copy  combined.mp4

Here -c copy tells to copy the stream instead of re-encoding. So the streams are as before. It is fastest and lossless.


text:
How can I get timecode start times and chapter names as plain text from a video which has chapter markers?
Source: Quicktime movie or MP4 container which has chapter markers.
Intended output: Plain text for use in YouTube or similar services. Chapter start time code as (HH:)MM:SS at the beginning of the line followed by the chapter name.
00:00 Intro
00:30 Another Chapter
02:00 Fin

LosslessCut (GUI for ffmpeg and ffprobe, multi-platform, free)

Open video file with video markers.
A dialog opens:

This file has embedded chapters. Do you want to import the chapters as cut-segments?

Click "Import chapters"

Menu > File > Export project > Start times as Youtube Chapters
A dialog with a multi line text area opens:

Copy the desired chapter names and timecodes
Offers a "copy all" button for your convenience too.

This works fine for me with smaller files but it doesn't seem to work for large files (~600GB). Do you have any ideas what could cause this?

The LossLessCut website mentions "Shave gigabytes off video and audio files in seconds" so I guess is rather well suited for handling large file sizes. But maybe the chapter function in particularly is not memory optimized? Try ask at their Github discussion forum.


text:
Why do different libx264 encoding presets yield different H264 profiles? For same video: Same source, same target dimension + framerate + CRF
Original Issue
ffmpeg -i macos-sreenrecording-2560x1600-h264-FPS60.mov -movflags faststart -an -c:v libx264 -crf 18 -preset veryslow 2560x1600-CR18-FPS60.mp4

Yields an MP4 with H.264 at High@L6 (aka High Profile Level 6)
❌ Does not play back on iPhones 6S, whose maximum is High@L5.1 (4K @ 30 FPS).

Realized root cause and solution (in principle!)

Wikipedia lists these maximum values for video Width×Height@Framerate(Stored Frames) for Profile 5.1

1920×1080 @ 120.5 (16), 2560×1920 @ 51.2 (9), 3840×2160 @ 31.7 (5), ...

 So I thought I have these viable alternatives:

 Keep dimensions 2560x1600 and lower framerate from 60 to 50 FPS
 Keep the framerate of 60 FPS and reduce the dimensions from 2560x1600 to 1920x1200.

Remaining issue (in practice & theory)
ffmpeg -i 2560x1600-h264-FPS60.mov -movflags faststart -an -c:v libx264 -r 50 -vsync cfr -crf 18 -preset fast 2560x1600-CR18-FPS50.mp4

With -preset fast according to mediainfo this yields an MP4 with H.264 at High Profile Level 5.1 with:

Format settings: CABAC / 4 Ref Frames
Bit rate: 185 kb/s

If I change -preset to veryslow then according to mediainfo it becomes a High Profile Level 6 with:

Format settings: CABAC / 16 Ref Frames
Bit rate: 179 kb/s

Learning: The H.264 Profile Level seems to be not only determined by video dimensions + framerate + average and/or peak bitrate, but also by the reference frame count.
Remaining Question
How can I encode this video with the most CPU effort (for the best possible outcome, except placebo which is explictly "too much") to remain High@L5.1 compatible with the maximum image dimensions and framerate?

try to add -level:v 5.1

Thanks! Tried this approach and put this into an own answer. Would appreciate if you could help there clarify my remaining speculations/uncertainties.

Note: Take this my answer with a grain of salt. Derived from lots of trial'n'error observations in combination with some knowhow of video encoding in general and ffmpeg in particular. But I'm in no way an expert. Would love if someone can chime in and give the exact explanations.
Add -profile:v high -level:v 5.1 (or your appropriate limitation) as a "further limiter"
within the other main constraints video dimension + framerate, implicit in the -i input-video.mov or explicit in the output arguments -vf scale=WIDTH:HEIGHT -r FRAMERATE.
ffmpeg -i macos-sreenrecording-2560x1600-h264-FPS60.mov -movflags faststart -an -c:v libx264 -crf 18 -preset fast -r 50 -vsync cfr -profile:v high -level:v 5.1 2560x1600-CR18-FPS50-High@5.1.mp4

I think the basic limiters dimension and framerate by itself MUST comply with the profile and level you are targeting.

The arguments -profile and -level seem to be able to just make some other tweaks WITHIN that constraints (mainly the reference framecount, what I could observe). But they can not magically make it conform if the outer constraints break the profile/level limit.

If you state a very low -profile and -level but for a dimension/framerate combo way above that profile/level's maximums then ffmpeg / libx264 can do little.

According to mediainfo that video file then has the targeted profile/level declared in the video header (moov atom) but its contents contradict it.

So I guess the video players / chipsets / devices have some additional heuristics to skip such "falsely labeled" video files.

And as the next point shows, possible those heuristics possibly even falsely disqualify a video file, if carefully evaluated would qualify.

On the concrete targeting device (iPhone 6S)

I found only the vague spec: High@L5.1 and an exemplary maximum of 4K @ 30FPS.
According to Wikipedia High@L5.1 should allow my 2560x1600 source as within the 2560×1920 @ 51.2 (9)  boundaries if I encode it at 50 FPS (below that 51.2), and the -profile and -level then make sure, that the last variables (which I don't state explicitly), such as the reference frame amount, stay within the maximum, in the case of High@L5 ref=9 or lower.

But the practical test on the iPhone 6S: Not playing back!

Interestingly the EXACT same command line, just swapping -level:v from 5.1 down to 5, produced a video file of the EXACT same size in bytes. The 2 bytes which differ are the profile/level declaration flags (see screenshot).
That High@L5 file then played back on the iPhone 6S.
So if you don't know the exact limitation, it's a guesswork, and sometimes lowering the -level, in practice creates the same video, just with a different flag, and by this if passes a video player's pre-check.

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


text:
How to force ffmpeg download live m3u8 from the first available segment?
When I use ffmpeg straight forward like this:
ffmpeg -i 'playlist.m3u8' -c copy out.mp4

it searches for current segment (or maybe the last one) and drops all previous.
I know that live playlist is a sliding window and contains only the last part of all segments. Even if there are some older segments in a m3u8 file, ffmpeg skips them but I want to download them too. I don't want to start from the very beginning of the stream I just need to prevent that skips.

Try this command, it worked for me:
ffmpeg -live_start_index -99999 -i https://your_url/source.m3u8 -c copy -bsf:a aac_adtstoasc outputtt.mp4


text:
ffmpeg libx264rgb error
When i was using ffmpeg i use libx264rgb to convert videos.
But when I converted a video there was a error.
I will put you a video so that you can see what happened.
Original:
https://archive.org/download/error_202109/Test.mp4
https://archive.org/download/error_202109/libx264.log
Converted in libx264rgb:
https://archive.org/download/error_202109/Test%20%281%29.mp4
https://archive.org/download/error_202109/libx264rgb.log
if you could fix the libx264rgb error?

Recently, a bug was fixed in ffmpeg related to relaying of input color parameters onto the output. But this unmasked a bug in another component viz. updating color parameters when the scalers changes them. Till that is fixed, add -colorspace rgb as an output option with libx264rgb.


text:
Is the audio from these videos in some weird format that I can't decode, or is it just corrupted?
I borrowed an Apeman A87 and used it on a road trip. However, the audio came out apparently corrupted except sometimes when filming indoors and with the menu set to the default language of the market the camera was sold in -- i.e., in my case it was Italian, I set it to English because of the incomprehensible Italian translation, no audio, set it back to Italian, got some audio, switched it back to English, no audio again… except that I still got no audio when filming outside with the menu language set to Italian so that's probably not the culprit. Maybe. I don't know what to think anymore.
I had a look at the waveforms and the spectra and two things stand out in the corrupted tracks:

there are relatively large DC-biased sections at the beginning (and sometimes end) of the audio tracks which look to me like some kind of data blocks or markers, and
the rest of the tracks contain very high pitched noise, which also sounds like raw data interpreted as audio.

From one of the SD cards, I also retrieved a small file which reads like so:
$ file -k H264.1.TO.BS
H264.1.TO.BS: JVT NAL sequence, H.264 video @ L 51
- data

Anyway, I have two short examples here if anybody want to take a look. These come straight from the SD card, no re-encoding nor anything else.

https://andreafranceschini.org/files/apeman/nope.mov
https://andreafranceschini.org/files/apeman/ok.mov
https://andreafranceschini.org/files/apeman/H264.1.TO.BS

Any pointers appreciated :)

It's not an issue with the audio format.
Any player (VLC, ffplay) can decode the format because both videos have the same AAC LC Audio format:
Format            : AAC LC
Bit rate          : 128 kb/s
Channel(s)        : 2 channels
Channel layout    : L R
Sampling rate     : 48.0 kHz

So what you are saying is that the camera just corrupted the audio at the source and there's nothing to be done, right?

Yes, the audio that is played back is what has been recorded. There is basically nothing there.


text:
How to obtain the correct framerate with ffmpeg image2pipe format?
I have 40 .jpg in my dir folder and want to create a video at 20fps from them. I've tried the following command:
find dir/ -iname '*.jpg' | xargs cat | ffmpeg -f image2pipe -framerate 20 -i - -s 1080x720 -pix_fmt yuv420p out.mkv
I expect to obtain a 2 seconds video (40 images / 20 fps) but I get a 6 seconds video. Here is the output of ffmpeg:
[image2pipe @ 0x564d225dd940] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, image2pipe, from 'pipe:':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 6000x4000, 20 fps, 20 tbr, 20 tbn, 20 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
[swscaler @ 0x564d22b94b00] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x564d225e3180] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x564d225e3180] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x564d225e3180] 264 - core 161 r3039 544c61f - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=20 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (H264 / 0x34363248), yuv420p(tv, bt470bg/unknown/unknown, progressive), 1080x720, q=2-31, 20 fps, 1k tbn
    Metadata:
      encoder         : Lavc58.134.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=    1 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 3 times
frame=    5 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   11 fps=9.9 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d237e33c0] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 4 times
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
frame=   17 fps= 10 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   23 fps= 10 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 4 times
[swscaler @ 0x564d247610c0] deprecated pixel format used, make sure you did set range correctly
frame=   29 fps= 10 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   35 fps= 10 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 1 times
[swscaler @ 0x564d26bb8f80] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 2 times
frame=   41 fps= 10 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   47 fps=9.9 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   53 fps=9.8 q=28.0 size=       1kB time=00:00:00.00 bitrate=5024.0kbits/s speed=0.000184x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   59 fps=9.7 q=28.0 size=       1kB time=00:00:00.30 bitrate=  16.7kbits/s speed=0.0496x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   65 fps=9.7 q=28.0 size=       1kB time=00:00:00.60 bitrate=   8.4kbits/s speed=0.0894x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   71 fps=9.7 q=28.0 size=       1kB time=00:00:00.90 bitrate=   5.6kbits/s speed=0.123x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   77 fps=9.7 q=28.0 size=       1kB time=00:00:01.20 bitrate=   4.2kbits/s speed=0.151x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   83 fps=9.7 q=28.0 size=       1kB time=00:00:01.50 bitrate=   3.3kbits/s speed=0.175x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   89 fps=9.7 q=28.0 size=       1kB time=00:00:01.80 bitrate=   2.8kbits/s speed=0.196x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=   95 fps=9.7 q=28.0 size=       1kB time=00:00:02.10 bitrate=   2.4kbits/s speed=0.213x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=  101 fps=9.7 q=28.0 size=       1kB time=00:00:02.40 bitrate=   2.1kbits/s speed=0.23x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=  107 fps=9.7 q=28.0 size=       1kB time=00:00:02.70 bitrate=   1.9kbits/s speed=0.244x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=  113 fps=9.7 q=28.0 size=       1kB time=00:00:03.00 bitrate=   1.7kbits/s speed=0.258x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 5 times
frame=  119 fps=9.7 q=28.0 size=       1kB time=00:00:03.30 bitrate=   1.5kbits/s speed=0.269x
[swscaler @ 0x564d22d76680] deprecated pixel format used, make sure you did set range correctly
frame=  120 fps=8.6 q=-1.0 Lsize=    1338kB time=00:00:05.85 bitrate=1873.8kbits/s speed=0.419x
video:1337kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.115425%
[libx264 @ 0x564d225e3180] frame I:2     Avg QP:22.50  size: 53106
[libx264 @ 0x564d225e3180] frame P:40    Avg QP:23.81  size: 17895
[libx264 @ 0x564d225e3180] frame B:78    Avg QP:26.09  size:  7002
[libx264 @ 0x564d225e3180] consecutive B-frames:  1.7% 16.7% 55.0% 26.7%
[libx264 @ 0x564d225e3180] mb I  I16..4:  7.6% 74.5% 17.9%
[libx264 @ 0x564d225e3180] mb P  I16..4:  2.0% 12.3%  2.5%  P16..4: 43.7% 12.6%  5.6%  0.0%  0.0%    skip:21.3%
[libx264 @ 0x564d225e3180] mb B  I16..4:  0.8%  3.1%  0.4%  B16..8: 35.0%  2.9%  0.5%  direct: 3.7%  skip:53.5%  L0:35.9% L1:61.7% BI: 2.4%
[libx264 @ 0x564d225e3180] 8x8 transform intra:72.9% inter:80.7%
[libx264 @ 0x564d225e3180] coded y,uvDC,uvAC intra: 63.5% 86.3% 57.4% inter: 14.6% 31.4% 3.4%
[libx264 @ 0x564d225e3180] i16 v,h,dc,p: 27% 24% 10% 38%
[libx264 @ 0x564d225e3180] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 16% 16%  7% 10% 10%  9%  8%  8%
[libx264 @ 0x564d225e3180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 13%  7% 12% 10% 10%  7%  5%
[libx264 @ 0x564d225e3180] i8c dc,h,v,p: 45% 23% 21% 12%
[libx264 @ 0x564d225e3180] Weighted P-Frames: Y:52.5% UV:50.0%
[libx264 @ 0x564d225e3180] ref P L0: 49.9% 20.3% 12.0%  9.1%  8.7%
[libx264 @ 0x564d225e3180] ref B L0: 74.9% 17.1%  8.0%
[libx264 @ 0x564d225e3180] ref B L1: 97.6%  2.4%
[libx264 @ 0x564d225e3180] kb/s:1824.23

Here is some info about the out.mkv file:
Format                                   : Matroska
Format version                           : Version 4
File size                                : 850 KiB
Duration                                 : 6 s 0 ms
Overall bit rate                         : 1 160 kb/s
...
Format settings, Reference frames        : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 6 s 0 ms
Bit rate                                 : 1 137 kb/s
Width                                    : 1 080 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 3:2
Frame rate mode                          : Constant
Frame rate                               : 20.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.073

I've tried different strategies with the -r option, but I cannot get my 2 seconds video at 20 fps. Can you see what going on?
Also I would like to keep a image2pipe solution instead of a image2 solution.

Share full log.

@Gyan I edited the post with the full ffmpeg log

you have to specify both an input and an output framerate, right now you are only setting the input framerate. Try
find dir/ -iname '*.jpg' | xargs cat | ffmpeg -f image2pipe -r 20 -i - -s 1080x720 -r 20 -pix_fmt yuv420p out.mkv

hope this works

I still obtain a 6 seconds video with your command


text:
After Effects, text layers and depth of field
I have a hard time getting blurry text in the background with a camera and depth of field look "right".
Because I need to use latex math equations, I can't use built-in text, I need to either use AI files, PDF files or a hi-res version of the text exported in png from photoshop.
The results are exactly the same though.
In the example here below, I used:

1940*1080 composition
A camera (-1500 back in the z axis, Zoom 1500, DOF on, Focus distance 1500, Aperture 800, Blur level 100%)
The first text is at 0 on the z axis
The second text is at 250 on the z axis
The third text is at 500 on the z axis
The fourth text is at 750 on the z axis
The fifth text is at 1000 on the z axis
All text instances have originally the same width (3840px) and are scaled just the same (46%).
All text layers are in 3D.
The image is rendered with the optimal settings.

But the text layers seem very "pixelated" after I push them forward over 250 in the z axis. It doesn't seem natural at all passed the second layer.
The plus sign is the most obvious in terms of degradation. The results seem more fuzzy than blurry.

What am I doing wrong?
If nothing in particular and it is supposed to be that way, what can I do so that the blur/bokeh seems smooth at all distances?
As it is, it doesn't seem THAT bad because I gradually pushed those texts backward and the sense of depth of field is there alright. But if I have, let's say, both the first and last text alone, it doesn't look like one is behind the other, only that one is fuzzier than the other. That's a problem since I have to move the camera rather often in my animation. The sense of depth should be there all the time.
Any workaround that would enhance the result (more blurry, less fuzzy) would be welcome.
Here is an example of something that is approaching what I'm looking for:

The bokeh effect induced by the depth of field seems to smooth and "sphere" things out rather than "square" them.
Thank you for your help and input.

The default camera blur in after effects isn't very nice. You can adjust it a little by changing how the camera behaves in the Camera settings
A larger aperture value on the camera will give you more blur at closer positions.
You could try making the aperture larger, and then change the amount of distance between the text layers (and compensating with the scale of each object to get the effect you want).

Alternatively, a much more involved process is to use the Camera Lens Blur, or a third party camera lens blur, and a depth map to get a more realistic depth of field blur. This looks much nicer, but takes much longer to render.
The depth map is a 2D greyscale version of your 3D image, where the shade of grey of each pixel represents how far the image is from the camera, so it allows a camera plugin to correctly calculate the blur for each point.

Thanks for your answer. But the other options only work with 2D projects, right ?
I mean, they fake 3D DOF within a 2D space. I wouldn't be able to use them conveniently in a 3D space to replace the camera DOF, right?
The picture here above with the blur I like is taken from a video that is using 3D panning. I just don't know how they got that effect while being in a 3D space. I just can't see how a depth map could follow and be updated in real time when the camera is moving. if it's possible, I would be curious to know how. Thank you very much for your help, it's appreciated.

FYI, I played with the aperture and the distances. The result remains the same, it's just brighter/darker. And adding some blur will enhance the fuzzy aspect of the DOF. However, I kind of found an okay workaround : using "falloff" with the light so that the background texts are less visible. But it means I have to "hide" them somehow to make them acceptable. Which is not great.
Is there, by any chance, any plugin that totally replaces the camera or the built-in 3D DOF?

You can use these in a 3D space (an after effects style 2.5D space, which is what you get when you're using non-extruded text set to 3D in After Effects).  There's a tutorial here which shows you how you can make a depth map: https://www.provideocoalition.com/z-depth-from-3d-after-effects-layers/

The default iris on the 3D camera in AE is set to fast rectangle. You'll get better bokeh if you change it to hexagon, or higher sided polygon. You can also adjust the iris roundness. Double tap a to show the camera settings.

You could also add a lens blur effect to each layer and drive the blurriness via expressions. E.G.:
let dofFactor = 0.5; //how blurry things off the focal plane are, edit or connect to slider
let focusDistance = thisLayer("Camera Options")("Focus Distance");
let dist = length(thisComp.layer("Camera 1").position, thisLayer.position);
Math.abs(focusDistance - dist) * dofFactor;


text:
Authentic VHS tape effect in Premiere Pro
Summary
I'm making an artwork and here's how it goes in a nutshell: A fictional movie scene that was (1) shot on film in the '60s, (2) restored in VHS format in the '80s or '90s, and (3) restored again in a digital format in the present day.
Now, from that second bit onward, here's how I assumed it went in practical terms: In the '80s or '90s, the movie (my artwork) was restored in a VHS format (with PAL standard) by a telecine machine using the release print. At the present day, the tape was restored in a digital format by an RCA-to-USB converter that connects the VCR to a computer.
In order to simplistically replicate this process, I've been trying to split my material up into 3 separate YUV channels and work from there intuitively, since I believe it's the luma and chroma signals that make up this analog video effect, before the video gets automatically decoded back into RGB (correct me if I'm wrong). This is where the question comes in: What's the proper way to separate the YUV components of my clips for this particular effect?
Additional info

Here's the current state (top) and a rough sketch of the desired result (bottom):

I want to separate the channels like this (I might be wrong):

I'm currently using Adobe Premiere Pro 2017.
I'm not looking for plugins or jumping to other softwares.
I've tried:

Separating 3 clips of Red-Luma, Blue-Luma, and Luma components onto 3 video tracks using Channel Mixer effect: The math way. I skipped because it returned an image that looks pink tinted, although there was an RGB-to-YUV conversion formula involved.
Separating 3 clips of Red, Green and Blue components onto 3 video tracks using RGB Curves effect: The intuitive way. I skipped because it was obvious that I was working on RGB components instead of YUV, although there's one tutorial using this method.
Separating 4 clips of Red, Green, Blue, and Luma components onto 4 video tracks using RGB Curves and Luma Curve effects: The intuitive way. I'm considering this because it returned the image back to normal.

I appreciate that you're trying to replicate the look by replicating the actual process that created it, but have you considered just colour grading the material so it matches? A lot easier to get right.

I have, but I personally feel uncomfortable dragging just the sliders and eyeballing, it's like trying to draw a human figure while knowing nothing about the anatomy. I'm not trying to be perfect, I'm only finding ways to separate the channels and work from there intuitively, since I believe that would do the heavy lifting to get the effect. Doing like what you said would be the last resort if there're no better options.

Yep, that's why scopes have been a thing since forever.

Doing what you are asking is like building a hovercraft to save yourself having to catch the bus. You're going to have to go down a far deeper rabbit hole of colour theory and investigation into how colour is encoded in video, all to save yourself from having to do some colour grading. This situation is exactly why tools like Lumetri are built-in to Premiere.

I'm not disagreeing with that. The point I'm trying to make is, I'm doing the best I can to balance out between simple color grading and involving in technical details.

Here's the current image (left) side by side with the desired image.

To get there I opened up lumetri scopes and tweaked the RGB curves until the LHS matched the RHS -ish.
Here's the histogram before:

and after:

This is how the curves looked. Could probably do with more work, but basically I'm reducing the exposure mostly in the blue, and also taking out some of the blacks, particularly in the blue and green.

I ulso reduced the saturation, moreso in the lighter parts of the picture

To do it justice it needs some film grain, and some softness. PP doesn't have a built-in grain effect, and its noise effect is pretty feeble. I added about 7% noise and a 5.6 px gaussian blur. If I was to round trip to AE I'd go for the grain effect there, and possibly some camera lens blur.

There are some bits that I'm curious of. Why did you (1) tone down the exposure in the blue, (2) take out the blacks in the blue and green, and (3) reduce the saturation in the highlights, all without touching the rest?

Basically I was going off the histogram. I just moved the curves until the LHS matched the RHS. I've edited the answer to include the before histogram as well as the after.

If I was a better colourist I could probably do it by eye, but since human colour perception is unreliable, the histogram is an objective and easier way to judge colour.

Just to be sure if I get this right. The idea is to get an image with the desired result and try to match it with scopes?

Yes, Scopes show you what is going on with the colour in an objective way. Human colour perception is so easily fooled that it's hard sometimes to judge colour effectively. This is fine if you're just after a look, but when you're trying to match colour between shots they're essential.


text:
Pillarboxing AVC/h.264 video with minimal re-encoding?
I have 1440x1080 AVC/h.264 video that should be displayed with a 4:3 aspect ratio (which would correspond to square pixels).  I'd like to burn it to a Blu-ray disc to be playable in Blu-ray players, but my understanding is that Blu-ray specifies that 1440x1080 video should be treated as 16:9 (which makes no sense to me, but I digress).
Are there any software tools (whether for Windows, Linux, or macOS) that can pillarbox AVC/h.264 video without lossily re-encoding the existing content?  That is, it seems conceivable that 15 columns of 16x16 macroblocks could be added to each of the left and right sides to make it 1920x1080 without going through a lossy decode/encode cycle.

I've found https://trac.ffmpeg.org/ticket/4331 which requested such a feature for ffmpeg, but it sadly was closed as won't-fix without comment.

Does this answer your question? Using ffmpeg to add height (as black bars) to video file without quality loss

@tabdiukov Thanks!  That's definitely a very similar question, although the answers there don't help (they do a full re-encode), and I'm not asking specifically about ffmpeg.


text:
Convert TTML Subtitles to STL or SRT in Linux
I want to convert a file with TTML subtitles preferably to STL, or to SRT (less preferred). I thought that I would be able to do it with ffmpeg but apparently they do not support it, because the TTML is XML-based. My main goal is to find a way to do this using the command line, so I can use it in a script.

The ttconv Python package will do it. It can be installed with pip.

If you need more formats and better file parsing capabilities, you can use subtitles package
php subtiltes.phar input.ttml output.stl


text:
Am I allowed to cut the music from the audio library of YouTube?
Thank you for helping me! I have a very simple question but I just can't find the answer to it: Am I allowed to cut the music from the audio library of YouTube (the one in YouTube studio)? So for example if the music is 2 min long but your video is only 1 min long, are you allowed to delete the rest?
I searched here, on YouTube and on the internet. I seem to not get an answer anywhere?

YouTube hosts a couple of different licenses, the most common is YouTube Audio Library License, where you're allowed to edit/cut it down.
Second most common is Creative Commons, there in most cases you are allowed, expect in the case of ND (= Symbol)

Thank you very much! I'm sorry, what ND-symbol are you talking about?

Creative Commons ND stands for No-Derivatives, meaning you cannot adapt the work. You can only use it to it's full extend as is. But I doubt YT Library will have any of that, it's most likely all CC-By. (CC-By is shown by a CC and an icon of a person, ND is shown by an equal sign) check https://creativecommons.org/ for more details on this.


text:
After effects: How can I track motion AFTER applying saturation?
Disclaimer, I'm relatively new to After effects:
Here is the problem, I need to track this lens flare:

Its very hard to do, however my thought was to apply some color correction in order to make it more easily trackable. I did this by increasing the saturation and I think the effect would make the lens flare much easier to track;

Problem is when I now try to track motion, it wants to do so on the original footage rather than the footage with the color corrections. Can I not track the color corrected footage and then transplant the tracking data to the original footage?
Here is a gif showing the problem.

How long is the clip?  If it's short, maybe just do it manually, and use clone stamp or content aware fill to replace the grass?
You'll probably have better results than trying to track something with lots of movement (grass) and lots of edges, as the edges are what the tracker uses to find its way.
If you do still want to track it as your question asks - you can apply the saturation to the clip, then pre-comp the clip.  Apply the track to the original main comp (not inside the pre-comp), and it will use the saturated version to create the track.  Then either remove the saturation setting once the track is good, or duplicate the video track and use that non-saturated version.

one way that I would get around this issue would be to render the footage with the saturation effect applied and then track the rendered footage and apply that tracking data for your original footage without the saturation effect.
You can also try plugins like Mocha which does amazing 2D planar tracking on difficult footage like these.
You can also refer to the document here: https://helpx.adobe.com/after-effects/using/tracking-stabilizing-motion-cs5.html


text:
Batch processing Stereo to DoubleMono in Adobe Audition
Win 7 - Audition CC v11.0.0.199
For my videos I normally record audio through a Behringer Audio Interface. I connect main mono mic to Input 1 and a backup mono mic to Input 2. The result is a stereo audio file in which the left channel is my main mic and the right channel is the backup.
In Premiere I prefer to have a separate "doubled-up" stereo track for each mic. So, for example, my audio track would be my main mic with both L & R channels showing the same signal that originated in the main mic. I only use the other mic as backup.
I found an easy solution within Premiere... See below "SOLUTION"
As I record many files in such a way I wish to quickly process them all as batches. I tried both Audacity and Audition and each have their own problems. Let's deal with Audition here:
First I open one audio file. Let's call it "Audio1.wav"

Start the favorite recording process (Favorites / Start Recording Favorite) and follow these steps:

Edit / Extract channels to Mono Files
I get two new files Audio1_L & Audio1_R
On selected file (Audio_R)

Edit / Convert Sample Type (Sample Rate: 48000. Channels: Stereo. Bit depth: 32)

Save As (keep file name with _R. New folder. Save as .wav). Ok.
It's saved with the "_R" suffix.

Double Clic the other file (Audio1_L)

Edit / Convert Sample Type (Sample Rate: 48000. Channels: Stereo. Bit depth: 32)

Save As (keep file name with _L. New folder. Save as .wav). Ok.
It's saved with the "_L" suffix.

Close All
No to All (when asked if I want to save changes)

End the favorite recording process (Favorites / Stop recording process) and name it

Ok...
So now I try to use this favorite with just one file as a dry run:
The result is just the same original Audio1 file again!!
What am I doing wrong?
Are there some commands that can't be added as favorites?
What alternatives can I use instead?
Thanks a bunch!!
Miguel
--SOLUTION--
I had previously thought I couldn't double a mono track into stereo within Premiere, but I looked into it again and, turns out I can! It's actually quite simple and I can use my original (mixed stereo) file, side stepping Audition altogether.
a. Import "mixed" stereo file into Premiere (say Audio1 as before)
b. Right-click on "mixed" stereo file.
- Modify / Audio Channels

- Clip channel format: Stereo

- Number of audio clips: 1

- Select Left Channel "L" for both "L" and "R" in Clip1 (in my case)

- Ok

This works for all subsequent uses of the clip, NOT on clips already in the timeline.
Thanks!!

Hi - can I ask why you want to do this?  If you're recording mono sources, why do you want to convert them to stereo tracks when there is no extra information in the recording?  All you're doing is increasing storage size and processing needed while you work?

Hi Tom, thanks for writing... The reason is that if I leave a track as mono (while the others -music- are stereo) I only hear the voice through one side.

In any case, I found a much simpler solution within Premiere itself

You can pan a mono track to the centre of a stereo project

Thanks! See my main text after --SOLUTION--

Hi - you should add this as an answer below, so others can see it's been solved

Sorry! Thanks for reminding me that I need to add the answer in the appropriate section. Newbie mistake!

I had previously thought I couldn't double a mono track into stereo within Premiere, but I looked into it again and, turns out I can! It's actually quite simple and I can use my original (mixed stereo) file, side stepping Audition altogether.
a. Import "mixed" stereo file into Premiere (say Audio1 as before)
b. Right-click on "mixed" stereo file.

Modify / Audio Channels

Clip channel format: Stereo

Number of audio clips: 1

Select Left Channel "L" for both "L" and "R" in Clip1 (in my case)

Ok

This works for all subsequent uses of the clip, NOT on clips already in the timeline.
Thanks!!


text:
How do I make visible the menu in the composition section in After Effects where I can choose wireframe view?
I need to toggle the wireframe option in the composition section but I'm missing the icons in the squared section in the image. How do I get these button icons so I can toggle the wireframe section? I tried toggling all of the menu bar options but can't seem to find the right one. Screenshot is from a youtube tutorial where the button icons that I'm looking for are visible.

below is screenshot of what I see on my screen:

That’s a weird one. I can’t see any way to hide those controls. Can you share a photo of your screen? Is it possible you’re not looking at the composition viewer, but a source viewer in the same location?

Updated the question with a screengrab of my own After Effects screen. what is a source viewer by the way?

The toggle wireframe icon is this:

It is visible in your top image here:

And the lower image here:

thanks, that did the trick.


text:
Why does my video look overexposed in Adobe premiere 2022?
I'm editing a video in Adobe Premiere Pro 2022. When I import video, it looks fine on the preview screen, but when I layer it over another video in the timeline, the timeline preview of the video looks distorted. Anyone know why this is happening, and how I can fix it? The colors look very saturated and the video looks overexposed. I haven't added any effects to the video that I know of(I just imported it and put it in the timeline).
Here's a picture of what it looks like:

As you can see, the image looks super distorted in the timeline preview, but the import preview on the left looks normal.

Same thing happens to me. Even if I open old projects or start a new one they're now all over-exposed as soon as they hit the timeline. Started immediately after the update. It does look like lumetri color exposure adjustment fixes it, hoping it's not destroying the quality.

Check there are no effects on the clip (click the clip in the sequence, and then click on the Effects Controls tab in the left window), and no source effects on the source clip (from the Effect Controls tab, see if there's a Source tab beneath that).
Try making a completely new sequence, by dragging the clip from the Project tab onto the New Item icon:

at the bottom of that panel.
This should make you a new sequence with exactly the same settings as your source clp.
If this doesn't look weird, then the sequence settings in your original sequence might be different to this source clip.
If the clip was shot in Log or Raw, and your sequence is set to Rec.709, you may need to adjust the footage to make it look right using Lumetri.

How come it still shows up correctly in the preview window? Does Adobe not match the sequence to the sample footage?

In the sequence settings change the Working Color Space from Rec.709 to Rec.2100 HLG.  I had the same issue and this fixed it instantly.

Same issue, I had to modify my footage, interpret footage, and override color space to rec 709 for EACH CLIP. I don't know how adobe screwed this up. It should automatically make a sequence according to my clip when I do "Make New Sequence from Clip" option. This is very frustrating and takes too much time and mental space when trying to edit content for clients.

I’m a bit of a novice when it comes to video production, and the terms you’re using went right over my head. What is color space, and what exactly is it about the videos that has them show up so distorted?

Go to the top toolbar and choose Sequence -> Sequence Settings. The under Video, change the Working Color Space from Rec. 709 to Rec. 2100 HLG.
When you export the file, if you choose a preset that does not "Match Source", make sure you choose the correct color space File -> Export | Video -> Encoding Settings -> Export Color Space. If Color Space is greyed out, try changing the Profile  under Encoding Settings to something else (Main 10 and High10 works for me for HEVC and x264 respectively).
To see what color space your original clips are filmed in, you can right-click on each file and find it under Properties -> Color Space. If you have clips with different color spaces, you can right-click Modify -> Interpret Footage -> Color Space Override.
Read more about setting color spaces in Premiere here.
A color space is the range of colors you're using. The reason for different color spaces is related to the imperfect correspondence between what the human eye can perceive, what our digital screens can display, and how we want to "quantize" colors (or how many bits do we want to use to encode a single color; colors are continuous, but we express a 24-bit color as 3 RGB numbers between 0 and 255). As screens, cameras, and post-production processes improve, new color space standards have been introduced. My impression is HDR videos often use some of these newer color space standards.

This is really helpful. I will have to test this and see if this works.