text:
How do I find out if a video is actual or if it was modified with a Software?
This video in question is Chameleon Changing Color How do I find out if that color change in the Chameleon is real and not a modification that was done with software? Specifically, I am looking for some software I can use to conduct the analysis or a website that provides such services.

Chameleons do have some pretty wild colors they can change into, and the process is extremely advanced, requiring physicists and biologists to fully understand how it works; check out this video for how it works. Personal note: Something this advanced doesn't happen by random chance.
Anyway, my personal opinions aside, it appears to me, this video was heavily edited by software to get a bigger wow factor. I've edited photos and videos for the better part of 20 years and there are subtle markers that stand out to me.
The biggest tip-off, is at 2:06 into the video when the Chameleon changes blue. If you look carefully at the body, you will see a slight gray outline around the edge of the entire Chameleon, it is especially noticeable at the top of his back and the around his forward paw gripping the branch -- that is a not so subtle sign that a poorly made mask has been used to select an area for manipulation. Other tipoffs include the vibrancy of the colors and the purple/blue, and the whole body changing the same color, instead of patches changing color.
As for what software can do this, there are many. If it's a still image you can use Affinity photo, Gimp, or Photoshop. For video, the best (and free) is DaVinci Resolve is what I would recommend. It was specifically designed to do this kind of work!
For an example of how the change could have been done in software, check out this video or this one.
How it happens in Chamelons

How it's done is software

Thankyou @NinteenEighty, I have accepted your answer. I am also looking for some forensic tools to detect the edited videos since I have no expertise :-)

Before going too far, i don't think there is something on earth would like wasting energy to keep changing appearance for nothing, or do you think it knows it is on TV and know where the camera is? Come on!
Someone plz tells me i am wrong.

I am done in here, before that may i share two articles from The Verge

https://www.theverge.com/2018/6/22/17487764/adobe-photoshopped-fakes-edit-spotted-using-machine-learning-ai
https://www.theverge.com/2019/6/14/18678782/adobe-machine-learning-ai-tool-spot-fake-facial-edits-liquify-manipulations

Good luck!

Hi xer-xer, could you edit your answer to include a bit more context? At the moment it's not clear what you mean (without having access to your thoughts).

since the answer has been marked as -1, i have no interest to edit it at all. my answer means to understand more about your objects you will know more what you want to get. In this case, images of chameleon can found from Google as your data set; classification would help. I have provided articles, and i am done in here.

The -1 merely indicates that your answer, in its current form, is not clear or not helpful. By editing it you can clarify it and get a +1 (or +2, +3, +4, etc... if it's really clear and helpful). Of course if you're not interested in writing clear answers and just want to share your raw thoughts that's fine as well, but then probably this Q&A format is not an ideal match for you.

Thank you for your answer @xer-rex. It is a philosophical one. Thank you :-) I am looking for one that is more technical. It is not about this video alone although it can be taken as a sample. I want to use the method for other videos also that I come across in the future. Thank you for the articles in your first comment. They were new knowledge to me as I am new to this field :-)


text:
How to output high quality Zoom webinar video after editing with Premiere Pro?
I used Adobe Premiere Pro in editing a Zoom webinar video, I noticed that after editing and exporting it, the resulting file size of the output file appeared blurry compared to the original. The file has been captured with the zoom screen recorded, video duration is about 1 hour 45 minutes. I did the edit using a Windows 10 OS.
Here are the properties of the input:
720x480 (1.2121), 29.97 fps. Lower, 48000Hz, Stereo
Here are the properties of the Output:
768x480, 29.97fps, Progressive VBR, 1 pass, Target 0.24 Mbpd. Max 0.24 Mbps AAC, 96 kbps, 48 kHz, Mono
How do I export my zoom webinar video out of Adobe Premiere Pro and still preserve the original quality?
My editing settings were: H.264 format with the Match Source preset. . Change the profile to High and the level to 5.2. I ticked Maximum Render Quality and also Render at Maximum Depth. Disable the aspect ratio link next to the dimensions and maintained the dimensions at 720 by 480 for 29.97 fps.
Here is a screenshot of the original footage:

And here is screenshot of the footage after edit and export:

The reason why your video is blurry is because of your target bitrate, which is 0.24 mbps. (I assume you meant mbps instead of mbpd). Raising this value to a target of 4 and a maximum of 6 should give you a significantly better result. It will also increase your filesize, however. I am assuming that the video might be between 200 and 300 MB.

source: Stack Exchange

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

sort: votes


text:
Premier Pro Audio Quality Poor and Muffled After Export
I’m currently exporting a video on Premier Pro using the default YouTube 1080 HD settings. Usually, my videos export with no problem, but with this video, my exported audio is extremely muffled, even though it’s crystal clear as I’m editing. For more context, the video clips I’m using are mp4s that are screen recorded from my Mac.
Any ways to troubleshoot this would be appreciated!

What audio codec are you using? Are you exporting in 48khz? What are you playing the clip back with, and have you tried another player instead?

I'm using AAC in 48khz with Stereo settings. I've been using QuickTime and also tried listening to it on YouTube, and both are muffled.

thank you for clarifying. Have you tried using a different preset? Or: Try using a blank one and customise it. For a 1080p upload to youtube, I recommend square pixel ratio, 1920x1080, progressive (no interlacing), 25-60 fps (pick what you like) and 3-5 mbit/s bitrate when exporting to a h.264 .mp4-file. Try doing that and please report back :)

You can also check the volume of your player.

I think this is likely to be due to out of phase audio in one of the stereo channels.  Below is a copy of my answer from here: Premiere Pro audio muffled and distorted on export
(I have tried to flag this as duplicate, but cannot because the answer wasn't accepted).
This might be because you are exporting a stereo audio file which has one channel phase reversed, and then it is being played back in mono.
If you have an identical signal going to the left and right channels, but one of them is phase reversed, it means the waveform is inverted (upside down). When you listen to either channel on its own, it will sound normal. When you listen to them both in stereo (Left channel to left speaker, right channel to right speaker) you may notice it sounding odd. Some people describe it sounding like the location of the sound is "inside their head".
But when you play back a stereo recording like this in mono (left channel and right channel both mixed together to a single mono output) the signal will completely cancel itself out.
If the two channels are almost identical, but have tiny differences, only the differences will be audible. This often happens with lossy file formats (like mp3/mp4 files), where the mono version of the phase reversed playback sounds tinny and lacking in all bass.
To test it out, try adding a channel mixer effect to the master output of you mix, and inverting one channel. Then export again and see if it fixes it.

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


text:
FFmpeg: Make video appear after x seconds
I have a video clip that I use as a background, then another clip that contains some text, is there a way to make this second clip start
playing after x seconds?
background: 00:00:00|-------------------|00:00:05
foreground: 00:00:02|         >---------|00:00:05
                              ^it starts

The timestamps of the overlay have to be shifted and overlay filter has to be told to delay start of overlay.
Basic form of command is
ffmpeg -i base -itsoffset X -i overlay -filter_complex "[0][1]overlay=enable='gt(t\,X)'" output

Audio processing and encoding will use default parameters.


text:
Replace a text that has keyframes in a template totally with another text
I have a textbox in a template with full of animations and keyframes,
How can I replace it totally with a new textbox that I recently created? (The recently created textbox have some language features that the basic textbox doesn't have/support)
In another hand. as an alternative solution, how can I copy all the keyframes and features of that textbox and add them to the recent textbox.

Notes:

Don't want to type in the same textbox (Will miss the new supported languages features)
Deleting the old one and replace it with the new one, will not add the animation to the 2nd text.

Have you tried simply selecting your keyframed effects and copy-pasting them onto your new text-layer?

Backed to this a bit late, not sure if I get you correctly, can you explain this with steps? 1. Copy the effects below the TextBox 2. move to the desired TextBox 3. Paste there? Such a thing? Will this work? doesn't have the project now, may need to test it a bit later, BTW if you liked you can add it as an answer, if it worked will mark it then.

Yes, this will work. If you copy an effect that has keyframes, the keyframes will be copied aswell.


text:
How can I remove ENCODE İNFORMATİON from mediainfo for H265 HEVC .mkv?
I want to know how I can remove encode settings from the mediainfo with mkvpropedit or ffmpeg?
İn this post:
Removing MP4 encoding information
I found this command:
ffmpeg -i INPUT -c copy -bitexact -map_metadata -1 -bsf:v 'filter_units=remove_types=6' OUTPUT

for only h264 AVC!
so how can you do this for h265 HEVC
What command do i need to use?
I want to do this by simply copying the file I don't want to convert the whole file.
İ want to remove this:

cpuid=0 / frame-threads=3 / no-wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=2 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=4 /  ...

UPDATE:
-c:v libx265 -x265-params no-info=1 this command does work but for converting -c:v libx265 converts. I want to know how I can do this just to simply copy -c copy the file?

-x265-params no-info=1
!ffmpeg -y -i http://mirrors.standaloneinstaller.com/video-sample/Panasonic_HDC_TM_700_P_50i.mkv -c:v libx265 -x265-params no-info=1 output.mp4

would generate MediaInfo as

Video ID                                       : 1
Format: HEVC
Format/Info: High EfficiencyVideo Coding Format
profile                           : Main@L4@Main
Codec ID                                 : hev1
...
Writing library                          : x265 2.6:[Linux][GCC 7.2.0][64 bit] 8bit+10bit+12bit

-x265-params no-info=0
!ffmpeg -y -i http://mirrors.standaloneinstaller.com/video-sample/Panasonic_HDC_TM_700_P_50i.mkv -c:v libx265 -x265-params no-info=0 output.mp4

would generate MediaInfo as

Video ID                                       : 1
Format: HEVC
Format/Info: High EfficiencyVideo Coding Format
profile                           : Main@L4@Main
Codec ID                                 : hev1
...
Writing library                          : x265 2.6:[Linux][GCC 7.2.0][64 bit] 8bit+10bit+12bit
Encoding settings                        : cpuid=1173503 / frame-threads=1 / wpp / no-pmode / no-pme / no-psnr / no-ssim ...

-c:v libx265 does convert the file. How can I copy the file? I want to do this without converting?

I want to do something like this ffmpeg -i input.mkv -c copy -x265-params no-info=1 output.mkv Thank you very much bytheway this works for converthing but I don't want to convert the file like I said

I have no further comments on modifying the ES level info "without transcoding x265" or "by copying ES to the output".

Use -x265-params log-level=0
Reference: https://x265.readthedocs.io/en/3.1/cli.html#cmdoption-log-level


text:
How to BATCH remux combine video and audio to one file?
How can BATCH remux video and audio to one file?
I'm trying this on mine android termux.
So what I'm trying:

I want to rip audio from video and convert to wav. ffmpeg -i inp.mkv -map 0:1 audio.wav
Extract only video. mkvextract tracks "inp.mkv" 0:video.mkv
Remux Combine extracted video and wav audio file. mkvmerge -o final.mkv video.mkv audio.wav

UPDATE
I Have found the command Solved myself

for f in .mkv;do ffmpeg -i "$f" -map 0:1 "${f%mkv}wav";done && for i in .mkv; do mkdir -p "${i%.}" && mkvmerge -o "${i%.}/${i%.}.mkv" -A "$i" "${i%.}.wav"; done

Another Question
How can I batch convert ssa to srt and send it to folder and also give subtitle the same name as video?
for f in .mkv;do ffmpeg -i "$f" -map 0:1 "${f%mkv}wav";done && for i in .mkv; do mkdir -p "${i%.}" && mkvmerge -o "${i%.}/${i%.}.mkv" -A "$i" "${i%.}.wav"; done && for f in *.ass;do ffmpeg -i "$f" "${f%ass}srt";done

for f in .mkv;do ffmpeg -i "$f" -map 0:1 "${f%mkv}wav";done && for i in .mkv; do mkdir -p "${i%.}" && mkvmerge -o "${i%.}/${i%.}.mkv" -A "$i" "${i%.}.wav"; done


text:
Which rate control algorithm best preserves quick movement?
I gathered the following rate control algorithms are commonly used when encoding modern video formats like h264, HEVC or VP9.

With a constant quantizer (-qp in terms of ffmpeg) all frames are encoded with the same compression ratio. Any still frame one would extract from the resulting video should come out to the same visual quality, regardless of how movement-intense or complex of a scene it is from.
A constant rate factor (the -crf parameter) applies more compression to complex parts to in turn leave simple scenes relatively uncompressed. Thus more artifacts are introduced in e.g. quick moving shots, which in common application is less noticeable to the human eye, achieving a good subjective quality while saving on file size.
The third variant is to target a specific file size with two passes of variable bitrate (-b). The first pass collects data on each frame, so that the second pass then can allocate more bits to the parts of the video that are hard to retain quality otherwise. This effectively does the inverse of CRF, assigning more quality to complex scenes.

I am looking for a strategy to archive videos wherein the movement-heavy scenes are actually most important, may even be stopped, zoomed in on and analyzed for details, whereas slow or static content is less of interest. Am I right to look to two-pass VBR to achieve the best encoding in this regard?
Should my understanding of any of the above methods be mislead in the first place, feel free to correct me. Other hints for encoding movement with good quality are also appreciated. I am especially unsure whether two-pass variable bitrate indeed leads to a heavier distribution of bitrate towards quick scenes and would appreciate if someone could confirm this with any documentation.

Here is my understanding of FFMPEG, there are 4 settings for VQ, and they are "codec", "crf", "preset", and "tune". For the "codec", FFMPEG does not do well on VP9; the others are H.264 and H.265. For the "tune", i prefer "film" for H.264 and "grain" for H.265. "crf" and "preset" can get the VQ excellent but there are drawbacks:long encoding time and large file size (bitrate)
"codec" takes care of the bitrate, H.265 has smaller file size(bitrate) that retains same level of VQ but longer transcoding time.
"crf" takes care of the quantization and the bitrate, the smaller the crf, the better the video quality, but the longer the transcoding time, and larger the file size.
"preset" takes care of the bitrate, the slower the preset, the smaller the file size(bitrate), but the longer the transcoding time
Get back to your scenario - the quick movement video, we concern with the high frequency content. We don't want to see blocky images; therefore, we need higher bitrate, but we want reasonable transcoding time.
Therefore, i prefer H.265 "codec" and "tune" grain. Then we need to tweak the "crf" and "preset" based on the SSIM and PSNR results. I had done some experiments on the MainConcept sample stream (1080p content)

Default) codec=h.264 crt=23, preset=medium, the transcoding took 27.9s the bitrate=3118kb/s, the SSIM=0.994413, PSNR=48.644
Setting 1) codec=H.265, crt=23, preset=medium, tune=grain, the transcoding took 130s, the bite 3949kb/s, the SSIM=0.99487, PSNR=50.894298
Setting 2) codec=H.265, crt=1, preset=medium, tune=grain, the transcoding took 202.37s, bitrate=60883kb/s, SSIM=0.999738, PSNR=65.497223
Setting 3) codec=H.265, crt=23, preset=slow, tune=grain, the transcoding took 329.36s, bitrate=4338kb/s, SSIM=0.9952, PSNR=51.452838

Setting 3) has better VQ performance with acceptable drawbacks or you may keep tweaking the "crt" and "preset" to get to the point that reaches your acceptable transcoding time and the bitrate results.
Good luck!

Time is not of the matter: I can run all encodes with -preset veryslow. I appreciate the idea that -tune grain could indeed improve quick scenes and will experiment with that. In addition, I would be strongly interested in how I can configure a variable bitrate encoding that indeed distributes more bitrate to or dials up quality in quick scenes. Perhaps you or someone else can elaborate on this.

Those commands are vbr,
Streams with no motion - no motion vectors & residual - low bitrate
Streams with motion - yes motion vectors & residual - high bitrate
Not sure what do you want to achieve here?


text:
Get rid of carriage return for batch calls to ffprobe
I wrote the below code and the results.txt file that is created has a carriage return in it and it's for some reason as far as I can tell messing up reading in the data back into the BITRATE variable.  I think I'm basicaly getting the blank line in the variable rather than the value on the first line:
@echo off
setlocal EnableExtensions DisableDelayedExpansion

pushd "\\server\e$\files"
for %%f in (*.mp4) do (
SET BITRATE=""
z:\ffmpeg\bin\ffprobe.exe -v error -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "%%f" > results.txt
SET /p BITRATE=<results.txt
set BITRATE=%%BITRATE:~0,4%%
echo 'ffmpeg -strict 2 -hwaccel auto -i %%~f -c:v hevc_nvenc -rc:v cbr -b:v %BITRATE% -rc-lookahead:v 32 -c:a copy -map 0 -f matroska "%%~nf.mkv"'
del results.txt
)
popd

Any ideas on how to get rid of the space either when making the call to ffprobe or after the file is created?  Output of BITRATE in the end is ~0,4 for it's value which isn't the case running this outside the script file for reference.
Edited content:
@echo off
setlocal EnableExtensions EnableDelayedExpansion

pushd "\\server\e$\files"
del results.txt
for %%f in (*.mp4) do (
z:\ffmpeg\bin\ffprobe.exe -v error -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "%%f" > results.txt
set /pbitrate=<results.txt
Set /a bit=!bitrate!
echo 'z:\ffmpeg\bin\ffmpeg -strict 2 -hwaccel auto -i %%~f -c:v hevc_nvenc -rc:v cbr -b:v !bit! -rc-lookahead:v 32 -c:a copy -map 0 -f matroska "%%~nf.mkv"'
REM :~,4
SET BITRATE=""
del results.txt
)
popd

My suggestion is to apply the -print_format json on ffprobe and use jq to do the extraction.

OK think I did it with a combination of EnableDelaydExpansion and using ! variables. Since I don't think it will show up here well adding it back to the above.  So The above now works, but I can't figure for the life of me how to get with the !bit! variable and EnableDelayedExpasion how to get the bit value to be itself times 0.6.  Just seems to return nothing or fails so guessing I have some format issue or something with the call.


text:
FFmpeg/nvenc(cuda): Where is the documentation for h264_nvenc encoder?
I'm trying to use Nvidia's h264_nvenc video encoder with ffmpeg but I can't find a single source of documentation for it. I want to know what options are supported and what they do.
The software libx264 encoder has good documentation: http://trac.ffmpeg.org/wiki/Encode/H.264
But I can't find the equivalent for h264_nvenc.
There is a little bit of information on
https://trac.ffmpeg.org/wiki/HWAccelIntro and
https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/ but these seem to just contain examples, whereas I'm looking for more of a reference for what the encoder can do. Thanks

Run ffmpeg -h encoder=h264_nvenc

You may check https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/nvenc.h#L186-L221
and the valid can be referenced from https://github.com/FFmpeg/nv-codec-headers/blob/master/include/ffnvcodec/nvEncodeAPI.h


text:
Change content in same parent clip? (Premiere Pro)
I downloaded a library that comes with a sequence called Typo_06. I want to use Typo_06 several times in my project with different images and text changed inside it. Whenever I edit anything on Typo_06, it edits it for all of the Typo_06 sequence. Is there a way to have each of these sequences independent? I've tried duplicating into its own sequence for each and creating a whole new sequence

Found the answer here (the one selected as best answer): https://community.adobe.com/t5/premiere-pro/copying-a-sequence-using-premier-pro-cc-2019/td-p/10450703?page=1


text:
How to save multiple masks as a preset for use on different clips in Adobe Premiere?
I am working in Adobe Premiere. I am building a kaleidoscope effect that I would like to save as a preset to apply to other clips.
To build the kaliedoscope I have stacked a number of copies of the original clip, and to each of these copies i have added a small diamond shaped mask. Each copy has a unique position for the mask starting from the center and moving the mask outward to create the kaliedscope according to a diamond shaped grid.
This is quite time consuming to build and I would like reuse this effect throughout a video, and again in future.
How can I save this collection of masks as a preset to be applied to different clips by dragging and dropping?
So far I have only worked out saving all the individual masks (Opacity) and locations (Motion) as individual presets. Then each time manually making the copies of the new clip and applying those effects settings to each clip. There are more than 20 masks and this is still quite tedious. Is it possible to save all of those masks as one preset, or in a preset bin, or as a layer, to be automatically applied to a new clip as a nested sequence? How would you go about doing this?
Sincere thanks for your help.
I have attached a screenshot of my workspace so you can see the effect build so far. The grid is only there for reference to position each mask.

I think to create a Preset in Premier Pro you have to add a few factors to it like effects
OK ?
Because you can't make Preset through musks
You make all the changes and add a separate effect to it, but set the keyframe to zero and do the factors according to the tutorial below.

Good luck

Hi Thanks Amer. I am aware how to build presets from effects, but I was asking if this is possible to bundle separate presets into one, specifically position of masks in this case. As you say you can't really make presets through masks which I guess is the answer. What I have done, is save all 20 masks each as separate presets (Location & Opacity effects), put them in a new Preset Bin. Then when I want to use the effect, I have to make 20 copies, and drag each mask onto each iteration of the clip, and then nest them. It works, just a little time consuming.

Hi, I thought maybe this could be done this way
With the explanation you gave, I think you should do the same as before, and unfortunately you may not be able to do that right now.
Forgive me again. Good luck


text:
Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_concat_0 (a different case)
I saw this answer ffmpeg batch overlay Error: "Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_0" for same error message but doesn't seem to be same case :
I first converted 2 gifs of same width and height to mp4 using ffmpeg options
ffmpeg -i video1.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video1.mp4
ffmpeg -i video2.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video2.mp4

afterwards I joined with
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "concat=n=2:v=1:a=1" -f MP4 -y video.mp4

But I got error
Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_concat_0

with other mp4 in the past joining works so I don't understand why.

Share full command that you tried.

@Gyan updated my question


text:
Using select in ffmpeg to choose frames
I am trying to use the select filter to choose frames to be included in the output file, but the resulting output file actually has more frames than the input file, which is completely baffling.
Following the example in the documentation to keep every 16th frame, I am using the following command:
ffmpeg -i input.MOV -filter:v "select=not(mod(n\,16))" output.MOV

output.MOV has more frames than input.MOV and nothing has been removed.
Interestingly, when I use the command:
ffmpeg -i input.MOV -filter:v "select=not(mod(n\,16))",showinfo output.MOV

it lists the frames that should be in the output (i.e. the ones that should be selected by the expression), but the actual output file contains more frames than that and seems to completely ignore the select filter (it seems to be the same no matter what select command I use, unless I use select=0).
Am I doing something incorrectly? I basically just want an example command that works the way I expect it to, so I can better learn how ffmpeg works.
Thanks.
Edit: select is not the only filter that ffmpeg seems to ignore when producing the output file, but if this problem is solved, the fix will probably work for other filters as well.

In your command,
-filter:v "select=not(mod(n\,16))"

does select only each 16th frame, as you have discovered. However, your output format is MOV, which is configured as constant frame rate. So, ffmpeg will duplicate frames if the timestamp gaps between frames from the filter output are greater than 1/fps where fps is the nominal frame rate of the stream, and drop frames if they are closer.
Add -vsync 0 to tell ffmpeg to not duplicate or drop frames.

Thank you for your answer. That does seem to work, but now I have the problem of fixing the timestamps so that the frames are displayed one after the other at the original framerate. I would have thought the -r option would do this, but the modified video is the same length timewise, even though it has fewer frames. Is there a fix for this? Thanks.

I think I need to use setpts=STARTPTS+N/(FR*TB) after the select and then it seems I don't even need the -vsync 0 option. The odd thing is it seems to have trouble with the frame rate so I just put the number instead.


text:
OBS studio capture webcam only?
When I use webcam as an input device, obs studio puts the webcam in the upper left corner of a big black area.  How to have only the webcam exported to file?
Update: this is what I see when using OBS.  I cannot see the webcam input unless looking at the properties.  The background is black.

You can grab the corners of the webcam object on the screen and expand it to fit the canvas.  Make sure the webcam source is the correct resolution (in the Sources column, right-click on Video Capture and click Properties, then check the Preset drop down).
Also check the Base (canvas) resolution is the size you want in the Preferences - Video settings.
Animated gif showing the process:

Hello tomh.  I am not sure what you mean by grab the webcam object on the screen and expand it to fit the canvas.  The only way I can see the webcam is by inspecting the properties.  See added image in OP.

added a gif showing the process


text:
ffmpeg convert and segment subtitles
I'm trying to create an HLS subtitle playlist from subtitles embedded within a video file.
So the input looks something like this:
container: mkv
  stream 0: video h264
  stream 1: audio aac
  stream 2: subtitle ass

And the output folder should look something like this:
index.m3u8
subs_0.vtt
subs_1.vtt
subs_2.vtt
...

Currently, I get to the desired output by using the following two commands:
ffmpeg \
  -i in.mkv \
  -map 0:2 \
  -scodec webvtt \
  temp.vtt

ffmpeg -y \
  -i temp.vtt \
  -scodec webvtt \
  -f segment \
  -segment_list_type m3u8 \
  -segment_list_size 0 \
  -segment_time 6 \
  -segment_start_number 0 \
  -segment_format webvtt \
  -segment_list index.m3u8 \
  -map 0:0 \
  -scodec copy subs_%d.vtt

However, due to constraints in the surrounding system, I'd prefer to combine these two steps into a single command.
But, whenever I try that, the output file is collapsed to a single subs_0.vtt file.
Currently failing attempt:
ffmpeg -y \
  -f matroska,webm \
  -i in.mkv \
  -scodec webvtt \
  -f segment \
  -segment_list_type m3u8 \
  -segment_list_size 0 \
  -segment_time 6 \
  -segment_start_number 0 \
  -segment_format webvtt \
  -segment_list index.m3u8 \
  -map 0:2 \
  out_%d.vtt

This command only creates a single vtt file, rather than the desired segmented files.
Is there a way to combine the two commands without losing the segmentation?
Edit:
I'm not sure if this is relevant, so I'm going to add it here.
The failing command produces multiple "Non-monotonous DTS in output stream" messages.
It sources from "segment", so I'd assume at least the correct format should be active, but maybe it prevents the segmented from splitting the file?
Example line:
[segment @ 0000011cec905440] Non-monotonous DTS in output stream 0:0; previous: 90402, current: 90400; changing to 90403. This may result in incorrect timestamps in the output file.

You need to disable the video and audio streams with -an and -vn options respectively, then use the generic segment output format instead of hls.
The segment muxer can produce HLS playlist format if the output file format has .m3u8 extension.
Copied from my answer on S:O (https://stackoverflow.com/a/76920564/1957951):
Here's an example that creates segmented VTT subtitles with 0000.vtt filename format and a playlist named index.m3u8.
Please note that FFmpeg automatically determines the internal format of the playlist by analyzing the file extension of the -segment_list, but this can be set with the segment_format option.
Command breakdown:
ffmpeg -y -hide_banner -i input.mp4 \
-vn \                       # drop all video streams
-an \                       # drop all audio streams
-map s:0 \                  # select the first embedded subtitle stream
-f segment \                # use generic segment format
-segment_time 3.0 \         # set segment duration
-segment_list index.m3u8 \  # set playlist filename (internal format determined by extension)
%04d.vtt

Output files:
By printing the contents of a subtitle segment, you can see that these contain only fragments of the original subtitle:
$ cat 0000.vtt
WEBVTT

00:00.000 --> 00:02.880
you may have seen videos in which someone is using

00:02.880 --> 00:06.660
an old computer when it suddenly
makes popping and crackling noises

The command produces a playlist in HLS format:
$ head -n9 index.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:12
#EXTINF:6.660000,
0000.vtt
#EXTINF:6.120000,
0001.vtt

I honestly forgot that I ever asked that question.
The current solution saves the subtitles as a separate file and provides that to the frontend. The frontend then is responsible for overlaying the subtitles. It's a pretty hacky solution, but it got me around and allows for ass subtitles.
I'll try it out and see if I can integrate it into the current solution. Thanks for your response!

No probs! I've recently run into the same issue and I tought I'll check if someone else had the same problem. :D


text:
Infinite loop RTMP Stream Using FFmpeg or Equivalent
I'm trying to do an infinite loop RTMP stream on a CentOS 7 server and it seems like FFmpeg would be the best way to accomplish that.  However, I cannot seem to coax FFmpeg into doing it despite following different variations of parameters I've found on StackExchange and elsewhere. I started by trying to simply have FFmpeg go through a playlist of H.264/AAC MP4 files that are remuxed from OBS Studio. It couldn't cleanly jump from MP4 file to MP4 file, giving errors such as:
 [mpegts @ 0x1e5b860] DTS discontinuity in stream 0: packet 30 with DTS 126030, packet 31 with DTS 128970

After that failed, I converted all the files from MP4 to TS using this command (as mentioned in a few places such as here):
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts

I can get FFmpeg to stream successfully once through a playlist after doing that, using this command:
ffmpeg -stream_loop -1 -re -f concat -i list.txt -c copy -f flv -flvflags no_duration_filesize -bsf:a aac_adtstoasc -preset veryfast "rtmp://{RTMP Server}/static/{My Streaming Key}"

However, it still stops after it gets through the playlist once. Is there something I'm missing here? Here's the full output of a session with those parameters:
ffmpeg version 3.4.8 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-indev=jack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --disable-encoder=libopus --enable-libpulse --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
[mpegts @ 0x133a100] DTS discontinuity in stream 0: packet 41 with DTS 126041, packet 42 with DTS 129003
[concat @ 0x1330e80] DTS discontinuity in stream 0: packet 41 with DTS -5965, packet 42 with DTS -3003
Input #0, concat, from 'list.txt':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720, 240 fps, 240 tbr, 90k tbn, 60k tbc
    Stream #0:1(und): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 265 kb/s
Output #0, flv, to 'rtmp://{RTMP Server}/static/{My Streaming Key}':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (High) ([7][0][0][0] / 0x0007), yuv420p(tv, bt709, progressive), 1280x720, q=2-31, 240 fps, 240 tbr, 1k tbn, 90k tbc
    Stream #0:1(und): Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000 Hz, stereo, fltp, 265 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mpegts @ 0x1835860] DTS discontinuity in stream 0: packet 30 with DTS 126030, packet 31 with DTS 128970
Error while filtering: Illegal seek90065kB time=00:04:46.19 bitrate=2578.0kbits/s speed=   1x
[flv @ 0x140b7c0] Failed to update header with correct duration.
[flv @ 0x140b7c0] Failed to update header with correct filesize.
frame= 8658 fps= 30 q=-1.0 Lsize=   90067kB time=00:04:46.22 bitrate=2577.8kbits/s speed=   1x
video:83684kB audio:5989kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.439653%

There are a couple of errors you can see during the stream (a few lines up from the bottom), but then it keeps chugging along, streams some more with what you see on the very last line and then appears to exit without an error.
I'd like to not only get it working, but ideally do so in a way that keeps the source files in H.264/AAC or something else that makes the job easy on FFmpeg, so that FFmpeg doesn't have to repeatedly re-transcode the same files each time it loops. (Both to avoid degrading the video more than necessary and also to make the work as light on my server, which has other jobs to do simultaneously.)
I'm open to using something other than FFmpeg if it can run on a headless CentOS 7 server, if I'm missing a more obvious tool to use.

Share full log.

@Gyan I added that above. Thanks for your help!


text:
FFMPEG fade out image overlay issue on windows 10
sorry if my question is not exactly the correct format, this is my first post here
I have created  a ffmpeg one line code that will  fade in and fade out a transparent .png as a overlay
here is my code:
bin\ffmpeg -t 10 -i "video w bottom.mp4" -i "utube watermark.png" -filter_complex "[1:v]format=rgba,geq=r='r(X,Y)':a='0.75*alpha(X,Y)',scale=150:150,zoompan=d=25*4:d=125:s=150x150,fade=in:st=2:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=10:10:enable='between(t,0,5)'" -c:a copy preview.mp4

now this works great!  BUT...  the issue i am having is if i try and change up the here:
fade=out:st=4  and enable='between(t,0,5)
then it no longer fades out correctly if say i change it to:
fade=out:st=5  and enable='between(t,0,6)
EDIT:
Here is the final code with with the info i got from @Gyan (I am sure can be cleaned up better)
SET /A overlayStart=2
SET /A overlayLength=6
SET /A fadeInDuration=1
SET /A fadeOutDuration=1
SET /A fps=30

SET /A startOverlayFadeIn=%overlayStart%
SET /A startOverlayFadeOut=%overlayStart%+%overlayLength%
SET /A betweenEnding=%startOverlayFadeOut%+%fadeInDuration%
SET /A overlayFullLength=%overlayStart%+%overlayLength%+%fadeInDuration%+%fadeOutDuration%
SET /A dur=%overlayFullLength%+4

bin\ffmpeg -t %dur% -i "video w bottom.mp4" -i "utube watermark.png" -filter_complex "[1:v]format=rgba,geq=r='r(X,Y)':a='0.75*alpha(X,Y)',scale=150:150,zoompan=d=%fps%*%overlayFullLength%:s=150x150,fade=in:st=%startOverlayFadeIn%:d=%fadeInDuration%:alpha=1,fade=out:st=%startOverlayFadeOut%:d=%fadeOutDuration%:alpha=1 [im];[0][im]overlay=10:10:enable='between(t,0,%dur%)'" -c:a copy preview.mp4

Hope this helps someone else out and/or they can expand on this

In zoompan, you have set d=125 so @ 25 fps, zoompan will create a 5-second stream.
Thus there are no frames after 5s for the fade to be applied to. The duration of the stream should be enough to cover the end of the fade transition. For st=5:d=1, total duration should be 5+1=6 or more.
Change to d=150.
P.S. In d=25*4:d=125 the first d=VALUE is overridden by the 2nd one, so it is useless.

I will make a edit of the full code in the OP in case this can help someone else. Thank you

how can i set this up to run  by say 2-3 times?  from a variable i set of %c% times? do i need to ask a new question? @gyan


text:
HLS stream playing only when first segment is in m3u8 list
I am transcoding a live DVB-T2 HEVC stream to H264 using ffmpeg. I have decided to use the HLS (segmented) output format (because I want to play the stream in a web browser, e.g. on Android phone).
I successfully created the segmented output using the following ffmpeg command:
ffmpeg -hwaccel rpi -c:v hevc -i input.ts -c:v h264_v4l2m2m -c:a aac -b:v 1500k -r 25 -pix_fmt yuv420p -num_capture_buffers 64 -hls_time 10 -start_number 0 -hls_list_size 5 -hls_flags delete_segments -f hls tv.m3u8

(In this example I am using an input.ts file, but normally I will use URL of the live stream)
I have created a simple HTML player based on https://github.com/video-dev/hls.js/ (example HTML is on their page).
The video plays successfully in browser and it can play for hours without any problem. But it can play only if I start it with the first segment (tv0.ts) and if I don't reload the HTML page.
If I reload the HTML page in browser and the first segment (tv0.ts) is no longer in the playlist (as old segments get deleted), the stream starts to play as audio-only (see picture).

I was trying to find a solution for few days, but I am not an expert. I want to keep only last few segments (because it is a live stream). I tried several ffmpeg parameters (-movflags faststart, -reset_timestamps 1, -g 50 -keyint_min 50, -flags +cgop) with no luck, but maybe I used them incorrectly.
I have noticed that the tv0.ts is playable in a video player, but others play audio-only. Idk if this is expected, because as I said, the stream plays fine (both audio and video) for hours if started with tv0.ts.
I am clueless. Any help or ideas will be very appreciated, thank you!
I have shared all files (.ts, .m3u8, ffmpeg log) here https://www.dropbox.com/sh/lwz9p229sxplxxh/AABb8_yYIIFw9Gy0-oq9iniRa?dl=0
ffprobe tv0.ts:
ffprobe version 4.1.6-1~deb10u1+rpt1 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  WARNING: library configuration mismatch
  avutil      configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avcodec     configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avformat    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avdevice    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avfilter    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avresample  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  swscale     configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  swresample  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  postproc    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mpegts, from 'tv0.ts':
  Duration: 00:00:12.00, start: 1.400000, bitrate: 1347 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720, 30 fps, 25 tbr, 90k tbn, 60 tbc
    Stream #0:1[0x101](cze): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 128 kb/s

ffprobe tv1.ts: (shortened output)
ffprobe version 4.1.6-1~deb10u1+rpt1 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt1' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  WARNING: library configuration mismatch
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
    Last message repeated 1 times
...
[h264 @ 0x686160] decode_slice_header error
[h264 @ 0x686160] no frame!
[h264 @ 0x686160] non-existing PPS 0 referenced
[mpegts @ 0x681a00] decoding for stream 0 failed
[mpegts @ 0x681a00] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'tv1.ts':
  Duration: 00:00:09.60, start: 13.400000, bitrate: 1459 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 ([27][0][0][0] / 0x001B), none, 25 fps, 25 tbr, 90k tbn, 180k tbc
    Stream #0:1[0x101](cze): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, ltp, 132 kb/s

This is a very old post - but were you able to resolve this issue? I am seeing very similar issues with the h264_v4l2m2m encoder

Found this: https://video.stackexchange.com/questions/20820/h264-omx-and-non-existing-pps-0-referenced . The encoder is different, but uses the same magical broadcom magic under the hood. And it's broken.


text:
Setting points and doing a quick "snip", dynamically playing the video
I need to cut out "best moments" from 1hour videos.(up to 6 moments per video)
What software is able to set in/out marks and save marked periods with keyboard shortcuts while watching the main video?
I'm thinking to make a bash script where I type in:

"02.22 04.44 clipName"

then it will execute a command:

ffmpeg -ss 00.02.22 -to 00.04.44 -i longVideo.mp4 -c copy
clipName.mp4

The exact software I was looking for
https://mifi.github.io/lossless-cut
Please donate to the author if you can and will use it, his soft saved my hobby gaming youtube channel and lots of free time)


text:
How can I put a VP9 video stream into a QuickTime/MOV container?
FFmpeg has no trouble putting all sorts of weird video codecs into QuickTime/MOV containers, including utvideo, hap, snow, ffv1, and cinepak. This makes sense, as it is my understanding that the MOV format should be extendable to any type of video stream.
However, when I ask FFmpeg to put a vp9 video stream into a MOV container, FFmpeg refuses.
$ ffmpeg -i file-with-vp9-video-and-opus-audio.webm -vcodec copy -acodec pcm_s16be test.mov

[...]

[mov @ 0x7fbb1b822400] vp9 only supported in MP4.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

Due to stupid and buggy software which is out of my control, I need a way to get VP9 streams into MOV containers. I cannot use a different container format, including mp4 or mkv. (I might be able to use WebM, but that does not support PCM audio.)
Is there another way to do this? It doesn't need to be with ffmpeg, but it does need to be with a UNIX program which I can automate in a shell script.

Edit: Quick note, I'm not opposed to doing something super weird, like muxing into an mp4 and then hex editing the header (just as an example, I don't know if the formats are close enough for that).
Which is to say, it can be a total hack. The software I'm working with will absolutely refuse to open anything that isn't a MOV, even though I have given it the capability to decode vp9.

Can you provide a link to an (pseudo-)official doc that VP9 is allowed in MOV?

@Gyan Not explicitly, but https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html says the MOV format "can be used to describe almost any media structure" because "unknown objects can simply be ignored or skipped, allowing considerable forward compatibility as new object types are introduced." So I think the container should be "allowed" to have everything? I also find it hard to believe that Apple specifically defined support for niche formats like utvideo or magicyuv (both work), which were written relatively recently and by individuals.

That's fine in theory, but in practice, metadata boxes including codec config/tags have to be written when muxing a track. Those can't be ad-hoc. We'll want either an official-ish spec or some specimen files with such streams generated by prominent apps, preferably by Apple.

VP9 is not supported by QTFF (see 2nd table at https://en.wikipedia.org/wiki/Comparison_of_video_container_formats).

Thanks all. Even if it's not official, I still would like a way to force it in there! Otherwise I'm forced to transcode the stream.

For my use case, it was enough to do:

ffmpeg -i file-with-vp9-video-and-opus-audio.webm -f mp4 -vcodec copy -acodec aac_at test.mov

This is cheating, really. The output isn't actually a MOV file, but rather an mp4, which uses a similar but not identical structure. Even so, it successfully coerced the program I'm using into opening the file.
Notably, outputting an mp4 and changing the file extension does not work, so the above command is producing output that's somehow different from an actual mp4. I obviously don't understand all the intricacies of how these containers work, but it was enough for today!

I can't run this cmd successfully. I get Could not find tag for codec pcm_s16be in stream #1, codec not currently supported in container

Oops! I posted this wrong the first time, I switched the audio codec to aac (since the container required it, and the audio isn't as important.)


text:
How can I change the sample rate of an audio file, without re-encoding?
I have a lossy AAC audio file. I would like it to be slightly faster, and slightly higher pitched. I would like to avoid loosing any audio quality, such as by re-encoding the stream.
I am well aware that if I wanted to increase the speed without increasing the pitch, I would be SOL for avoiding a re-encode. Same for increasing the pitch without increasing the speed, because these effects require relatively complicated filters.
However, I want to do something a lot simpler—increase the speed and the pitch at the same time, by the same amount. The same as what would happen if you played a vinyl record or cassette tape too quickly.
My recording currently has a sample rate of 44100hz. If I could change it to 48000hz without re-encoding, I would get a ~9% speed bump, which would be perfect! However, I can't seem to find a way to do this! Ffmpeg's asetrate filter, for example, requires a stream copy!
Surely there should be a way to do this? It seems technically simple...

Does changing the audio and video frame rates in the metadata have any effect?  (If not, where is the controlling information stored?

@RayButterworth I don't know how to do that! GUI apps don't let you edit that field, and I don't see a way to do it with e.g. ffmpeg.

I think whether this is possible depends on the actual lossy codec being used. Skimming hydrogenaudio, I found threads https://hydrogenaud.io/index.php/topic,115369.0.html, https://hydrogenaud.io/index.php/topic,33993.0.html, and https://hydrogenaud.io/index.php/topic,102416.0.html.

They seem to imply that it might be possible by changing header data, so long as the actual lossy encoding doesn't rely on the specific sampling rate for its decoding "You might run into troubles if you change the sampling rate. AAC makes use of a sampling rate specific partition of the spectrum into scalefactor bands. Changing the sampling rate could render the AAC stream useless (I'm not 100% sure)."

I suppose you could just try it and see. I don't know of any off-the-shelf way to edit this data, you could probably pull up the aac format spec and use a hex editor, or modify ffmpeg to get it to write out the value you want. Also note that some container formats (like mkv) support overriding the sample rate at decode time.


text:
angle of skin tone line on vectorscope
Some vectorscopes have a skin tone line to guide the correct color of human skins. However other vectorscope such as that built in FFmpeg does not have the skin tone line.
Is there a standard of the skin tone line?
What is the angle of the skin tone line?
Is there a difference between 601 and 709 color spaces?

I had a discussion on another thread after posting this question. What I found is that the line varies on tools around 32 to 34 degrees at BT.709 color space.


text:
Easy way to create a simple animation and trace path of a point?
I need to create a simple animation like this video.
I know this video is Created in MicroStation, but i don't need a complicated program for this and i think a simple one will be enough.
I just need to add some points, lines and set rotation speed, direction and trace path of one our two points. In video above look at Venus path.

Any suggestions?
Look at this image, Is there any program that lets me visually create something like this and trace orange dot path?

Your web browser?

I think the problem with the question is that your not specifying what your skill level is. This isnt particularly hard its just that it all depends on where you start and what you have access to. I mean yes processing easy, but then matplotlib for python is equally easy. But noncomplicated seem sto indicate you expect a lucky break

Your right, I'm familiar with HTML Canvas and using Js to draw on it and i worked with CAD and CAM programs but i don't think that this problem needs a very complicated designs and coding (maybe I'm wrong). If there is a program with a GUI that simply lets me create rotating objects around another one and trace one point, would be nice and easy. I'm searching and if not program available i will continue with Processing.

it does not its just that programs do not generally aim to be this simplistic. They need to be overall competent or there wouldnt be a program. I would invariably do this in maya but blender is also a good choice. Mathematica is also a good choice. After effects might work too. Anyway, complicated is not a big thing here. I tested this and got it working in 15 minutes in maya, and 20 in mathematica. But then both of these apps have a 3-12 month learning curve.

If it was me I'd be 100% doing this with Processing. Processing is a Free / Open source programming environment / language that lets you easily make parametric animation like this. If you have the maths behind the curve sorted then implementing it as a processing sketch would be fairly straightforward.
A good starting point would be this sketch: https://processing.org/examples/sinewave.html
https://processing.org/examples/sinewave.html

Thank you for your answer and i think Processing is one of the best options for my request. But for a simple line that attached to a circle that rotate around another circle and another object is a little bit complicated and i think maybe a GUI would be easier. I'm familiar with programing and searching for an easier way if exist and if not I'll definitely back to Processing.

It could also be done with After Effects, but that would also require expressions.

Easy is subjective, but using Solvespace may allow you to accomplish your objective. The included link has a section about three-quarters of the way down referencing the trace point feature of the program.
Solvespace is a multi-platform, free program that allows for parametric designs in 3D but will function fine for 2D projects such as this.

This image from the linked site shows a 4 bar linkage with length parameters applied.

Animation though?

screen recorder?

Thank you for your answer but it does not have animation function, And for screen recording i must change points location manually to trace and one point at time


text:
How do I create a library in FCPX 10.5 with Final Cut Projects and Final Cut Events folders?
There're some online tutorials that have materials organised into 2 folders: Final Cut Projects and Final Cut Events, if they're in 'Movies'.

Their videos show that older version of FCP seems to recognise these folders by default, and can browse projects and events in these folders directly.

I'm using FCPX 10.5, and I can't find out how to import those projects and events into a new library.

If you click the dropdown in your library, you will see a folder named "Smart Collections" under that, you'll see Projects. Any and all Events will be under your Library hierarchy, these folders will be created automatically.

Thank you, Ishaan. But sorry, I didn't describe it clearly. I've added some screenshots now.


text:
Adobe Media Encoder (Why is it not using all the available power)
System Spec:
16 core 3950x
Nvidia rtx 3080
64gb of ram
1tb nvme
2tb ssd
4tb hdd

Software
AfterEffects - v17.5.1 (build 47)
MediaEncoder - v14.7 (build 17)

Problem:
So I'm outputting a fairly complex render at 1080p 30fps and the media encoder is only using 3% of the CPU and 6% of the GPU. I have always had issues with rendering but this new pc I have just bought should be rendering much faster than the old setup but they are basically identical. Can someone explain if there is something I can do to increase the performance or explain why the hell this shit is like this?

So after quite some time it turns out ame is pretty useless on using as much comp resources as you have. I did how ever find a really solid solution. Rendergarden is a third party tool that splits the output render into chunks and renders them all in parallel. I went from using no more than 3% cpu to render garden using as much as I asked ie 96%.
This axes render times by a factor I genuinely cannot believe. In real terms it cut a 3h 52min render into a 24min job. (16 CORES SMASHES THROUGH RENDERS)
It does cost money but if you are experiencing this issue this 100% removes the media encoder render bottleneck.

If you think this is a useful answer, you should set the "accepted answer" check mark.  That way the system won't keep asking people to provide a better answer, and people with a similar question will notice that this one has an answer that's marked as useful. and so be more likely to read it.


text:
how do I create 23 fps proxies for footage shot in 30 fps and interpreted as 23 fps
I am trying to create 23 fps proxies for footage shot in 30 fps and interpreted as 23 fps
I watched and carefully followed the Youtube video that explains exactly this and I am still getting out of sync proxies.
Steps I tried:

Create my encoding configuration in Adobe Media Encoder with these settings:
Format: QuickTime, codec: Apple ProRes Proxy, Resolution: 480 x 270, Frames/s: 23,976
Create a corresponding Ingest configuration without making any modifications
In Premiere, configure the ingestion to use my settings
Import my footage in my project and set the interpretation to 23,976 frames/s (select footage in project --> right click --> modify and set to 23,976 frames/s)
Cancel the encoding queue in Media Encoder, reset the state, delete the stale proxy and setup the interpretation to 23,976 frames/s (right click and modify to 23,976 frames/s)
Restart the encoding in Media Encoder

When it finishes my proxies are out of sync (enabling and disabling the proxies in Premiere makes the footage skip to a different frame)
What am I doing wrong? How should I interpret this? Anything in particular I should read?
What's also strange is even the footage I shot in 23,976 is out of sync with its proxies. I am struggling to understand what's going on here... Thanks for any tip or advice.
EDIT: I possibly found the source of the issue. The frame rate set in Media Encoding is not properly set it Premiere. Here are screen shot showing the discrepancy (sorry it's in french but it's easy to relate to the settings concerned).

As we can see from the screenshots, there is a discrepancy between what's set in Media Encoder (23,976 fps) and Premiere's ingestion summary (showing 59,94 fps). What am I missing? I just created this set of presets and I made sure they're the same in ME and Premiere.

The solution was to delete the presets I was using in both Premiere and Media Encoder and start from scratch. Somehow these 2 had gotten out of sync and the presets in PrPro and Media Encoder we're not using the same frame rate. I didn't understand how this got out of sync unfortunately.


text:
What is the difference between .mts and .mp4 video files, and which is better to edit?
I know that .mts video files use MPEG-4 video compression. But why then don't they just have the .mp4 file name extension?
Since they don't, this means they are not digitally nor conceptually equivalent, given that one is just an advanced version of the other ("Advanced Video Coding High Definition (AVCHD) format" if that means anything), so what really is the difference between .mts and .mp4?

And what does it mean for editing .mts files in a video editor? Is
there some sort of advantage to cutting and adding effects to them
compared to .mp4

mts and mp4, in this case, are file containers. In each mts video/audio frame has a presentation timestamp or PTS embedded in a packetized elementary stream or PES whereas mp4 video/audio frames don't. Each frame, in mp4, is a raw video/audio content depends on the encoding configuration, and it does not have a timestamp; the timestamp is the frame number/count divides by the frame per second.
I am not sure where does the statement or question

for editing .mts files in a video editor

come from, but if I evaluate video contents against audio contents, I need to extract timestamps for those target video and audio contents. If the file contatiner is mp4, it would be pain in the neck since I need to know the frame number of the target contents and estimate the timestamps of them.
But it's just the challenges of handling/validating stream content from scratch; talking of video editing, even Kdenlive and Openshot can handle a mp4 file well. I think the statment was about the early version of video editor, not for today.

Thanks for your reply. first you say that mp4 is a pain to edit video-to-audio, but then you say Kdenlive and Openshot can edit mp4s well. Are these statements somewhat contradictory? and where does .mts fit in all this

As i mentioned "it's just the challenges of handling/validating stream content from scratch", those video editors handle those tedious preparations and get everything easier.

Is it bad practice to edit an .mts file without accompanying auxiliary files that a camcorder saves on-drive with it? Should someone convert the .mts to .mp4 or another format before editing?

I'm not sure what kinda information happen in auxilliary files; i suspect they are thumbnails plus timestamps help you preview/fast-forward on your device/camcorder. You can try playback the mts on VLC,https://www.videolan.org/vlc/. if it's doing fine on VLC, the file should be self-contained.

So final verdict is it's better to edit an .mts file isntead of a .mp4 file?


text:
Is SSD a safe replacement for HDD video storage?
Small M.2 SSD (solid-state drives) are increasingly replacing HDD (hard disk drives) in new PCs for file storage.
SSD is proven to be better for video editing, but what about video storage? Is a PC with 2 SSDs (1 for editing, 1 for storage) better than a PC with 1 HDD (for storage) and 1 SSD (for editing)?
In terms of your valuable video files being safe from data loss, corruption or fragmentation. For the purpose of safe storage.

fragmentation is rather irrelevant when talking about storage. In fact fragmentation is less of an issue with the filesystems used these days

are you saying because  the filesystems these days are SSD instead of HDD?

SSD and HDD are not filesystems

I agree with Tetsujin's answer - I would not use SSD for long term storage. I've already had scenarios where I've gone to read data of stored SSDs, and found them not readable. I'm yet to encounter this on any external HDD I have parked away (but would not be surprised if I have some dead ones in my archive at this point).
If the footage is particularly valuable, I would keep at least 2 copies in different mediums, and check them at regular intervals. All my important material sits on network storage (NAS), which has disk redundancy within the unit. My primary NAS is backed up to a secondary NAS, and then I have a set of backup disks that I plug in at various intervals, which also keep a backup of the same data. I also keep some data backed up to the cloud (Dropbox, Backblaze), but those services come with a cost - it's a more limited backup.
I also have tons of raw footage that I don't ever expect to need again, which just sits around on external drives - again, HDD, not SSD. I would not trust SSD with anything important, how many other backups you keep depends on how important the material is to you, and how long you want to keep it safe.

Actually have some footage on DVD-RWs that haven't played in 5 years. Are DVD-RWs safe for long-term storage?

Unfortunately NOT. Writeable media depends on the quality of the media, I've had CDs burned 30 years ago that still read, I've had others fail within 12 months (different brands). These days I trust the NAS more than anything, because of the disk redundancy within the unit, and because I cycle the disks before failure regardless - HDDs generally last 5 years safely, and I don't keep any older than that. My most valuable data also sits in the cloud, but remember companies make mistakes or go bust, so don't make that your only copy either.

Is data recovery possible for DVD-RWs like corrupted USB flash drives?

Once damaged/degraded, any data on the damaged portion of the disc is gone. There are methods to recover the still readable portions of the disc, see https://superuser.com/questions/508679/how-can-i-copy-files-from-a-scratched-cd-dvd for options, but that's the best you would be able to do.

by damaged/degraded, I do not mean physical damage. A DVD-RW with absolutely no physical damage, never played for 5 years, sealed in disc container, super mint condition. Still it can result in data loss?

https://en.wikipedia.org/wiki/Disc_rot - if you haven't played them in 5 years and they are your only copy, I'd be checking on them and making another copy, if the data is important to you. Like I said, I've had discs degrade like this inside of a year, sitting around not otherwise being used.

There's a lot of technical data on this, if you research…
In broad strokes, once you've disconnected it & put it on a shelf for long-term storage an HD will last a lot longer than an SSD.
Here's one very simple citation from a reputable data recovery company [no tech details, you'd have to look up the research if you need more]
Data Recovery Specialists - The lifespan of HDDs vs SSDs


text:
Non-destructive video editors
Image editors are classified either as destructive (Photoshop and Gimp) or non-destructive (Darktable) editors. The former irreversibly hard-codes effects and edits into the image based on the sequence they are applied, whereas for the latter, all changes to the image are reversible and agnostic to the sequence in which the other effects and changes are applied.
Adobe Premiere Pro, being the video counterpart to Photoshop, must therefore be a destructive video editor, right? Are there any video editors that are non-destructive instead?

I've never used Premier, but FCP & DaVinci, whilst saving a 'hard copy' final version, can be re-edited at any time. The original clips are preserved & cuts/cross-fades/titles/colour grading etc are simply overlays in the timeline. The final output does not overwrite the input files, which would imo, make it non-destructive.

i think you've mis-interpreted the meaning of non-destructive editing. Destructive editors also treats all effects as overlays on the timeline or side panel, but the idea of non-destructive editing is that each effect is independent of all other effects. This is not the case with Destructive editors, which applies each effect in the sequence they are applied: Effect 1 before Effect 2, will look different than Effect 2 before Effect 1.

Not really. Though I'm from an audio background rather than video, Ive been doing this 40 years, since before you could do it on a computer. If you record a clean guitar; then put it through a reverb & a guitar amp, the order matters, but the original signal remains untouched. That's considered non-destructive. I've never heard of video having a different definition to audio.

Yes, now you understand the meaning. Like non-destructive audio, non-destructive image editing is widely known outside of Photoshop. But when it comes to video editing, is every video editor on the market only destructive then? ... These 2 terms are independent of whether or not the original signal remains. Because of course, when you're in-program, the original signal can always be returned to by pressing undo or hiding layers. Don't worry about that.

"now you understand the meaning" ...well, I do, but I'm not sure you do. It seems we disagree fundamentally on what the definition is. "is every video editor on the market only destructive" - no, not by my definition & you have yet to clearly explain what your definition is.

In my very first comment.

like Final Cut Pro and Da Vinci as you say, pretty sure Adobe Premiere also preserves cuts/cross-fades/titles/colour grading etc as overlays in the timeline. That doesn't make it non-destructive though.

Then you're going to have to accurately define your specific interpretation of "non-destructive", as it seems to be different to everyone else's.

you're the only one here. there is no one else.

There were 3 upvotes on my very first comment. I can only assume everyone else lost interest after that. You still need to actually provide a definition, rather than arguing for argument's sake.

read my 20 comments above. i defined not only in the original post, but repeatedly in the comments. which means you refute the definition which can even be googled: "Traditional photo editing is ‘destructive’. every adjustment you make permanently changes the pixels in the photo and there’s no way back unless you’ve saved a copy of the original and you’re willing to start again. ‘Non-destructive’ editing is fully reversible. You can go back and undo or redo all of your editing work at any point in the future. " I apply the same to video editing, but stress sequentiality

OK… sequentially. Apply a cut between 2 scenes, apply a  simple cross-fade, then a LUT. Move the cut, the crossfade moves too & the LUT is reapplied to the new edit. How sequentially would you like?

Adobe Premiere Pro, Final Cut Pro and Da Vinci are all non-destructive video editors, although it hasn't been tested in these programs whether the sequence in which effects are applied are independent.


text:
Does transcoding or compression occur when importing and editing .mts (.mp4) video files?
If a .mts video file is opened or imported to a project in a video editor like Adobe Premiere Pro, is transcoding going on? Video or audio compression? If so, why, instead of editing the raw file as is?

If you don't transcode you are limited to cuts only on i-Frames, no effects, colour grading, transformations etc. Nobody will die if you transcode your video, if quality was that important you'd shoot on a camera that produced 16bit RAW files, not .mts.

You have control over this. If you use the correct settings, you will work on the original file.
When you setup a project you can define what Ingest Settings to use during import. Those settings can also be changed later. In your case you probably want to use Copy.

If you drag and drop a video from the Media Browser panel to the Project panel the video will be imported. By clicking the Ingest checkbox before dragging the video you can control if ingest settings are used or not. If the box is unticked, the video will remain in its folder location. If ticked, the ingest settings you have selected will be used, e.g. the file will be copied into the targeted folder location (as defined in the project settings under Scratch Disks). The wrench icon right of the ingest checkbox opens the ingest settings again.

Now to the second part: why not work on the raw file? Sometimes the codec of the source material is not suitabel for editing. If you transcode to suitable formats that use intraframe codecs you usually don't have to worry about the quality, but the video editing works overall better (here's a bit more on this).
Another reason why you do not want to directly work on the original file is if you're computer is too slow. For example if you edit 8k or 4k raw video most computers will become visibly slower at some point when they have to apply various effects. In this case lower resolution proxy videos are a great help. (here's a bit more on that topic). And don't worry, in the end, when you export your video the original videos are still there and all the editing is applied on these and so you export the good quality videos, not the proxies. You can switch back and forth between proxy and original video in Premiere whenever needed.

Isn't "ingest settings / copy" just the same as the raw file?

@user610620 Yes, that's correct, the original file is just copied, nothing more.

Is the .mts codec singular and universal? Or are there many different codecs of it. If so, how to tell which codec a file is?

The mts file ending is an alternative for m2ts. It's a container format which can contain different codecs, you can read about it here: https://en.wikipedia.org/wiki/.m2ts

.m2ts says it's MPEG-2. how does that relate to .mts being MPEG-4?

The transport stream has been defined earlier, in version 2 of the ITU MPEG standard as well as other things. Later, in version 4 they added new codecs. These codecs work also with the version 2 container format. This means you can pack a supported MPEG-4 codec into the MPEG-2 mts container. Both .m2ts and .mts are the same, so both accept an MPEG-4 codec.


text:
Converting first audio track from 7.1 or DTS to 5.1 AC3
I have two folders full of movies in mp4 container.  One folder has 7.1 AAC track first, AAC stereo track 2nd.  The other folder has a DTS track 1st, AAC stereo track 2nd.  For compatibility reasons I would like to convert that first audio track in both folders to 5.1 AC3 and leave the stereo intact without changing the video stream.  Can someone help me with what commands to use?  I am new to ffmpeg, and the best I have been able to do is adding a 3rd audio track.  If possible I would like to end up with just the 2 tracks.  Thanks.

I don't have a good solution explanation for you, but I do have a link to a similar discussion on a reputable A/V forum that may be helpful: https://forum.doom9.org/showthread.php?t=181635


text:
Is there "audio pitch compression"?
There are plenty of guides for shifting audio pitch, but is there a way to compress audio pitch?
I have a video that has a voice with a very low pitch and a voice with a very high pitch. I can shift the pitch up to make the low-pitched voice easy to understand, but move the high-pitched one even futher away from my hearing range, or I can shift the pitch down to make the high-pitched voice easy to understand, but lose the low-pitched one.
I am looking for a way to get both voices into my hearing range, i.e. compress the range of audio pitch, just like normal audio compression reduces the range of audio volume.
Usecase: Change the audio so all voices fit into comfortable hearing range of a person.

Split the track by speaker. Process each individually. I doubt there is any 'compressor' for this type of pitch change. It has very little practical use-case.

(I really want to hear the two voices now)

LOL @tomh - tbh, this could probably be done by Melodyne; bulk select the highs then the lows & shift them some arbitrary amount in opposite directions. I suppose that would let you test formant vs 'straight' shifting, but it's going to be a tad expensive for what is unlikely to be a great result. .. & yeah, I'd love to hear it too, to know just what we're up against ;)

You could put it all through AutoTune and constrain it all to a single pitch, then back off the amount of AutoTune. The results are unlikely to sound very natural though. Unless you are Cher...

…or use a vocoder.  Either way, it's likely to end up sounding like Daleks ;)

The best term to describe what you are seeking is frequency shifting. You can find many audio editing tools that can do it.

tomh + Tetsujin, Interesting suggestions. Not sure if they would improve hearing comfort, but I think they would work, thank you.
The thing is, I would like to keep the voices different. Otherwise there is no benefit to this over subtitles.

You are looking for frequency shifting, not a frequency-based analogue of compression*.

I am looking for a way to get both voices into my hearing range, i.e. compress the range of audio pitch, just like normal audio compression reduces the range of audio volume.

Frequency shifting is not a good analogue to compression, aka dynamic range compression.

Dynamic is used because compression looks at audio over time and uses varying levels of processing.

Range is used because compression changes audio amplitudes so they are closer together (i.e. within a desired range).

Frequency shifting, aka pitch shifting, at its simplest, is not dynamic. A simple form changes each frequency by a fixed multiple. (Therefore, this kind is not dynamic.) For example if a 2X multiple is used, a 400 Hz signal becomes 800 Hz, and a 600 Hz signal becomes 1200 Hz. Note that the frequencies are now further apart. This is what your ears expect, however.
You can find many audio tools that can do frequency shifting (aka pitch shifting). One place to start is https://en.wikipedia.org/wiki/Comparison_of_digital_audio_editors which includes tools such as (in random order):

Pro Tools (Avid)
Logic Pro (Apple)
GarageBand (Apple)
Audacity (open source)
Reason (Reason Studios)
Audition (Adobe)
Live (Ableton)
Hindenburg Pro (Hindenburg)

I have not verified that each can do pitch shifting, but it is likely that most or all can.
* A true frequency-based analogue of compression might be interesting. Or it might scare away all living things. To achieve it, I'd recommend programmatic audio processing software such as SuperCollider, CSound, ChucK, Max, or Sonic Pi.

Thank you for trying to help, but I am explicitely not interested in frequency shifting. I want both voices to be easy to understand at the same time. But I totally agree on "might scare away all the living things" part.


text:
Adobe Media Encoder inactivated Tint map colors from After Effects
I've been generating video uses a template with a Color Control layer that applies to all scenes for a while.
The pre-comp's (template) layers use Tint to map its colors to a the control layer colors.
Preview is correct due to Tint, AE renders the colors perfectly, But AME is no longer render this effect correctly.

Preview in AE :

Output after AME render :

I don't trust Media Encoder to reliably output complex After Effects projects (or Premiere for that matter). I just render in the application. Not a good answer, hence the comment instead.

@tomh, Thanks for your comment, The wrong about in-application renderer is the missing support to produce H.264 encoded video. Which is very light compared to the supported.


text:
How to choose two lights lighting for pure black background and dark clothes with post-production?
I'm starting a low budget project that needs thousands of short videos like this one.
I'm not an expert, neither a video production hobbyist, I don't know anything about Video Production. I did a little research and purchased a black muslin background, and two dimmable ring led lights.
The ideal result I'd like to achieve is like the following image:

The thing is that I want the actor's clothes to be distinguishable from the background, while wearing a nice dark grey t shirt like in the photo. I was thinking about using one light as back light for a soft "white aura" at the borders of the actor's clothes and hair.

The muslin alone doesn't make a pure black backdrop, so at post production I'm going to lower the shadows and brighten the middles and lights (?).
But can I use a back-light and a fill light to achieve this?