text:
Understanding an FFmpeg command (blurring a video)
I searched for a FFmpeg command to blur part of a video, and found the following:
ffmpeg -i short.mp4 -filter_complex
       "[0:v]split=2[v0][v1];
        [v0]crop=200:200:60:30,boxblur=10[fg];
        [v1][fg]overlay=60:30[v]" -map "[v]"
    -map 0:a -c:v libx264 -c:a copy -movflags +faststart filtered.mp4

(cut-cat minimal video editing bash script)
Unfortunately, I can't blur the part of the video that I want to blur. So, I took a picture with the same resolution and color so that someone may help me understand what to do, and perhaps even explain what the numbers in the code above mean or refer to.
Here's the picture:

https://i.ibb.co/4fZNcgN/ask-368-X320-WHITE-BLURED.png

Welcome! Please share your answer so that others may benefit. There is nothing wrong with answering your own question and marking it as accepted.

The above command line was copied from FFmpeg - Apply blur over face which also provides a good explanation:

Note: The x and y offset numbers in overlay (60 and 30 in this
  example) must match the crop offsets.
What this example does:

Crop the copy to be the size of the area to be blurred. In this example: a 200x200 pixel box that is 60 pixels to the right (x axis)
  and 30 pixels down (y axis) from the top left corner.
Blur the cropped area.
Overlay the blurred area using the same x and y parameters from the crop filter.

So: the 200:200 is the size of the blurred area and 60:30 its position relative to the top-left corner. The input v is split into two streams v0 and v1 where v0 is blurred and the result is named fg. Streams v1 and fg are composed to the final stream v.


text:
How to change the font and color on multiple keyframes at once | Adobe After Effects
Hey there I ran into a small problem creating a video, and I haven't used any video editing software before, so I am lost right now and I have no idea on how to solve my problem which problem goes like this...
I have been creating a “typing effect” by adding a new keyframe for each letter to appear with two frames distance between keyframes, each sentence was put into a new layer (about 40 keyframes per layer, 4 layers).
Each letter is written in Times New Roman font, 36 px size, color white.
I never knew that the font details are written into each keyframe, and believed that I can adjust the font style color and size after I finish creating the effect (now praying for what I believed to be true).
After I finished with the effect and tried to  change the font by selecting the entire text and choosing the desired font, a new keyframe was created which did changed the text font when the Time Indicator has reached its position on the timeline, but that is not what I wanted.
Here is what happens right now: the video starts, and each letter shows up in the font that was originally written into (Times New Roman) when the time indicator has reached its position, and after the entire sentence has already appeared and the last keyframe is reached, the entire sentence changes from Times New Roman to the font that I have selected when I created the keyframe.
And now I feel like I have to recreate the entire video by pre-selecting the desired font preferences so if you know any solution on how to change the font on already set keyframes please share it with me and you will save me a lot of time.
Any help is really appreciated!

not sure how you are creating the typewriter effect??
You can use or change the font or color to anything you want.
Create the text then apply the typewriter effect. Adjust effect with the range selectors with the start/end keyframes.

I am using the following method https://youtu.be/THZKcNl-GPo

That tutorial is so full of wrong it made my nose bleed. Next time don't go following idiots' on spewTube until you've checked the actual Adobe website where people who actually know what they're doing can show you: https://helpx.adobe.com/after-effects/how-to/creating-animating-text.html

change font & colour in one text and copy the select both effects from effects panel
and select all layers with your text and paste it.

Create a new text layer, call it NewText for example.

Connect the Source Text property of it to the Source Text of the Original text layer (call it OriginalText for example). Do this by either clicking and dragging the pick whip, or by using this code:
thisComp.layer("OriginalText").text.sourceText

Now you can change Color, Font, and anything you want.

source: Stack Exchange

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

sort: votes


text:
Is it possible to do programmatic automation with Final Cut Pro?
I have a large library of videos for a video instruction product. I have mostly been automating my workflows with FFmpeg and Ruby. I pull information such as titles, instructors' names, etc. from a database, and do some simple intro animations.
Is it possible to programmatically manipulate video with Final Cut Pro (I haven't bought it yet)? For example could I add join an “intro” animation, overlay animated text with all my 3000 videos for example?
How is automation done on large file sets done in the Video Production world? I'm a software engineer by trade, and I have only basic video production knowledge (but I want to learn!).

Davinci Resolve and Fusion would be a better choice than FCPX/Motion if you're looking for something that supports standard scripting languages (lua and python 2/3).  From there, you can install whatever modules you need to get hooks into your data.  Adobe has their own ExtendScript for AfterEffects, which is based on JavaScript, but I can't really comment on it.  FCPX and Motion are probably the least script friendly of the major NLEs.  I'd guess that most larger studios probably use Nuke, which also uses Python, but if you're just starting out, Resolve/Fusion is a cheap entry point which scales well towards Nuke.
Automation of large file sets typically falls under the purview of a production's Technical Director (TD), who would be great people to befriend if this type of work interests you.

You may be able to use a variant of XML and AppleScript to accomplish your goals. See the Apple page on the subject at https://developer.apple.com/documentation/professional_video_applications/content_and_metadata_exchanges_with_final_cut_pro

I think you best chance would be Automator in combination with Apple scripts. However that's a tricky one and maybe FCPX won't work for you.
I couldn't think of any NLE which would fit your example though. The FFmpeg workflow solution might be best.

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


text:
H.264 video packet duration missing
I have H.264 files that, when I run FFprobe on them, like this:
ffprobe -i h264_file.ts -show_packets -select_streams v

...it shows that each video packet has no values for duration, and no value for duration_time, like this:

...
[PACKET]
codec_type=video
stream_index=0
pts=8098077717
pts_time=89978.641300
dts=8098077717
dts_time=89978.641300
**duration=N/A
duration_time=N/A
convergence_duration=N/A
convergence_duration_time=N/A**
size=2354
pos=14633920
flags=_
[/PACKET]
...

My question is, other than re-encoding the file, and assuming I know the source to be 60 fps, is there a way to correct this video packet duration?
I know I can do it by re-encoding - I have done so successfully.  But I am wondering if there is an easier and faster way of doing it.

Why do you need duration? The effective duration is the delta with the pts of the next frame.

Without the packet duration, MythTV thinks the transport stream file has a duration twice as long as it actually is.  I think it defaults to 30fps, but this source generates files at 60 fps.

I don't have a sample of your file so I don't know if this fixes it or not, but have you tried a simple remux?
ffmpeg -y -i h264_file.ts -c copy remuxed.ts

This is also basically the same thing, but helpful if you want video and audio in separate files before you remux:
ffmpeg -y -i h264_file.ts -map 0:0 -c:v copy -muxdelay 0 video.ts -map 0:1 -c:a copy -muxdelay 0 audio.ts
ffmpeg -y -copyts -i video.ts -i audio.ts -c copy remuxed.ts

You could also try reencoding audio but copying video.  Encoding audio but copying video will be fast and usually concerns about reencoding loss is a lot less significant with audio.  (Use audio synchronization, see -async in documentation.)

I hadn't considered re-muxing it - thanks for the suggestion.  I will try it and reply back.

Unfortunately, the re-muxing did not fix it.  Specifically, I tried the two separate steps you listed.  I also tried:  ffmpeg -i ./file.ts -c copy file_remuxed.ts ffmpeg -i ./file.ts -c copy -vsync drop file_remuxed_vsync_drop.ts ffmpeg -i ./file.ts -c copy -r 60 file_remuxed_r60.ts ffmpeg -i ./file.ts -c copy -r 30 file_remuxed_r30.ts All resulted in packet durations of N/A when examined using ffprobe.


text:
Cannot import XAVC S/AVCHD with Premiere Pro CC 2019
I am attempting to import XAVC S/AVCHD footage from Sony a6300 camera. It seems the proper way to do this is to use the Media Manager window.
The issue I am having is that it does not detect it as anything other than files, and the all other options are greyed out in Directory viewer.

If I try to import entire PRIVATE folder, I get “File Format not supported” errors.
If I try to import M4ROOT or M4ROOT/CLIP folders I get “The imported reported generic error” for various metadata files like XML files.

Either way it seems I am loosing metadata. Transcoding is obviously not a good option as you would end up transcoding twice.
This is XAVC S/AVCHD format and uses MP4 container so all files are within M4ROOT folder and AVCHD is empty.
How can I import this format properly with Premiere Pro CC 2019 under Windows?

Do you really care for metadata? What are you missing by importing just the media files?

the same problem encountered here with a different sony handy cam.
I don't know how to solve the issue but I have a way to get around it.
import both AVCHD file & MP4 file in Premiere Pro and open both in a sequence.
now use video of AVCHD file & Audio from MP4.
\\ I don't want to use video from .mp4 file because its resolution is lower than the AVCHD.

I don't know what you mean by import both, obviously there can only be one or the other format, it's a choice in the menu, you cannot have both at least I have not seen this feature on any device yet. I believe I do get audio from AVCHD it's just the errors that bug me and who knows what issues that might be causing.

@DominicM I suppose raven records a proxy video in MP4 format along with AVCHD. This is not hi-req XAVC video, but a low-res AVC, which is why he prefers AVCHD. Not sure why he thinks that audio recorded in this proxy is of higher quality than audio recorded in AVCHD file.

Usually the files on the memory card are split up / arranged by a variety of methods to support the file system of the memory card (splitting files up so they don't break 4GB file limits, etc). If this is the case, you then need to use Sony's Catalyst Browse application to re-assemble these into standardised single video files on your editing system, rather that trying to deal with the raw files on the card.
Sony's download page is here:
https://www.sonycreativesoftware.com/catalystbrowse
The program should enable you to view the actual recordings, as opposed to the raw files. For example, I've got a card here with 36 raw video files on it, not including all the metadata files, but only 10 recorded sequences when viewed in Catalyst Browse. You should then be able to copy the recordings across to your editing machine as required, they'll be reassembled into single files per recording for you.


text:
RAM in Premiere Pro
I wanted to know if my way of editing is going to hurt anything on my computer or not.
So I have my cache, scratch, and project folder set to the same drive separate from OS and adobe app drive and 16 GB of ram.
When I drop files from the drive onto my premier timeline, RAM and disk usage shoots up taking all the RAM then goes down to 11 GB or so.
Is it normal, or is there a problem I'm not seeing?
Thanks for your time and patience, I'm completely new to editing.

When I drop files from the drive onto my premier timeline, RAM and
disk usage shoots up taking all the RAM then goes down to 11 GB or so.

Probably it's normal, because Premiere use all available RAM at first, then it cleans up part of ram that it don't use or maybe locate data from RAM to SWAP file.

Try setting the RAM usage inside Premiere Pro performing the following actions:
Edit -> Preferences -> Memory -> RAM reserved for other applications.
Try setting it up to comfortable amount of RAM as You might have it set too low.

is the problem im looking that its not loading stuff onto the ram and just working off files from the hard drive?

@nunez7890 Well what You are describing up above I would call "normal" Premiere Pro behaviour. It is far from optimal using only 1 drive for all the data that is being used by the software. The ideal situation would be to have:

OS drive.
Application drive.
Cache drive.
Used footage drive.
Export drive.

If you have multiple partitions on the same spinning rust drive (I.e. not an SSD), it doesn’t buy you much performance. Either use physically separate drives or upgrade to an SSD.


text:
Question about text graphics and audio clips. How do i input text from the audio filename?
Sorry if the title is confusing, but I have around 500 audio clips with 500 text/titles or whatever it's called. As you can see in the image, there are multiple audio files with text graphics overlapping them. Since I have so many, I want to be able to automatically take the filename for the audio  (such as “and” as shown in the image) and display it as text.

Premiere would be a pain in the rear for doing this. You should opt for after effects, create a text and set the text content as the filename using an expression. Then you can just copy+paste this for every file and the name will be applied automatically.
Open your text-layer, alt+click on the "source-text"-stopwatch to create an expression. In this, type
thisComp.layer(2).name

IMPORTANT: For the expression to work, the audio-file must be placed so that it's layer 2, i.e. under the text-layer. If you want to change the position of the layer, just put the place of it in the expression, replacing the "(2)".
Now all you have to do is copy and paste that text-layer containing the expression, and (if the sound-files are all in the same position in each comp) the text-layer will automatically change to the name of your file.

I think this is a good suggestion - can you add to your answer the right expression for doing this? Might be helpful for others who find this answer.

Good addition, added it.


text:
VFR output from muxer-level concatenation of CFR inputs
I used this command for concatenating 2 constant rate videos:
ffmpeg -f concat -i files.txt  -c copy output.mp4

where the file files.txt has this content:
file input1.mp4
file input2.mp4

I'm wondering why the output file has a variable frame rate, even though both input files has a constant one?

Part of MediaInfo for every input file:
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 30.000 FPS
Color space                              : YUV

and for the output file:
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 29.905 FPS
Minimum frame rate                       : 19.224 FPS
Maximum frame rate                       : 30.000 FPS
Color space                              : YUV

FFprobe outputs:
>ffprobe -hide_banner input1.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:02.95, start: 0.000000, bitrate: 2649 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2394 kb/s, 30 fps, 30 tbr, 15360 tbn
, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 258 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

>ffprobe -hide_banner input2.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:02.95, start: 0.000000, bitrate: 2649 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2394 kb/s, 30 fps, 30 tbr, 15360 tbn
, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 258 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

>ffprobe -hide_banner output.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:05.90, start: 0.000000, bitrate: 2647 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2386 kb/s, 29.90 fps, 60 tbr, 15360
tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 257 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Share the ffprobe output for both files and the output

@Gyan, I added it now.

Does ffmpeg -f concat -i files.txt  -c copy -an output.mp4 yield a CFR output?

@Gyan, no, the output is still VFR.

@Gyan Were you able to find out the cause? I'm facing the exact same problem. It appears to be related to audio. -an on contact doesn't change anything, but if I remove audio from both files before concat framerate becomes constant.


text:
FFmpeg convert to HD video format that Adobe Premiere Pro will not crash on?
My problem is somewhat similar to others asked on the site in recent years, but none of those solutions were quite right for my problem:
I have a series of frames from a video recorded at roughly 30 fps. I need to convert it (using FFmpeg or otherwise [if applicable]) to a video format that Adobe Premiere Pro CC 2017 won't crash on. I have tried FFmpeg (and its codecs: h264 and libx264) but both times it has crashed (with no error message that I can see).
For your information, it currently does not have an audio channel, but I can get that if it is needed.
Any help would be greatly appreciated. Here is the general form of the cmd I am using:
ffmpeg -i input_%05d.tga -framerate 30 -codec:v h264  -b:v 4M -b:a 3M output.mp4

Have you tried converting using handbrake?

ffmpeg -framerate 30 -i input_%05d.tga -pix_fmt yuv420p -codec:v lib264 -b:v 4M output.mp4

thanks for your comment! @Gyan - it worked!! (Just that instead of Lib264, it was libx264. I think the pixel format was the issue all along from what my limited debugging skills are telling me.

Proxies
Consider using proxies: especially if this is 4k or bigger. A proxy is a lower res stand-in for editing. Upon export the original, bigger, higher quality originals will be used to create the output. See Adobe Premiere Pro User Guide: Proxy Workflow for more info.
You can have Premiere create the proxies, or create them with ffmpeg and have Premiere use those as the proxies.
Lossless
If you don't want or need a proxy another option is to use an editor friendly, lossless intermediate file using a format such as Ut Video. This will avoid the unnecessary generation loss of using lossy H.264–although to be fair when given enough bits you may not notice a difference or care.
One downside is file size, but if it is going to be temporary it may be a moot point.
Premiere can both decode and encode Ut Video after you install it (you may have to restart Premiere).
Example command:
ffmpeg -framerate 30 -i input_%05d.tga -c:v utvideo output.avi

thanks! But how would I install UtVideo for Premiere pro?

@JerryPlayz101 There is a link to it in my answer. Download and install. Then Premiere will be able to decode it, and Ut Video will also be available as an option in Adobe Media Encoder.


text:
FFmpeg add logo watermark to live stream
I am trying to execute this commands in FFmpeg and it is working. Now I want to add logo to this live stream. How to do that?
find "/video path" -name "*.mp4" | xargs -I $ "/ffmpeg path" -y -re -i $ -vcodec copy -acodec copy -dts_delta_threshold 1000 -ar 44100 -ab 32k -f flv  rtmp://xxx.xxx.xx/live/

Use the overlay video filter:
find "/video path" -name "*.mp4" | xargs -I $ "/ffmpeg path" -y -re -i $ -i watermark.png -filter_complex overlay -c:a copy -f flv rtmp://xxx.xxx.xx/live/

You can't filter video (-filter_complex or -vf) and stream copy (-vcodec copy) the same stream. If you try you'll get an error:

Streamcopy requested for output stream 0:0, which is fed from a
  complex filtergraph. Filtering and streamcopy cannot be used together

So remove -vcodec copy when filtering the video.

Thanks for your response but the syntax did not work for me i use the below syntax
find "/video path" -name "*.mp4" | xargs -I $ "/ffmpeg path" -y -re -i $ -i "Path of the logo.png" -filter_complex overlay -vcodec copy -acodec copy -dts_delta_threshold 1000 -ar 44100 -ab 32k -f flv rtmp://xxx.xxx.xx/live/
i did not get any error but syntax looks incorrect

@swr You should have gotten the error "Streamcopy requested for output stream 0:0, which is fed from a complex filtergraph. Filtering and streamcopy cannot be used together". You can't use -vcodec copy and -filter_complex on the same stream. Remove -vcodec copy as shown in my answer.


text:
Convert jpg to video
I have a camera which when motion is detected uploads JPG files at roughly one a second — so I want to take them and convert them back to video.
For the uploaded files

It sometimes skips a few uploads (up to about 3 second gaps)
They continue for around 20 seconds after motion has ceased
The files are 640×480 color 24-bit Depth and each is around 40K
The pictures vary in lighting between stills
There are no files once the motion detection has stopped — so a gap in files can be used to determine the end of video

So I want to use a script to make these into a video - I'd like to

Extend each JPG to the correct length of time
“watermark” the timestamp onto the video
Compress the video

For compression, I feel that the common background and large sections of unchanging video should be highly compressible
I'll be able to write the scripts which would include
 - the selection of the right set of files to include in each video
- production of an intermediate parameter file
- calculation of time span of each still image
- determination of end of movie — including still currently recording
I'm running on a Window's laptop — but would consider a Raspberry Pi or Ubuntu system.
I've looked at FFmpeg but got a little lost of where to start — I did find possible-to-stream-append-images-into-an-existing-mp4.  Which is close and I can start with this. However, one answer seemed to be saying that this may cause loss of fidelity with a comment saying no it won't. Also, I am unsure about how to make the JPGs extend to different lengths and how to watermark a time stamp onto each image
So my questions are
   What tool and encoding format is a good match with what I want ?
Should I make the script wait until the files are fully produced or is it possible to append one JPG file to the movie stream at a time with parameters without excessive loss of fidelity?
Is timestamping best done with a watermark on the video - or with some metadata tagging and require the renderer to display timestamps?
I have included one image from the camera

I would use shell scripting thus:

find the creation date of the first jpeg and the creation date of the subsequent jpeg.
if the time difference is <= 1 second then we have the start of a sequence. If the files are named sequentially then maybe move them to a subfolder. If not then move (or copy) the files to create a sequence.
while the time difference is <= 1 second keep updating the last frame of the sequence
once we have a non-sequential file create a video using ffmpeg
set the new first frame to the non-sequential file
repeat for all the jpegs.
concatenate all the videos

ffmpeg can create a video from an image sequence where the files are named frame_000.jpg, frame_001.jpeg, frame_002.jpg… thus:
ffmpeg -i frame_%03d.jpg -r 1 output.mp4

the -r 1 option sets the frame rate to 1 per second. If the sequence doesn't start with 000 then you can use -start_number 123 to specify the first frame. more details here


text:
How to prioritize subtitles in LAV Splitter?
I'd like to default subtitles to English [Forced] (refer to Image 1) in MPC-HC, using LAV Splitter (refer to Image 2).
Also, if it'd be possible, I'd like to set the default Audio Track to Japanese [jpn].
Thanks in advance.
Image 1: Subtitles:

Image 2: LAV Splitter Settings:

I've managed to ensure the subtitles prioritise forced, then to choose non-forced English as a backup using this:

*|f,eng*
However, this does not guarantee it will always choose forced English (assuming this is your preferred language). So to ensure that you will always get English, I have found this seemingly works consistently

eng|f,eng*,*|f
This checks for forced subtitles in English, if not found, it checks for non-forced English subtitles, if neither are found, it chooses the forced subtitles.
As for setting the default audio track to Japanese, I found adjusting the order to preference did the trick.

NOTE: This is not guaranteed to work for every file, there are many variations to the way subtitles are setup. I have just found this way to be the most consistent.
If you want to learn what these symbols mean I suggest studying Regular Expressions or Formal Languages, or straight up do an online course on Theory of Computing.


text:
Premiere Pro CC: Loop vertical frame edge on 16mm film scan
I am working with a 16mm film transfer that was done onto videotape in the late 90s. The film print itself is no longer available, and this digitized video copy is the best version that is known to exist.
As you may know if you've worked with film projection systems, projectors often had a knob that would allow the operator to adjust the position of the film frame within the projected image. If this knob was badly adjusted, a black line would appear near the top or bottom of the image, and part of the adjacent frame of film (either the top or bottom) would appear either above or below this line.
In the case of the film transfer that I'm working with, this framing setting was improperly set during the film's transfer to video, and a portion of the bottom of the adjacent frame appears above a black line near the top of the video. I've been using Premiere Pro CC provided by my institution to do basic editing on a large volume of digitized film and video recordings, but fixing this framing issue is beyond the scope of my knowledge of Premiere, and all I haven't been able to find any information on the issue online.
Is there a way to digitally “scroll” the top portion of the video frame back to the bottom where it belongs? I recognize that given the way film works, this portion at the top is one film frame offset from the rest of the picture, but this will be far less noticeable than having part of the bottom of the image incorrectly placed at the top.
Here is a screenshot from the film in question. Note the black line near the top. The picture information above this line should appear at the bottom of the picture.

Here is a screenshot from the film in question. Note the black line near the top. The picture information above this line should appear at the bottom of the picture.

There is an effect in the Effects > Distort folder called Offset. It can add a vertical or horizontal offset to a clip, and wraps the overflow back around, all in one go.

If I apply it to the example image I get a white line, which is possibly an artefact of the screenshot (if I look at the image file there's a few pixels of white at the bottom).

1) Select the clip in your timeline and in the effects controls panel just adjust the 'y' position value until the line at the top is out of frame.

2) Duplicate the clip on your timeline into the second video track, and make the same adjustment but in the opposite direction so that only the content above the line is visible at the bottom of the program monitor.

3) Move the clip on video track 2 forward or back one frame to match.

Obviously my test doesn't match quite right because I only had the frame you provided, but your results should look better. It looks like there might still be some extra stuff to cut off at the bottom, so you can then select both clips, right click and nest them, then either scale that footage up in the effects control panel to fit, or apply a crop effect to remove the extra bits for cleanup.


text:
Fix distorted mp4 files
In our university sometimes the recordings of videos are very distorted.
Example frame (please ignore the red bar it's just there for privacy reasons):

I know that basically I would need to move each pixel of each frame horizontally based on its vertical position. Is there a way to do this with FFmpeg?
Thanks in advance!

See the geq filter

Thanks Gyan, this seems good. But sadly I see that when the position would be outside the frame, it just uses the edge. Is there a way to set it to repeat?

Thanks to @Gyan, I was able to fix it.
ffmpeg -i input.mp4 -vf "geq=p(mod(X+Y*2\,W)\, Y)" output.mp4


text:
Trying to convert video with FFmpeg but does not convert frames
I use FFmpeg to convert videos from the command line. For some reason I have come across a series of videos where the video stream is not converted. The first frame is the same as every other.
Unique ID                                : 77419370860001982791600764331116915700 (0x3A3E6DAFA6F6760AE0BFC15F96AEEBF4)
Format                                   : Matroska
Format version                           : Version 4
File size                                : 183 MiB
Duration                                 : 18 min 30 s
Overall bit rate                         : 1 382 kb/s
Writing application                      : Lavf58.31.104
Writing library                          : Lavf58.31.104
ErrorDetectionType                       : Per level 1

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 3 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 18 min 30 s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 10.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Default : Yes
Forced : No

The audio is fine. The transcoding goes quite fast. It clearly is not parsing the video.
ffmpeg -threads 2 -i %1 -f mp4 -movflags +faststart -c:v libx265 %2

I've never had any problems with it before as far as I know. These videos are from YouTube.
Any ideas what it could be? I've tried removing much of the settings but same issues.

Share full log of such a conversion.


text:
Audio out of sync when import file cut by ffmpeg with -c copy
I have a lot of clips made with ffmpeg using this command:
ffmpeg.exe -ss XX:XX -t XX:XX -i original.mp4 -c copy clip.mp4.
That copy option gives a couple seconds of silence in a result clip, but when a sound starts it is perfectly synced and all players I tried can handle it correctly.
But after importing in Adobe Premiere I got audio and video desynchronized, because it removes that silent at the beginning.
I believe that mp4 has some builtin delay and Adobe Premiere ignore it during import, is there a way to fix it?

I have to re-encode the video with h264 for v and aac for audio then it works as expected.


text:
Bandwidth limit for FFmpeg
Currently, using FFmpeg to push a live TV stream to TVHeadend.
The stream is currently in 1080p. Is there a way to get FFmpeg to convert it to 720p for TVHeadend?

Do you want to limit the bandwidth, or do you want 720p? Not sure what you want to do here.

Can you show the FFmpeg command you're currently using? You'd have to limit bitrate and resolution to conserve bandwidth.


text:
Concatenate multiple files using FFmpeg
I started to learn FFmpeg syntax a couple of days ago.
I'm trying to read the official docs, it's not easy.
So I want to build up a video files which consists of different videos, and audios.
Let's say I have files below.
Video files:

a.mp4
b.mkv

Audio files:

x.wma
y.mp3
z.mp3

I'd like to use specific parts of audio files.
Let's say,

2s ~ 24 sec from x.wma
1m 22s ~ 1m 41s from y.mp3
29s ~ 2m 33s from z.mp3

Concatenate the selected audio streams into an audio stream.
I'll take the video stream of 2m ~ 2m 32s from a.mp4.
Then video stream is a lot shorter than audio.
(I don't know how much exactly, hopefully FFmpeg can do that for me)
Can FFmpeg do any of the below?

Take the video streams from b.mkv and concatenate it with the video streams from a.mp4, so that resulted video stream is as long as the audio. After that mux the audio and video.
Change the duration of the video stream from a.mp4 so that duration of the video and audio are equal.(by changing playback speed of video stream) then mux the audio and video.
Just insert an image file after video streams ends while audio is being played.

P.S.: I tried to express things clearly, but I'm not so good at English. If there is anything you can't understand clearly, please tell me.

"Can FFmpeg do any of the below?" Yes. Which method do you prefer? I will give an example for one.

so, FFmpeg can do all of them? Wow that's great! I prefer first method.

Show the complete output of ffmpeg -i a.mp4 -i b.mkv -i x.wma -i y.mp3 -i z.mp3

Uploaded the output at https://pastebin.com/ABF5nFJR

Use the concat filter:
ffmpeg -y -i a.mp4 -ss 2 -t 22 -i x.wma -ss 00:01:22 -t 19 -i y.mp3 -ss 29 -t 124 -i z.mp3 -filter_complex "[1:a][2:a][3:a]concat=n=3:v=0:a=1[a]" -map 0:v -map "[a]" -shortest output.mp4

Alternatively, instead of -ss/-t you can use the atrim and asetpts filters.

Is this a command for the first method? It doesn't seem to use b.mkv at all. But I think i get what you were trying to explain. Thank you Ilogan!

@helming b.mkv was not used because the sum of the audio durations was shorter than the duration of a.mp4.

@llogan, Any chance you have a look at https://video.stackexchange.com/questions/35053?


text:
loop all videos from folder to rtmp stream
I am bash user and I want to loop all videos from folder to rtmp, one video at a time. I am facing issue of stream stop after a 1st video finished  I need continuous rtmp after finished 1st video and jump to next video. I am using following codes:
for j in *.mp4;
    do
        ffmpeg -threads 2 -re -fflags +genpts  -i $j -i '/c/Users/user/Desktop/ffmpeg_logo/mylogo.png' -filter_complex 'overlay=W-w-50:H-h-25' -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 2000k -maxrate 2000k -bufsize 2000k -r 24 -ar 44100 -g 48 -c:a aac -b:a 64k  "rtmp://user:passwd@ip:1935/live/mystream"

    done

You could do this by looping over the videos in a subshell, and piping to another copy of ffmpeg to generate the RTMP stream. For example:
(for j in *.mp4; do
    ffmpeg -threads 2 -re -fflags +genpts -i $j \
        -i '/c/Users/user/Desktop/ffmpeg_logo/mylogo.png' -filter_complex 'overlay=W-w-50:H-h-25' \
        -vcodec libx264 -profile:v baseline -b:v 2000k -r 24 -maxrate 2000k -bufsize 2000k  \
        -ac 2 -ar 44100 -g 48 -c:a aac -b:a 64k \
        -f mpegts -
done) | ffmpeg -f mpegts -i - -c copy -bsf:a aac_adtstoasc -f flv rtmp://user:password@ip:1935/live/mystream

Notice the brackets around the for loop; that creates a subshell to run the first read & encode ffmpeg command. The output from that command is sent over the stdout ("standard output") pipe to the input of the second ffmpeg command, which generates the RTMP stream. The syntax for that is using - as the name of the input or output file.
I've had to include a bitstream filter aac_adtstoasc because I've used an MPEG Transport Stream as the format on the pipe as well.


text:
Streaming 720p @ 30fps over 5G wifi to multicast with FFMpeg has terribly bad quality
I am trying to stream my Intel RealSense D435 RGB camera input to a multicast address on my network.
Please note, video streaming, encoding, is very new to me - I do not understand much, when explaining a solution, please give me a few extra details, thanks :)
My Hardware Setup:

Intel RealSense D435 (with USB Type-C connector)
Raspberry Pi 4 (4gb Ram) (the server)
5G cabable Wifi router (mentioned for full details)

Firstly, what is the problem:
When attempting to stream my /dev/video4 (RBG input) to the network using (full output):
ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -i /dev/video4 \
    -c:v h264_omx -pix_fmt yuv420p -s 1280x720 -r 30 -g 60 -f mpegts udp://238.0.0.1:5000

then client side I try viewing the stream with VLC and ffplay.

VLC

using VLC on a separate network client with network stream udp://238.0.0.1:5000 loads infinitely with no picture (I tried streaming to locahost on the pi, and on localhost with udp://127.0.0.1: 5000 ffmpeg stream did not show either).

FFPlay

FFPlay stream was detected on a separate network client, but gives the this error output when using ffplay udp://238.0.0.1:5000.
Why am I using h264_omx?
Raspberry Pis have a hardware encoding ability, and hoping to take advantage of this, I configured ffmpeg with
  --enable-omx \
  --enable-mmal \
  --enable-omx-rpi \

this (all commands uncommented) is the setup script I used, adapted from this.
Was I able to get a picture through the network
Yes, but there were problems. The video was very very choppy and extremely bad quality. To get this, I used the same ffplay command as mentioned above on a separate network client and the server command used was with the SW encoder libx264 (server full output) and (client full output):
ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -i /dev/video4 -c:v libx264 \
    -pix_fmt yuv420p -s 1280x720 -r 30 -g 60 -f mpegts udp://238.0.0.1:5000

what really bothered me about this is I had waited 25s after firing up both client and server to get a picture with the above command.
Further, and this is a major issue I have experienced so far, I have a 5-7s delay on my stream — I understand that hd encoding may help and network propagation takes time, but on a small 5G network I should not have to wait 7s for a bad quality (almost 144p @ 5-10fps) video stream
Diagnosing this issue on IRC, I was asked to provide the following:

ffmpeg -f v4l2 -list_formats all -i /dev/video4 result
v4l2-ctl --list-devices
pi@raspberrypi:~ $ v4l2-ctl --list-devices
bcm2835-codec-decode (platform:bcm2835-codec):
    /dev/video10
    /dev/video11
    /dev/video12

Intel(R) RealSense(TM) Depth Ca (usb-0000:01:00.0-2):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    /dev/video4
    /dev/video5

v4l2-ctl --list-formats
pi@raspberrypi:~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'Z16 ' (16-bit Depth)
    [1]: '' (00000050-0000-0010-8000-00aa003)

ffmpeg -encoders | grep h264 full output
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V..... h264_omx             OpenMAX IL H.264 video encoder (codec h264)
 V..... h264_v4l2m2m         V4L2 mem2mem H.264 encoder wrapper (codec h264)

V..... h264_vaapi           H.264/AVC (VAAPI) (codec h264)
ffmpeg -encoders | grep h264 full output
 VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
 V..... h264_v4l2m2m         V4L2 mem2mem H.264 decoder wrapper (codec h264)
 V..... h264_mmal            h264 (mmal) (codec h264)

What is preventing me from getting a good quality 720p image over the network, and what causes this 5-7s delay (even after adding -g 60 as mentioned here)


text:
FFMPEG Convert video from while adding left/right bars with a specific color
I've gotten a bit stuck on a manipulation that I am trying to do.
I have a 1920×1080 video.
I'd like to resize it to 1920×886, while keeping its aspect ratio, so it should add bars to the left and right. I'd like to specify the HEX color code of the side bars (#CFD3DA).
I've combined several answers to compose the following command, but it is unfortunately broken:
ffmpeg -i input.mp4 -vf scale=1920:886:force_original_aspect_ratio=decrease,pad=1920:886:(ow-iw)/2:(oh-ih)/2:#CFD3DA@1,setsar=1 output.mp4

Was not too far!
ffmpeg -i input -vf "scale=1920:886:force_original_aspect_ratio=decrease,pad=1920:886:(ow-iw)/2:(oh-ih)/2:#CFD3DA@1" output.mp4


text:
how able to change the sequence setting timebase to 100fps in premiere pro
I am trying to change the sequence setting to 100 fps in premiere pro 2020, but I am only able to see up to 60 fps.
I want to change it 100 fps because when I am nesting my 100 fps, then it makes it to 60 fps, so I am not able to apply speed ramping. I am halfway through the project. Any suggestions would be really helpful.

If right-clicking on your 100fps clip in the bin and selecting New Sequence From Clip isn't placing it in its own 100fps sequence, you can create a custom XML sequence template to import with arbitrary values. If you save the following code as an XML file, you should be able to import it into your project and have an empty 100fps 1920x1080 2-channel sequence.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="4">
    <sequence id="sequence-1">
        <rate>
            <timebase>100</timebase>
        </rate>
        <name>Custom Sequence</name>
        <media>
            <video>
                <format>
                    <samplecharacteristics>
                        <width>1920</width>
                        <height>1080</height>
                    </samplecharacteristics>
                </format>
            </video>
            <audio>
                <numOutputChannels>2</numOutputChannels>
                <format>
                    <samplecharacteristics>
                        <depth>24</depth>
                        <samplerate>48000</samplerate>
                    </samplecharacteristics>
                </format>
            </audio>
        </media>
    </sequence>
</xmeml>

Check out Apple's FCP XML documentation if you want to get super deep into customization, or just export an empty sequence as an XML file and have a look around. Most of the tags are fairly simple to understand as you can see. I've minimized the code here, Premiere can fill in the blanks for most settings if you don't include them.
You could actually edit your .prproj file in the same way, it's just an XML doc, but Adobe likes to obfuscate their data in base64, in addition to a few other gripes I won't get into here. It's more trouble than it's worth.


text:
Using both SMPTE and IRIG-B time codes
Is there a way to insert both SMPTE and IRIG-B time codes to a video file?
I'm asking because I use video for experimental test purposes and having both allows me to track non-video signal along with the video shot during a test. After it can be used to create visual overlays of data on top of the video clip matched in real time.

If the instrumentation code is available as an audio signal (Modulated or Modified Manchester), it can be added as a new track on the video (separate stream in the file). In a multi-track environment it should survive editing etc.


text:
Add two images before a mp4 and one in the end with ffmpeg
I'm trying to make an operation using FFmpeg with just one command to leave the output as lossless as possible.
My intention is to add two images, 5 seconds each, before the mp4 file, add a fade in to the first one of 1 second and add a third image after the video during 5 seconds.
Is it possible to do this on one pass?
I found some bits of code, namely:
ffmpeg -r 25 -loop 1 -t 5 -i "image" -i "video" -f lavfi -t 5 -i aevalsrc=0 \
   -filter_complex "[0:v] [2:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
   -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" output.mp4

and
ffmpeg -i clip.mp4 -vf "fade=in:0:25" -acodec copy clip-out.mp4

But I'm not being able to use them together and I don't know if all those commands are really necessary. Any thoughts?

Is doing it in one command an absolute requirement? Otherwise you could make the beginning and end videos first, then concatenate them to the main video without needing to re-encode the main video. If this is acceptable then show the complete output of ffmpeg -i video -i image1 -i image2 -i image3 to show important info about each input.

Hi @llogan.
I just would like to avoid compressing the main video more than once to keep the best image possible, but it's not an absolute requirement.
The video and three images are 1920x1080.
Video  Encoder: Lavf58.18.104  Duration: 00:01:36.48, start: 0.000000, bitrate: 4038 kb/s  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 3907 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default) Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)

Make videos from images:
ffmpeg -loop 1 -framerate 24 -t 5 -i image0.png -loop 1 -framerate 24 -t 5 -i image1.jpg -loop 1 -framerate 24 -t 5 -i image2.jpg -f lavfi -i anullsrc=cl=stereo:r=44100 -filter_complex "[0]fade=t=in:duration=1,format=yuv420p[v0];[1]format=yuv420p[v1];[2]format=yuv420p[v2]" -map "[v0]" -map 3 -shortest pre1.mp4 -map "[v1]" -map 3 -shortest pre2.mp4 -map "[v2]" -map 3 -shortest post.mp4

Note that the frame rate, width, height, aspect ratio, pixel format, H.264 profile, timebase, audio channel layout, audio sample rate, stream types, and number of streams of these videos match that of the main video.
Make input.txt:
file 'pre1.mp4'
file 'pre2.mp4'
file 'main.mp4'
file 'post.mp4'

Concatenate with concat demuxer:
ffmpeg -f concat -i input.txt -c copy -movflags +faststart output.mp4


text:
Filming with projector
I want to make an educational video. I am using a camera (Canon 250d), a projector, and some lights.
The problem is that when I brighten the room or make light on the speaker, the text on the projector gets difficult to read.
What can I change with my camera settings or the light setup to change this. So the room is bright and the text on the projector is easy to read.

This is tricky to solve with a single camera shot  - your projector probably needs a darkened room to get decent contrast.  You need to balance the exposure as best you can between the speaker and the image.
I would suggest that if you're making a video with the speaker visible, you probably want to prioritise being able to see the speaker more than the projection image (otherwise why bother filming them?).
If you light the presenter separately from the projector and at a distance from the screen so the light doesn't spill onto it, you will have a better chance at getting them both visible.
But another way to do it would be to just film the speaker with your camera, and take a copy of the presentation (either during the presentation or afterwards), and edit it into the video afterwards at appropriate points.
This gives you the best of both worlds, and doesn't require a second camera, but does require more post-production editing time.
The final suggestion is that sound is as important as pictures in these videos.  You can get away with a slightly dodgy shot of a speaker if their sound is good.  But if the sound is echoey and indistinct, few people will persevere with a long lecture.
Record the speaker with a clip mic attached to a phone - even a pair of apple wired headphones work ok for this.  Clip it as close to the top of their shirt as you can without rubbing against them.  Plug it into a spare phone and record it as a voice memo.  Sync the audio and video up later when you add the presentation images.

Try adjusting the brightness and contrast of the picture on the projector. And it’s better to play with the light - direct only at yourself, not at the screen.


text:
Can video cameras perceive lights in a way that they will totally change the color of molten metals?
Is here anyone with experience of camera physics that could help me with this issue or that knows someone I could contact at a university maybe?. I am trying to find out how regular video camera perceives lights and colors of molten metals in daylight, my understanding being that a regular video camera can't change a color of something in a molten state with silvery color into orange/yellow color just as it should not change the color of a burning flame into a different and wrong color.
The only camera effect I know of is that the brightness levels on a video could be right on the upper maximum threshold for the camera, and going on to exceed it, so that it produces a purple/magenta color.
That very bright objects (such as the Sun, pieces of paper catching the sun, white-hot metal or flames, bright lights, etc), filmed with a CMOS camera, send too many photons onto an area of the sensor. The sensor doesn't handle this well. This causes electrons to overspill onto an adjacent area of the sensor, but usually in the same direction for each bright spot. The electrons cause the voltage on these areas of the sensor to increase, and that causes a problem. The voltage is meant to be 0, so that when light hits it, the sensor can measure the difference between 0 volts and some higher voltage caused by the light hitting it. But now 0 isn't 0 anymore, it's higher. Put simply, the sensor would normally measure the light level by measuring the difference between 0 and, say, 5 (maximum brightness). So black would be 0 and 5 would be white. But now it's measuring between a minimum of 7 (due to electron overflow) and 5 (maximum). So the result is always negative (even bright light would be -2), which the camera treats as 0 (black). Hence, you see a black spot slightly off-centre from the very bright light sources. But why purple? Well, it's simply because the sensor's red, green, and blue detectors have different sensitivities. They tend to be more sensitive to green, because our eyes are more sensitive in green, and we want the image to look right. Conversely, they tend to be less sensitive in red and blue, because our eyes are less sensitive to those colours too. As areas of the sensor start to become overloaded due to the electron overflow, it's the green that get overloaded first, as that's what it's most sensitive to. So these green areas become black (see above), and you're left with just red and blue. If you mix red and blue you get purple/magenta, and this is hence what you see when the sensor starts to get overloaded. Eventually it would become black, but it's not always quite bright enough to do that in every case.

For starters,
You need to research Infrared light pollution caused by the high temperatures of the materials you're trying to image.  Most cameras have an IR filter on the sensor, which blocks incoming wavelengths which are imperceptible to the human eye.  These filters often have different characteristics depending on the camera make/model/manufacturer, which is why I say you need to do some research in that area.
It's possible to remove these filters, and photographers who are interested in IR photography often do; but because the glass of the lens bends visible light differently than IR light, there's effectively different focal planes for the two, and you can't focus them both at the same time.  So, IR photographers will typically remove the sensor filter, and then attach an IR-pass filter to the front of the lens, which blocks the visible spectrum, and only allows IR light through, allowing the IR image to be properly focused.  These IR pass filters are available in different wavelengths.  IR pass filters won't be particularly relevant to your situation.  However, IR cut filters may be.
When IR photographers remove the IR filter from their sensors, they effectively destroy the camera's ability to take "normal" pictures.  This is one reason IR cut filters exist.  They screw on to the front of a lens, and cut the incoming IR light, allowing a modified camera to behave normally again.  But also (and here is where you might be interested) they supplement the IR-blocking capabilities of normal cameras, which may be suffering from IR pollution for various other reasons.  Pointing a camera at hot metal isn't the typical scenario; more commonly, cheap Neutral Density filters and long exposures introduce IR light that the sensor filter wasn't designed to handle.  However, ensuring that only the spectrum you want to capture is striking your sensor should help in your situation.
Other than that, make sure your white balance is set, because that can also tint the image, and get a good quality color chip chart for reference; most of them are made from plastic and wouldn't stand up to high temperatures, but there are some metal ones.  You'd still need to keep it from melting, and be sure the dyes on the color chips were stable at whatever temperature you needed them to be.
Since you're pointing a camera at something very bright, you should be aware of the phenomenon known as aperture diffraction, which will affect the image's sharpness, but not so much overall color (although the colors of edges might be affected slightly; see halation, fringing, and chromatic aberration).
You might also be interested in a more full-spectrum camera, designed to image light invisible to humans, depending on your budget.  I think Flir might make some, maybe?  They're more commonly used in manufacturing and agriculture.

Thanks. But you think that i am right about that most regular video cameras wont totaly change a color of something in a molten state with silvery color into orange/yellow color in daylight, aluminum, due to low emissivity and high reflectivity, should appear silvery-gray in daylight conditions, so i dont think the color of some metals should change just as the camera should not change the true color of a burning flame very much and make into a totaly different and wrong color?.

Maybe I don't quite understand what you're asking.  I'm assuming that you've shot some footage of a molten metal and the footage does not appear true to life.  Is that correct?  Or is this a more theoretical question?  Are you wondering about aluminum specifically, or a material with a higher melting point?  I've seen plenty of youtube videos about casting aluminum where everything looks true to life, and I don't think the posters used special equipment or setups.  I've shot video of glass blowing, and haven't had any trouble with color reproduction.

In your question, you are correct that sensor color channels can have different clipping points, but it doesn't take an extremely bright or hot light source to cause this to happen; over-exposing with incorrect shutter speed or aperture could do it, and the color of the subject would influence which channel clipped first.

https://en.wikipedia.org/wiki/Black-body_radiation

It is a more theoretical question, i am thinking about aluminum specifically yes, since it due to low emissivity and high reflectivity, should appear silvery-gray in daylight conditions. I dont think a video camera in daylight should be able to change a true silvery color into a true and strong orange color no matter what the temperature of the molten metal is or when the metal has a true silvery color at a certain temperature in air in daylight, and in the case of aluminium has a very rapid cooling effect and often is many hundreds of celsius cooler when poured in air then iron for example

Look into the black body radiation link above.  The typical silver-to-strong-orange shift you think of when you're talking about molten materials isn't a camera artifact, but a natural phenomenon.  When it happens, you can see it with your eyes.  There are camera artifacts related to sensor clipping, IR pollution, and black body radiation, but if you're asking about something visible to the naked eye, your question is probably more suited to physics.stackexchange.com

Thanks, but i am not talking about that natural phenomenon, that has to do with temperature and how a molten material looks when molten etc. I am talking about a camera effect, if you have a molten material that is silver like i say, that while you film it all the time is silver, and then you film it and on the video it has no silver color, it has a true orange color, this i mean should not be possible in daylight with aluminium when the aluminium has its silver color, forgot what temperature it is and what you understand about natural phenomenon, this dont apply to what i am asking.

If i was to ask this question in a physics forum, how do you think i should ask the question in the best way possible so that someone who understands cameras and lights etc can give me detailed information?, i would like detailed information that explains how a camera effect cant make a silver molten metal into a orange color when your eyes views it as true silver the whole time when you are filming it.

Show a picture.  If the picture doesn't look true to life, explain how the scene looks in real life.  Most camera artifacts like color channel clipping are usually different enough from our everyday experience that they're easily recognizable.  But some, like mismatched white-balance, or IR pollution can be subtle enough that you'll need to explain.

https://www.diyphotography.net/this-is-why-you-should-be-worried-about-infrared-light-with-your-camera/


text:
FFmpeg to RTMP streaming stucks after few seconds
I'm trying to stream to online service via FFmpeg. All my test commands works fine with restream.io preview and with local rtmp server viewer. My OBS setup works fine too (same resolution, server and key). Only when I'm about to start ffmpeg stream from my command line it stucks after few seconds.
My test command:
ffmpeg -stream_loop -1 \
   -i noise.mov \
   -c:v libx264 c:a aac \
   -f flv 'rtmps://live-upload******'

With -debug pict after some progress with input files and rtmp handshaking I can see this:
Clipping frame in rate conversion by 0.000008
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10 times
[h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10 times
[h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 8 times
[h264 @ 0x7ff12001ac00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
[libx264 @ 0x7ff120802400] frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:3600 P:0    SKIP:0    size=216266 bytes
[h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
[libx264 @ 0x7ff120802400] frame=   1 QP=31.00 NAL=2 Slice:P Poc:2   I:287  P:3267 SKIP:46   size=48597 bytes
[h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
[libx264 @ 0x7ff120802400] frame=   2 QP=30.00 NAL=2 Slice:P Poc:4   I:710  P:2888 SKIP:2    size=79226 bytes

...and that's it.
The same command works fine with any other online service except this one. What I can do to debug it? Works fine with OBS, but won't with ffmpeg command. noise.mov — 720×1280px mov file.
Full log:
iMac:Desktop 350d$ ffmpeg -stream_loop -1 -re -i noise.mov -c:v libx264 -preset ultrafast -c:a aac -f flv -debug pict 'rtmps://live-upload.*******'
ffmpeg version N-96521-g5e62100152-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      56. 38.100 / 56. 38.100
  libavcodec     58. 67.100 / 58. 67.100
  libavformat    58. 36.100 / 58. 36.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 71.100 /  7. 71.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
 matched as AVOption 'debug' with argument 'pict'.
Reading option 'rtmps://live-upload.************' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Successfully parsed a group of options.
Parsing a group of options: input url /Users/350d/Desktop/noise.mov.
Applying option stream_loop (set number of times input stream shall be looped) with argument -1.
Applying option re (read input at native frame rate) with argument 1.
Successfully parsed a group of options.
Opening an input file: /Users/350d/Desktop/noise.mov.
[NULL @ 0x7fb1e5000000] Opening '/Users/350d/Desktop/noise.mov' for reading
[file @ 0x7fb1e4c01700] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 0, edit list 0 - media time: 2112, duration: 160230
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 0 @ 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 1024 @ 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] skip 64 audio samples from curr_cts: 2048
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Shifting DTS by 100 because of negative CTTS.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 1, edit list 0 - media time: 0, duration: 10900
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 0 ctts: 0, ctts_index: 0, ctts_count: 109
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 100 ctts: 100, ctts_index: 1, ctts_count: 109
....
....
....
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 10800 ctts: 0, ctts_index: 108, ctts_count: 109
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Setting codecpar->delay to 1 for stream st: 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 2, edit list 0 - media time: 0, duration: 10900
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Before avformat_find_stream_info() pos: 3397542 bytes read:70076 seeks:3 nb_streams:3
[h264 @ 0x7fb1e5806a00] nal_unit_type: 7(SPS), nal_ref_idc: 1
[h264 @ 0x7fb1e5806a00] nal_unit_type: 8(PPS), nal_ref_idc: 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] demuxer injecting skip 2112 / discard 0
[aac @ 0x7fb1e5010c00] skip 2112 / discard 0 samples due to side data
[h264 @ 0x7fb1e5806a00] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 0x7fb1e5806a00] nal_unit_type: 5(IDR), nal_ref_idc: 1
[h264 @ 0x7fb1e5806a00] Format yuv420p chosen by get_format().
[h264 @ 0x7fb1e5806a00] Reinit context to 720x1280, pix_fmt: yuv420p
[h264 @ 0x7fb1e5806a00] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] After avformat_find_stream_info() pos: 200654 bytes read:270218 seeks:4 frames:45
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/350d/Desktop/noise.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2020-01-27T09:49:16.000000Z
    com.apple.quicktime.displayname: STREAM
    com.apple.quicktime.title: STREAM
  Duration: 00:00:03.63, start: 0.000000, bitrate: 7480 kb/s
    Stream #0:0(und), 44, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 101 kb/s (default)
    Metadata:
      creation_time   : 2020-01-27T09:49:16.000000Z
      handler_name    : Core Media Audio
    Stream #0:1(und), 1, 1/3000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, 7328 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc (default)
    Metadata:
      creation_time   : 2020-01-27T09:49:16.000000Z
      handler_name    : Core Media Video
      encoder         : H.264
      timecode        : 00:00:00:00
    Stream #0:2(und), 0, 1/3000: Data: none (tmcd / 0x64636D74), 0/1, 0 kb/s (default)
    Metadata:
      creation_time   : 2020-01-27T09:49:16.000000Z
      handler_name    : Core Media Time Code
      timecode        : 00:00:00:00
Successfully opened the file.
Parsing a group of options: output url rtmps://live-upload.*************.
Applying option c:v (codec name) with argument libx264.
Applying option c:a (codec name) with argument aac.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: rtmps://live-upload.********************.
[rtmps @ 0x7fb1e4c04a00] No default whitelist set
[tls @ 0x7fb1e4c04880] No default whitelist set
[tcp @ 0x7fb1e4c04940] No default whitelist set
[tcp @ 0x7fb1e4c04940] Original list of addresses:
[tcp @ 0x7fb1e4c04940] Address ***** port 443
[tcp @ 0x7fb1e4c04940] Interleaved list of addresses:
[tcp @ 0x7fb1e4c04940] Address ***** port 443
[tcp @ 0x7fb1e4c04940] Starting connection attempt to ***** port 443
[tcp @ 0x7fb1e4c04940] Successfully connected to ***** port 443
[rtmps @ 0x7fb1e4c04a00] Handshaking...
[rtmps @ 0x7fb1e4c04a00] Type answer 3
[rtmps @ 0x7fb1e4c04a00] Server version 1.0.5.4
[rtmps @ 0x7fb1e4c04a00] Proto = rtmps, path = /rtmp/**************, app = rtmp, fname = *****************
[rtmps @ 0x7fb1e4c04a00] Window acknowledgement size = 5000000
[rtmps @ 0x7fb1e4c04a00] Max sent, unacked = 5000000
[rtmps @ 0x7fb1e4c04a00] New incoming chunk size = 4096
[rtmps @ 0x7fb1e4c04a00] Releasing stream...
[rtmps @ 0x7fb1e4c04a00] FCPublish stream...
[rtmps @ 0x7fb1e4c04a00] Creating stream...
[rtmps @ 0x7fb1e4c04a00] Sending publish command for '********************'
Successfully opened the file.
detected 4 logical cores
[h264 @ 0x7fb1e5035400] nal_unit_type: 7(SPS), nal_ref_idc: 1
[h264 @ 0x7fb1e5035400] nal_unit_type: 8(PPS), nal_ref_idc: 1
Stream mapping:
  Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[aac @ 0x7fb1e5011800] skip 2112 / discard 0 samples due to side data
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 1 times
[aac @ 0x7fb1e5011800] skip 64/1024 samples
[graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'time_base' to value '1/44100'
[graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_rate' to value '44100'
[graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_fmt' to value 'fltp'
[graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'channel_layout' to value '0x3'
[graph_1_in_0_0 @ 0x7fb1e4e05540] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3
[format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_fmts' to value 'fltp'
[format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[AVFilterGraph @ 0x7fb1e4d10940] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 197507 times
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 190577 times
[h264 @ 0x7fb1e5035400] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 0x7fb1e5035400] nal_unit_type: 5(IDR), nal_ref_idc: 1
[h264 @ 0x7fb1e5035400] Format yuv420p chosen by get_format().
[h264 @ 0x7fb1e5035400] Reinit context to 720x1280, pix_fmt: yuv420p
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 436 times
[h264 @ 0x7fb1e5035400] no picture
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 9068 times
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 8658 times
[h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 8151 times
[h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 18758 times
[h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 8906 times
[h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10004 times
[h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'video_size' to value '720x1280'
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'time_base' to value '1/3000'
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'frame_rate' to value '30/1'
[graph 0 input from stream 0:1 @ 0x7fb1e4d13080] w:720 h:1280 pixfmt:yuv420p tb:1/3000 fr:30/1 sar:1/1
[format @ 0x7fb1e4d12f00] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le|gray|gray10le'
[AVFilterGraph @ 0x7fb1e4f0a5c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[libx264 @ 0x7fb1e5015600] using mv_range_thread = 104
[libx264 @ 0x7fb1e5015600] using SAR=1/1
[libx264 @ 0x7fb1e5015600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fb1e5015600] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x7fb1e5015600] 264 - core 159 r2991 1771b55 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[flv @ 0x7fb1e5014400] Ignoring metadata for framerate
[flv @ 0x7fb1e5014400] Ignoring metadata for width
[flv @ 0x7fb1e5014400] Ignoring metadata for height
Output #0, flv, to 'rtmps://live-upload.***********************************':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    encoder         : Lavf58.36.100
    com.apple.quicktime.displayname: IG STREAM
    com.apple.quicktime.title: IG STREAM
    framerate       : 30
    width           : 720
    height          : 1280
    title           : USERNAME
    creation_time   : 2020-01-27T09:49:16.000000Z
    Stream #0:0(und), 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p(left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, q=-1--1, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2020-01-27T09:49:16.000000Z
      handler_name    : Core Media Video
      timecode        : 00:00:00:00
      encoder         : Lavc58.67.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1(und), 0, 1/1000: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s (default)
    Metadata:
      creation_time   : 2020-01-27T09:49:16.000000Z
      handler_name    : Core Media Audio
      encoder         : Lavc58.67.100 aac
Clipping frame in rate conversion by 0.000008
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10 times
[h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10 times
[h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 3 times
[h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 10 times
[h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 5 times
[h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
[libx264 @ 0x7fb1e5015600] frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:3600 P:0    SKIP:0    size=216266 bytes
[h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
[libx264 @ 0x7fb1e5015600] frame=   1 QP=31.00 NAL=2 Slice:P Poc:2   I:287  P:3267 SKIP:46   size=48597 bytes
[h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
[libx264 @ 0x7fb1e5015600] frame=   2 QP=30.00 NAL=2 Slice:P Poc:4   I:710  P:2888 SKIP:2    size=79226 bytes
^C[tls @ 0x7fb1e4c04880] IO Error: -9806
av_interleaved_write_frame(): Input/output error
[libx264 @ 0x7fb1e5015600] frame=   3 QP=30.00 NAL=2 Slice:P Poc:6   I:355  P:3245 SKIP:0    size=82386 bytes

Share full log.

@Gyan post updated!

Could be a known issue, I would bump this ticket: https://trac.ffmpeg.org/ticket/5088


text:
Best render settings for youtube
I am using Vegas Pro as an editing tool for my videos. What codec (currently using x264vfw) and settings are best to render 1080p 60fps video for YouTube if I don't care about either rendering time or file size/upload time?

I think this article should help you:
https://support.google.com/youtube/answer/1722171?hl=en


text:
FFMPEG error response goes in infinite endless loop
ffmpeg -i https://cdn.dotcompaluat.com/test/running.mp4 -max_muxing_queue_size 9999 -vf \
  scale=w=426:h=240:force_original_aspect_ratio=decrease,pad=ceil(iw/2)*2:ceil(ih/2)*2 \
 -c:a aac -ar 48000 -b:a 96k -c:v h264 -profile:v main -crf 20 -g 48 -keyint_min 48 \
 -sc_threshold 0 -b:v 400k -maxrate 856k -bufsize 800k -hls_time 4 -hls_playlist_type vod \
 -hls_segment_filename test/240p_%03d.ts  test/240p.m3u8**

Above cmd give endless errors' response,  please provide how to manage it.

Link to full log. Add -report to generate it.

File appears to be corrupt. Try again with a different input.


text:
stitch rawvideo with ffmpeg - Picture size 0x0 is invalid
I'm trying to create a timelapse video from several images that I'm fetching from a website. In order to make this faster, my plan was split the workload between multiple cores, each fetching their respective frames (I'm streaming the images to ffmpeg stdin):
ffmpeg -f image2pipe -vcodec mjpeg -i - -f rawvideo part_N
Then I wanted to stitch the rawvideo parts to an mp4:
ffmpeg -f rawvideo -i part_0 -f rawvideo -i part_1 ... output.mp4
But I'm getting the following error:

Picture size 0x0 is invalid`

rawvideo has no metadata so you have to supply all parameters. Since your input is mjpeg (edit: sequence), just keep it as that.
ffmpeg -f image2pipe -vcodec mjpeg -i - -c copy -f mjpeg part_N

Generate a text file like this
file part_0
file part_1
file part_2
...
file part_N

and then
ffmpeg -f concat -safe 0 -r 30 -i list.txt output.mp4

here -r is the desired framerate. Default is 25.

I'm getting part_%d: No such file or directory. Also tried %3d and %03d, and enclosed in single quotes, same results

Save to part_N.jpg and then input part_%d.jpg

saving it as .jpg causes the output video to only contain the first frame of each

Edited answer with new cmd.


text:
Starting a YouTube channel - Advise/Questions/Tips
everyone. I want to start a YouTube channel with some Computer Science and Mathematics tutorials and would want to hear your opinions/advice on how to get on about it.
So, here is what I want to do:

Ideally, I would want my videos to be similar to Khan Academy's tutorial style/Organic Chemistry Tutor's tutorial style for maths. This is because I am not really comfortable showing my face and doing calculations on a whiteboard.  So, I want to be able to write on a screen.
For Computer Science, I want to switch in between writing code, and/or slides and the board where I write all my content.

These are my questions:

I have an iPad and a Macbook. What software can I use to record my videos for the written portion/coding portion?
I don't have any experience in editing videos. So what skills should I familiarize myself with in order to be able to make videos that people can hopefully understand?

It would be nice if you put an example of the video you want.

This is too broad, but here are some tips.
If it is like this one

you could start with a nice PowerPoint presentation... Nicer than that example.

So what skills should I familiarize myself

There are three main categories.
1. Videos with significant production value.
Animation, photography, Illumination, music, voice, good quality, a script, storyboard, revisions...
Because of the big effort it represents, the scripting part (and its revisions) are of paramount importance.
Introduction, development, climax, conclusion.
2. Live recorded tutorials
As you remember to do things, with bloopers and fixed later with some annotation over the video.
3. Anything in between

I don't have any experience in editing videos... videos that people can hopefully understand?

Simply make them suited to your target.
This is not related directly to editing video, it is related to your capacity to make your explanations understandable but mainly interesting. It is related to what draws attention to the intended audience.
We live in a competitive era. There are a lot of videos with good quality. Some rely on personal charisma, some on the production, some in the style, some on a ton of other things.
Define what is your "mojo". What is the thing you are going to do to differentiate and add value to your product?
Yes, some of that is given by the editing. The editing is meant to give you rhythm. Some parts are meant to give you unity, volume to the voice, volume to the music.
But any editing is not enough if your source material is not good. So...
Simply prepare a video like if you are preparing a good exposition to a live audience.


text:
How to make an automatic cut when a specific pixel changes color? (Premiere or AE)
I want to cut between 2 videos when a specific visual change occurs in the current clip. But since the videos are too long I can't do it manually.
Is there a way to make an automatic cut? Or at least somehow mark it on the timeline? When a specific text or popup appears in a specific spot in the video? So somehow track when a pixel changes color?

To make an actual cut would require scripting. Are you good with Javascript? Otherwise, if you want to control a property like Opacity you could link it with an expression.

I think you'd do yourself a favor by using davinci resolve's cut-detector. For shot-reshot situations, it should work like a charm. You can then export the edit as xml or aaf and import into premiere/ae again. Davinci Resolve comes with a free version that is capable of all that.

stib: I think it should be something I can see on the timeline in order to make changes to it. So opacity probably wouldn't work.
I don't know JS but have friends who know JS for web development. Would that work?
Florian Claassen: I'll have to try that. Last time I tried Davinci Resolve, it just stopped working alltogether.

If your friends have the time and willingness to study the Premiere API, then it's doable. Not a small task though.


text:
Can I copy and paste all keyframed parameters (settings and effects) from one layer to another in Adobe After Effects CS6 within a single composition?
As the question title says. Is there a shortcut, or some way to do this?
Single composition suffices.
The only thing I found is to copy all effects, by selecting a layer → effects panel → CTRL + A to select all effects → CTRL + C to copy → Go to other layer → effects panel → CTRL + V to paste the effects.
The aforementioned process copies all effects and their keyframes, but not the individual settings. The settings of each effect is the default. That being said, I am surprised to see that they are actually keyframed.
Also, it doesn't copy other keyframed parameters (non-'effects'), such as Position, or Opacity.
Is there a way to copy all keyframed parameters exactly from one layer to another?
I'm working with Adobe After Effects CS6. Thank you.

If you go to the sequence window you can hit uu (that's double tapping the u key), to show all modified properties. Then copy all the keyframes and values (drag the cursor over the whole timeline area, including the I-beams for non-animating properties (the ones that are highlighted in blue) and copy.

If you want to copy properties that are default for one layer on to another you could use ~ instead of uu, that will show all properties of the layer.
Note that there are some effects and properties that you can't copy, they're usually things that have a custom value, like the source layer for effects that use other layers, e.g. compound blur.


text:
ffmpeg subtitle font size too big
After making subtitles in Aegisub, I save it as .ass file, with font size set from style manager,
I used this command
ffmpeg -i video.mp4 -b:v 1M -vf subtitles=subtitle.ass out.mp4

But the output file has the font a few sizes too big, larger than the original size I set in Aegisub.
Did I do something wrong?
This was the intended size:

And this is the output size:

You say you saved it as .ass but your filter is loading a srt file.

oh no sorry, I forgot to edit it, I really did put in the ass file, gonna edit it now

Provide your ass file. What player are you using?

I often use PotPlayer, here's the ass file
ass file

Fontsize in the file is set as 120, 80, 70, and 20. The first 3 sizes are of course huge.


text:
CODEC and Resolution in Multi-Variant Master playlist
I am recording my content in wowza using cupertino hls (.ts files).
I am building a playlist from these chunks at an interval of 30 mins. But while creating master playlist with all the bitrates, i need to add "CODECS, RESOLUTION".
So finally my playlist should have something like this

"#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=250000,CODECS="avc1.77.31,mp4a.40.2",RESOLUTION=1280x720"

How do I get values of codec(h264-main or h264-high)? Will any of the tools like bento4, ffmpeg help me getting the values like (avc1.77.31,mp4a.40.2 or avc1.66.30,mp4a.40.2)?
bento4 creates the manifest files when we can use mp4s directly. But I have .ts files directly. So, how do I get the codec values?


text:
How do I create a rotating zooming animation in premiere that I can loop seamlessly upon exporting?
I want to create an animation of my painting in which it rotates and zooms into the center at the end. I want to position a tiny version of the painting at the center that, at the end of the video, has rotated and increased in size with the other copy such that it takes its place. I want to achieve this kind of effect, but in the span of 30 seconds. However, it is quite difficult to position the tiny version of the image at the center, and even harder to align its keyframes with the larger image's movements. How should I go about this? Here is a link to what the picture looks like zoomed out

Do you have access to After Efects? This kind of thing is what it does much better than Premiere

Ive never used after effects but I can try

I'll answer the question for After Effects, because to do it in Premiere would be a nightmare. Probably possible, but the survivors would envy the dead.
The tool you need is parenting. Parenting enables you to group layers together, so that what you do to a parent layer you also do to its children. It only works one way though, so the children can have their own lives, moving them wont affect the parent.
Ok so you'll need to put the two layers in a composition. The easiest way to do that is to stack them above each other in a timeline in Premiere, right-click and choose replace with After Effects composition. This will open up AE with a new comp (AE version of sequence) with your layers in it. Layers in AE work the same as in PP and Potatoshop, you view them from the top down. Put the inner layer (the one you want to see at the end) on top. Go to the end of the composition (hit end) and adjust it so that it fills the screen how you want it. You can just click on it in the comp window to manipulate it, but if you want to access the numbers, hit p (no command or control key, just the letter — that's how AE rolls) for position, s for scale, r for rotation or t for opacity. Shift will show multiple properties at once, or if you want to be a noob for your whole life you can just twirl down the arrows until you find the property you want. But you don't want to be a noob for the rest of your life, do you? I can't hear you. DO YOU?
 Don't you dare.
Ok so for your purposes you'll need all of the properties above. Hold Shiftand press prst as needed. Adjust them until your layer is in its final possie.
If you want to manipulate a layer in the comp window use v for the general select / move / drag-corners-to-scale tool, or to rotate it mash w, which will select the wotate tool. Or you could click on the tool panel and choose your tool, but you're not going to do that are you? ARE YOU? I'M WATCHING YOU. You can also scrub the numbers in the properties panel by click-and-dragging, or click and type if you know what you want. This works for any blue numbers in AE.

Now we need to make these puppies move, that's what animation is all about. To do that we need keyframes. Like PP AE uses keyframes to allow properties to be changed over time. To create a keyframe, if you're a noob, you click on the little stopwatch next to the property name.

When the stopwatch is active it means that any changes you make to that property will create a new keyframe. There's a standard noob mistake which is to think that the next time you want to set a keyframe you have to click the stopwatch again. Don't do that, it will turn OFF animation for that property. Also, don't be clicking. [Smacks mouse hand] Stop crying and start learning the keyboard shortcuts like a pro. Seriously, your carpal tunnel will thank me in a few years, and you'll be waaay faster.
To set a keyframe on a property you press its keyboard shortcut but with shiftalt, or for those still using macs shift⌥/opt held down. You'll want to set a keyframe for all your properties, so don't just stand there, get keystrokin': shiftalt / ⌥p then  shiftalt / ⌥r, shiftalt / ⌥s, and  shiftalt / ⌥t. Practice it now and it will go into muscle memory. I do it hundreds of times a day, to the point where I actually have to open up AE and set a keyframe to remember what keys I use, because it's not a conscious thing any more. That's where you want to be.
Pro tip: at this point your layer has some animated properties. To show / hide all the animated properties for a layer, select it and press u. Boom. Bonus pro-tip: What I didn't know for the first few years of using AE (this is the 90s, so things were a bit hazy) was that double tapping it: uu will bring up all modified properties for that layer.

Ok, now hide the top layer. See that eye icon on the left of the top layer? Click that sucker. Annoyingly there is no kb shortcut for this by default.
Now go back to the start of your comp. Pop quiz: if end was the keyboard shortcut for going to the start, you win $1,000,000 cash money if you can guess the shortcut for going home to the beginning*.
With your bottom layer selected, adjust its scale rotation etc. so that it's to your liking, and set keyframes for the properties as necessary. Jump back to the end. You can use a new kb shortcut for this, one you should know: k. It jumps to the next keyframe, and j jumps to the previous keyframe.
At the end of your comp, adjust the bottom layer so that it's how you want it. Because you have the stopwatches active for your transform properties any changes you make will now create a new keyframe. Look at me mum, I'm animating! If you scrub the timeline you'll see the magic happening, or if you want to watch it play in real-time (or whatever your machine can manage), hit 0 on your numeric keyboard, or ctrl0 on a laptop (from memory, might not be right). It will slowly play back as it renders the frames, then playback at something like real time once they're all cached (the green bar on the top of the timeline).
OK now for the parenting. On the right of the properties part of the timeline you'll see the parent column. And a curly icon called the pick-whip, or as someone once mondegreen-ed, the "pig-whip", which instantly became my preferred term for it. This will choose a parent for the layer.

Note that there are (in recent versions of AE) pig-whips for all of the properties. This is for expressions (which is for another day, but they're awesome). Use the pig-whip on the top of the layer, not these ones or you'll get too confused. Also don't call it pig-whip if there's a client listening, you'll sound like an idiot.
We want to make the top layer the child of the bottom layer. At the end of your comp (this is important), use the pig-whip or the drop-down panel to set the parent for the top layer to the bottom layer.

What you'll see now if you go backwards down the time line is that the top layer will shrink in time with the bottom layer. Go back to the start and adjust any additional motion you want it to have. You may also want to set its opacity to 0 at the start, so that it fades in over the zoom.
Nearly done. There's One Weird Trick That Animators Don't Want You To Know that will sell this even better. Use Motion Blur. In the properties panel you'll see four columns of icons. If you can't see them hit f4. Click the one that looks like a stack of chips at a casino. Click it for both layers.

… Nothing changes … Ok, the reason that you don't see anything is that motion blur basically renders each frame a bunch of times at in-between positions and displays them all together. It's super computationally expensive, that's why it looks like casino chips**. So each frame might be rendered dozens, even hundreds of times depending on your settings. Hello slowness.
To display motion blur you have to enable it for the layer, then enable it for previews. See the casino chips icon above the top right of the properties panel? Click that boi, and it should turn blue. Now you should see motion blur on any layer that has it turned on.

OK, save your project, jump back to premiere, and you should see the animation right there in your timeline, like it was all a crazy nightmare … or was it?
*cash money offer not valid in real life, terms and conditions apply, offer not applicable to residents outside Saint Kitts and Nevis.
**this is flat-out not true, but it helps me remember.


text:
Is there any AI upscale tool for videos?
I’m working on an amateur project, and for part of my project I’ll be using some old, really, really low-res film. I’ve used some free online tools (like deep-image.ai) to upscale low-res photos before, to great success.
I’m trying to find a similar tool for video, but all the tools I’ve come across are for enterprise or cost caboodle.
Is there any free tool out there for AI image upscaling?

Topaz Labs do one for $200, they also have a free trial that is time-limited. https://topazlabs.com/video-enhance-ai/

There's a few options I've seen listed at
https://sites.google.com/view/aiupscalingtutorials/ai-upscaling:
(in no particular order)

1. ESRGAN

An open source AI upscaler (super sampler) based on a generative adversarial network architecture.
Can be run in CPU mode, but requires a CUDA enabled Nvidia graphics card to get the most out of it.
Be sure to check out the Upscale Wiki

2. SFTGAN

An open source image enhancer that seeks to restore lost texture details from known types, made by the same team who developed ESRGAN.
Can be run in CPU mode, but requires a CUDA enabled Nvidia graphics card to get the most out of it.

3. Topaz Gigapixel AI / Video Enhance AI

Commercial super sampler that uses artificial intelligence and is made by Topaz Labs.  It costs $100, but comes with a 30 day free trial.
Produces good results with little fuss.  Easy to install, but also requires a CUDA enabled Nvidia graphics card.

4. Nvidia Gameworks

Apparently, it works quite well, but it requires a beta access pass which very few people were awarded.

Then I've also come across:
5. AVC Labs Video Enhancer AI

Commercial product, similar to Topaz Video Enhancer AI
US$40/month or $200/year
Free trial version

6. DVDFab Video Enhancer AI

Another commercial product, again similar to Topaz Video Enhancer AI
US$79.95

7. Dandere2x

Open source
I've read some good reports about this, and it may be worth checking out

8. Video2x and Waifu2x-Extension-GUI

These two frontends assist with processing video using the open source waifu2x engine

9. Nero AI Video Upscaler

Another commercial product for upscaling DVDs, old tapes, and old animated films.
US$65 per year or US$140 for permanent licence

Video2x and  Waifu2x-Extension-GUI are also two possible frontends for waifu2x (which isn't halfway bad even for normal video, at least with the photo models). For ESRGAN I would instead recommend checking Upscale Wiki.

I do want to add though that AVC is $600, not $30-$40 as while it advertises as 'buy now' its actually a monthly subscription. to buy it with a one time payment, it is quite high. I also believe the 'sale' is a permanent feature, every online reference to it references the same prices.

@DIGIByte Oh thank you. Yes! The webpage is misleading when it lists a price but not the licence duration (until you checkout). I’ve updated the post above.

What type of machine learning algorithm does Topaz Video AI use to upscale videos, compared to the first 2 software listed which clearly are using generative adversarial networks (GAN)?

When I browse the video upscaler from the Internet, I found two kinds of video upscaling tools.

One is the video upscaling software, such as AVCLabs, Topaz, DVDFab.
Another one is an online video upscaler.

Both of them are able to upscale video in 1080p to 4K.
If you have more patience and time to observe the video upscaler, you can try AVCLabs Video Enhancer AI, because I found that it is free currently.

You found AVC Video Enhancer AI for free? The website indicates that it's $29.95.

If you have a really good ai enhancer for images, you could extract each of the frames, do a batch enhance andupscale of each frame, then use an image stitcher to put them back as video. its a pain in the ass and can take awhile if you have a long video to enhance, but its an option

This can be worth trying in some situations, however it's good to be aware that the better video upscalers can take things like motion, framerate and interlacing into account by scanning across frames which may improve the result in some cases.