text:
Concatenate clips with as little code as possible in AviSynth+
I am new to AviSynth+. I am concatenating 9 clips, trimming the first and last, fading in the first and fading out the last, and cross-dissolving between clips. This code works:
audio=ffaudiosource("F:\_DSC001.MOV")
video=FFMS2("F:\_DSC001.MOV")
start=AudioDub(audio, video)
clip1=Trim(start, 3600, 30000)

audio=ffaudiosource("F:\_DSC002.MOV")
video=FFMS2("F:\_DSC002.MOV")
clip2=AudioDub(audio, video)

... same for clips 3-8 ...

audio=ffaudiosource("F:\_DSC009.MOV")
video=FFMS2("F:\_DSC009.MOV")
clip9=Trim(AudioDub(audio, video), 0, 22575)

FadeIn(clip1, 100)
Dissolve(last, clip2, 50)
Dissolve(last, clip3, 50)
Dissolve(last, clip4, 50)
Dissolve(last, clip5, 50)
Dissolve(last, clip6, 50)
Dissolve(last, clip7, 50)
Dissolve(last, clip8, 50)
Dissolve(last, clip9, 50)
FadeOut(last, 100)

It's quite verbose and repetitive. I wonder if some pre-processor script can take some of these parameters and arguments and produce the above AviSynth+ script.
Does such a pre-processor exist, or could the AviSynth+ script be optimized or improved?

function SegmentedDissolve(string base, int first_val, int last_val, string format, int dissolve_length ){
    filename = base + string(first_val, format) + ".MOV"
    result = FFMS2(filename)
    return (first_val < last_val) \
        ? Dissolve(result, SegmentedDissolve(base, first_val+1, last_val, format, dissolve_length), dissolve_length) \
        : result
}

SegmentedDissolve("F:\_DSC", 1, 9, "%03.0f", 50).Trim(3600, yyy).FadeIn(100).FadeOut(100)

You would need to figure out what value yyy needs to be for the concatenated clip. If the first clip needs to be trimmed on both sides, then the first clip should not be included in the function (start first_val at 2), and instead get loaded, processed, and concatenated manually.
As a note, the FFMS2 function also loads up any audio found in the specified clip, so you do not need to dub it unless you are doing processing on it first.

I lost access to AviSynth on Windows and could not install it on Azure. I may try this code on macOS now that AviSynth is compatible.


text:
How I can play an Amazon Prime Video movie with Dolby Digital Plus audio using Chrome browser in my PC?
Currently my web browser Chrome (last version 80) cannot play Dolby Digital Plus audio. I know this audio is used in other devices like Apple TV, Roku, or Amazon Fire TV for example.
According to network tab of browser, just only AAC, 128 kbps, 2 channels.
Same with browser Edge.
Obviously Amazon prefers AAC audio since it consumes less bandwidth, but no comparisson of quality with E-AC-3 audio.
Then, how can I play in Dolby Digital Plus 5.1 surround sound in my web browser?
Best

https://chrome.google.com/webstore/detail/dolby-voice-13
This is an extension for chrome browser for running dolby atoms this works as expected, its free and can be downloaded from chrome wen store.

Web browsers do not include support for DD+. There is no way to play it.

Noted. Do you think it is possible to get any application where I can log in to Amazon and get support for DD+? I know it is not possible with Kodi app using suitable add-on.
Maybe setting up audio input and output of my audio target with kodi?

What do you mean by “log in and get support”

I mean I can sign/log in my account of Amazon Prime Video and app is able to play for DD+. Kodi app with suitable add-on is not possible. It is said "Dolby" when you select a movie but only AAC really.
Source of add-on: https://forum.kodi.tv/showthread.php?tid=349255

Kodi is just launching a chrome-less browser to play the video. There is no “app”. It’s the only way to play the video because of the DRM. And browsers don’t support DD+. So no, there is no way to use kodi to play DD+ for amazon video.

Yes, you are right. According to site https://developer.dolby.com : "browser does not yet support Dolby Digital Plus", which I guess it could be implemented next years maybe.

Very unlikely. DD+ is pretty old at this point. Opus is a better choice and supported by most browsers already. The only reason DD+ is still relevant is apple.

I disagree with you. According to Dolby.com: "Dolby Digital Plus is also a core format for Dolby Audio, built into Windows 10 and the new Microsoft Edge browser, available on PCs ...". Source https://www.dolby.com/us/en/technologies/dolby-digital-plus.html

Browsers DO support DD+ .. I dont know why this was innacurately reported... the New edge chrome and even the older legacy edge both than support for DD+ and edge chrome will also do atmos/DD+..  Now just because they support it doesnt nessarily mean that streaming services will Use it.. Netflix in the above mentioned browsers will indeed give 5.1 in both DD+ and DD+/atmos as I have verified it on my surround system..discrete channels...Now amazon however, will only do stereo through said browsers and even with the new win 10 prime video app, its still only stereo and no 4k support..... sad.

source: Stack Exchange

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

sort: votes


text:
Any way to create a dashed line in Premiere Pro?
Is there any way to create a dashed line within Premiere Pro- say in the title tool or otherwise, without having to import from external sources?

A possible workaround would be to use the Venetian Blinds filter. Here with a bit of experimentation I've made a path with a stroke of 20 and for the blind effect I have doubled the width to 40.

The Transition Completion value is set to 50% so that half of the effect is achieved. You might want to play around with the settings if you want longer dashes or gaps.

This effect is typically used as a transition, but as we have not used keyframes for the transition there will be no animation. This effect only works with straight lines, if the line is at an angle, you will need to adjust the Direction value.
You may find it more appropriate to design dashed lines in After Effects as there are options for stroke gap and width to easily create a dashed line.

The option of making it outside in AE, Illustrator or Photoshop always existed. I was looking for a method where I would not have to move out. I'll give your method a shot and see if it really helps in speeding up things. Thanks.

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


text:
FFMpeg kmsgrab record pixels in incorrect order
ffmpeg -f kmsgrab -i - -framerate 60 -vf 'hwdownload,format=bgr0' -preset ultrafast out.mkv
This is how a video frame should look like

This is how it is recorded by ffmpeg
https://drive.google.com/file/d/11jOUTk3ZxOfwnfd7zS4d4qBLApTS3Vmx/view?usp=sharing

I had the exact same problem with an intel hd 3000 igpu (i5-2467), but then I lowered the framerate and it was mostly gone, albeit once or twice it bothered me with this image glitch.
The lower the framerate, the less errors = 15 fps was a good tradeoff I found ; 30fps was smoother but every minute or so I had some milliseconds lost.


text:
random copied and being truly random
I have a comp...
one null with an expression slider
and the rest are image layers.
the null with this expression, controls a random animation of the images beneath the null:
Math.abs(Math.round(wiggle(4, thisComp.numLayers-2)))+2
each image layer has this expression attached to the opacity:
if (thisComp.layer("Control").effect("Slider Control")(1) == index) 100 else 0
it all works great BUT...
say I duplicate that random comp 20 times... but matte each duplication with a separate puzzle shape. thus giving me a puzzle comprised of the 20 shapes all spiting out a random frame from that comp.
How do I make the twenty duplications behave random of each other?
at the moment, they are all random in unison.
cheers
r

The random number generator in AE seems to be linked to the layer index, but generates the same results for every composition. To demonstrate here's a comp with a shape layer where the vertices of the shape are generated by the wiggle() function:

Here's the expression:
var newPath = [];
for (var i=0; i<=160; i++){
    x = i*thisComp.width/160;
    y = transform.position.wiggle(1, 100, octaves = 1, amp_mult = .5, t = i)[1];
    newPath[i] = [x,y];
}
createPath(points = newPath, inTangents = [], outTangents = [], isClosed = false)

if I duplicate that layer in the same comp I get two different paths (I've given each a different colour, but the expression is the same):

If I add layers to the comp before the shape layer, so that the shape layer's index changes this also changes the shape of the path. You can also explicitly set the index of the layer generating the wiggle, e.g.:
var i = math.floor(effect("Slider Control")("Slider"));
var w = thisComp.layer(i).transform.position.wiggle(1,2);

So ∴ the index of the layer is used to generate random values for the wiggle() function. QED ◼.
This means that if I duplicate my comp, each duplicate comp produces the same result. Here I've duplicated the original comp three times and brought them into another comp. I've offset each layer a little on the Y axis so you can see them all:

So you can see that the wiggle() function is deterministic, and produces the same results for the same layer index across different comps. This is the problem you're experiencing.
Fortunately there is a way of overriding the seed for the random number generator. That's the seedRandom() function. It's more commonly used for the random() and gaussRandom() functions, but it works for wiggle() and noise() too. The seedRandom() function takes two arguments, the first being a number, which seeds the random number generator, and the second a boolean which set whether the random number generator changes with time or if it stays the same. If you use the same seed the generator will always produce the same results, so usually on a layer you use the layer's index to set the seed. Since that won't work we can seed it with a unique number, derived from the comp's name.
Here's the same comp with the three subcomps, only this time I've added the line
seedRandom(thisComp.name[thisComp.name.length -1], timeless =true);

before the wiggle() function. The term thisComp.name[thisComp.name.length -1] returns the last character of the comp name. And since my comps are called comp 1, comp 2 and comp 3 it returns the characters "1", "2", and "3". Since javascript is loosely typed, these characters get cast to ints for the seedRandom() first parameter, meaning that when I duplicate the comp I automatically get a unique random seed (I'd have to use regex or get the Ascii values of the letters or something if there were more than one digit, and it would break if I renamed the comps). Here's the final comp now

Interestingly adding the seedRandom() for the first layer also effected any other layers in that comp. So if the first layer has a random seed based on the comp name, other layers using wiggle() will now get identical results. So overriding the random number generator is global within the scope of each composition (I just learned this). Here's the second comp, but with seedRandom() on the first layer (red), but not on the second layer(green) offset 1 pixel for visibility:

to avoid this gotcha, you can add back the index to the random seed:
seedRandom(index + thisComp.name[thisComp.name.length-1],timeless = true);

##TL;DR##
if your comps are named comp 1, comp 2, comp 3, etc., adding this line to any layers with a wiggle expression will generate unique wiggles:
seedRandom(index + thisComp.name[thisComp.name.length-1],timeless = true);


text:
How can I convert a large file from MP4 to MOV?
I recorded a 5 minute video with my phone, it is a 565M MP4 file. I need to submit it as MOV, specifically. All online converters reject the file as 'too large' and all downloadable programs cost at least $20, which I don't want to spend on a single file. Is there a (legal) way to do it? I'm using Windows 10 and have no access to a Mac.

ffmpeg is a free command line tool and can do it. Get executable files from http://www.ffmpeg.org/download.html

You could try just changing the file extension. No, really; mp4 and mov are pretty much the same thing so this 'one weird trick' often works. But since you said "submit", don't rely on it without testing first.

If you prefer a graphical user interface you can use the free MediaCoder for Windows.
In the Video Tab choose Format H.264.
Audio Tab > Format LC-AAC.
Container Tab > Container MOV.


text:
Quick audio cleanup filters in Kdenlive
I have a project where people are talking in amateur footage. That means no lava or overhead microphone. Just digital camera. A lot of outside noise is caught.
Is there a filter, multi-band equalizer, compressor, limiter or anything I can drop on all the little fragments of audio to make the end result somewhat better? There are tools that might be able to do the job, but all tools come without any presets, so it's hard to figure out sensible defaults without a more technical background in audio. Furthermore, settings that depend on current levels (i.e. "attack") seem to be reset on every audio snippet and I don't believe I can let all the audio be treated as one channel.
Once the project is complete, a more dedicated audio software can be used. But it will take a while and a lot of exports will be made. I have no time to finalize the audio externally for every export. It would be nice if there was a way to improve the audio somewhat using clever computer wizardry.
Perhaps there is a trick, like freezing all the audio into one single clip and apply some presets on that.

Sadly, there's very little you can do about bad source audio.  As you've discovered, there are some audio processing tools that might help, but the specific settings depend on the echo patterns in that particular room in that particular location; hence the lack of presets.  You can get some improvement, but it will be very labor-intensive with lots of trial and error, and the final improvement will be relatively minor.

Currently your best bet is to extract the audio of the clip before you start editing, and then importing it into Audacity, which has a great toolbox for dealing with outside noise.
Once done, you can export from Audacity and back into Kdenlive.
It's a workaround, and very labor intensive. It would have been much nicer to be able to apply some basic audio filters directly in Kdenlive.

This tutorial goes in the same vein, and it doesn't seem to be that much work.


text:
Record for an hour using mobile phone
I want to record someone speaking for about an hour without any gaps. To do this i'm using a Samsung Galaxy s8.
The default video application splits the video into 4gb files when recording longer videos; which would be ok,  but when I take them into a video editor to join them,  they don't fully match up.
Is there a way round this without rooting my phone.
I've tried a few video applications and recorded to the internal and sd memories.

I haven't used the Android version, so I don't know whether it splits into 4GB chunks, but Filmic Pro is a widely respected video camera app, and they make an Android version. The 4GB limit might be a limitation of the file system. https://www.filmicpro.com/

Open Camera is an open source app that let's you do this. You can configure it for various times including unlimited.
Android has typically a 4GB limit on video size. Your one hour video will most likely exceed this limit
. Open Camera let's you restart the video automatically after the 4 GB limit is reached which can be joined in a video editor

I don't recall the name of the video editor used


text:
Color loss and grayish after downscaling using ffmpeg
Forgive me for I'm new to here, but I've been searching for solutions all the day,  yet still puzzled by this problem. I try to downscale a 3840*2160 video to 1080p, and here's what I first did:
ffmpeg -i original.mkv -vf scale=1920:-1 downscaled.mkv
And here are the results:
Original:

Downscaled:

At first, I thought it's because I didn't apply the correct settings to my video player (potplayer), but even I set exactly the same splitter/decoder/renderer/..., it still didn't work.
Then I searched and tried different ways like  pix_fmt yuv444p10le which is from a post here, and later defined encoders, crf...... but all didn't work.
Could anyone please help me, many thanks!

Add: I then used HandBrake, a GUI video transcoder, to downscale the original video, it worked well, at least, looks a lot better.

Interesting. I suspect it has something to do with the color-space you're in. The original footage might have been in srgb but then got converted into an ACES colorspace (for example), and thus the values for each color shifted a bit. You might want to try to find out the color-space of your original footage and then setting it during the downscaling with ffmpeg.

Share the readout of ffmpeg -i original.mkv

@Gyan too long to comment, so I'll separately comment.

Metadata:     title           : Frozen.II.2019.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.7.1.Atmos-FGT     ENCODER         : Lavf58.35.101   Duration: 00:01:40.64, start: 0.000000, bitrate: 68129 kb/s     Chapter #0:0: start 0.000000, end 100.000000     Metadata:       title           : Chapter 15     Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc

Metadata:       title           : Frozen.II.2019.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.7.1.Atmos-FGT       BPS-eng         : 60669047       DURATION-eng    : 01:43:13.646000000       NUMBER_OF_FRAMES-eng: 148499       NUMBER_OF_BYTES-eng: 46970325317       _STATISTICS_WRITING_APP-eng: mkvmerge v43.0.0 ('The Quartermaster') 64-bit       _STATISTICS_WRITING_DATE_UTC-eng: 2020-02-15 09:08:44       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES       DURATION   : 00:01:40.642000000     Stream #0:1(eng): Audio: truehd, 48000 Hz, 7.1, s32 (24 bit) (default)

Metadata:       title           : Frozen.II.2019.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.7.1.Atmos-FGT       BPS-eng         : 8448778       DURATION-eng    : 01:43:13.646000000       NUMBER_OF_FRAMES-eng: 7432376       NUMBER_OF_BYTES-eng: 6541093050       _STATISTICS_WRITING_APP-eng: mkvmerge v43.0.0 ('The Quartermaster') 64-bit       _STATISTICS_WRITING_DATE_UTC-eng: 2020-02-15 09:08:44       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES       DURATION        : 00:01:40.336000000     Stream #0:2(eng): Subtitle: subrip (default)

Metadata:       title           : English-SRT       BPS-eng         : 53       DURATION-eng    : 01:41:34.123000000       NUMBER_OF_FRAMES-eng: 1562       NUMBER_OF_BYTES-eng: 40405       _STATISTICS_WRITING_APP-eng: mkvmerge v43.0.0 ('The Quartermaster') 64-bit       _STATISTICS_WRITING_DATE_UTC-eng: 2020-02-15 09:08:44       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES       DURATION        : 00:01:39.221000000

You should [edit] your question to add this info instead of trying to cram it in multiple comments.


text:
Importing/automating keyframes in Adobe Premiere
I want to get a stationary view on a moving subject, which needs to be staying within his square box on the final video (the camera should follow him).
So far I got away by clicking every 15 second to create a new keyframe and drag the canvas such that the object is centred in the final 1×1 layout.
I am going to automate this with a simple Python script.
The output of the script could be a sequence of coordinates, in whatever format Premiere wants them, so that it would replace my desperate clicking (45 hours of footage overall × 4 × 3600 = 650k clicks). Hence, does anyone know how to import / export keyframes so that I can figure how to craft such a hack?
Alternatively, but I don't fancy this, I can crop the video using ffmpeg and import that, but that wouldn't allow for later corrections.

Premiere doesn't support Python scripting.  DaVinci Resolve does.

After Effects would probably be more appropriate for tracking a moving subject, the process is almost entirely automated.

Yeah, @Ambo100, my student yesterday showed me some dark magic in AE (I've never used before). Haha, I still think programming is easier


text:
How to easily extract start/end times of several clips within a video?
I very often get videos from which I need to extract about 1 to 5 clips.
Currently I watch those videos in VLC and take note of the start/end times that each of the clips span. I feed that into ffmpeg, which I use to extract the clips to separate video files.
Whereas this works fine, it's kind of tedious to be playing the video and stopping, taking note of the start time, continuing, taking note of the end time, and so on.
I would like to find some tool where I can watch the video and when there is a span of interest, just move to the right frame, press a key and have the start/end time automatically saved for me. I don't mind about the specific output; I can process it later with a script before feeding the start/end times to ffmpeg.
I know with VirtualDub, Avidemux, etc., you can extract the video directly (clip by clip), but what I want to extract is the times of these interesting clips and do the actual extraction all at once with ffmpeg.
Is there any tool, if possible for Linux, that I could use to easily extract these times? Maybe any functionality or plugin for VLC or other player? Or any tool normally used for creating subtitles or some other synchronisation task?

As an initial approach, gnome-subtitles seems to be an interesting option.
sudo apt-get install gnome-subtitles

One can marking the beginning and end of each clip as one dialog entry in the subtitle file, which can be saved as srt and later transformed to be used with ffmpeg.


text:
How to make video play with correct aspect ratio
I have the following issue: I have a video file (h264) that plays with the correct aspect ratio in mplayer. However, if I load it into Intel's Computer Vision Annotation Tool, or if I re-encode the video using openCV, the aspect ratio is no longer correct.
"ffprobe -i" on the original file gives

1440x1080 [SAR 4:3 DAR 16:9]

whereas for the re-encoded file I get

1440x1080 [SAR 1:1 DAR 4:3]

I have other video files with

1920x1080 [SAR 1:1 DAR 16:9]

that do not cause this issue.
Do I just have to modify the SAR in the header or is the problem more complicated? I would like to preserve the codec if possible.

For a H264 stream, use the h264_metadata bitstream filter
ffmpeg -i in.mp4 -c copy -bsf:v "h264_metadata=sample_aspect_ratio=4/3" out.mp4

that did it, thanks !

If you want to change the Sample Aspect Ratio (aka Pixel Aspect Ratio) without reencoding use mkvmerge or mp4box:
mkvmerge
mkvmerge -o "out.mp4" --aspect-ratio-factor 0:4/3 "in.mp4"

mp4box
mp4box -add in.mp4 -par 1=4:3 out.mp4

In ffmpeg you cannot combine a filter with -c copy ...
ffmpeg -i in.mp4 -vf setsar=sar=4/3 -map 0 -c copy out.mp4

because
Filtering and streamcopy cannot be used together.


text:
Good technique to superimpose face into moving character in AfterEffects?
I'm going to direct a music video for my band (I have experience in film production, direction and some video post-production) and I want to achieve the following effect:
Film the singer at a high FPS (with a phantom hd gold) and then slow it down substantially. Then, at the same location, film the singer actually singing the song, and then in post production superimposing his face (without it being slowed down) on his own body from the previous shot.
Final effect: his body and background will be moving in super slow motion but he will be singing the song at normal speed.
I'd prefer to do it in after effects since it's the software I have most experience with.
I know sometimes a similar effect is achieved by speeding up the song and the singer lip syncing to that, but in this case it would be impossible because I want film at around 1000fps and slow that down, so it would be too fast.
I wont move the camera and I know I have to take in account shadows and lighting in both takes so they match.
Any suggestions?

Sounds doable. Have you considered using green screen for the singer to make the head transposition a bit easier?

There is some substantial work that would go in an effect like that.
You'd have to first track the face of the slowed-down singer in 3D-space and apply a mesh to it, which sticks perfectly to his features.
Then, you'd want to rotoscope the normal-speed singer's face (which is going to take a lot of time alone) to then apply that pass with your tracked transform to the slowed-down background. You'd also have to match the change in shape of the head, such as when opening the jaw. This is not only applying to the face, but the whole head really.
(If I understand your vision correctly,) this is a high-end job that would take a few weeks for a professional compositor.
I would recommend you film the entire background in slow-motion, then shoot the singer in front of a green-screen so you don't have to rotoscope him out of the background. You can then simply key your singer in normal speed, track your slowed-down background (if there's movement in the camera) and place your singer on your background, applying the motion of the camera.
This method is not a walk in the park, but significantly easier than the approach above.
Hope I could help, have a great day :)

Then, at the same location, film the singer actually singing the song

Seems as if you wanted to capture the artist twice. 1st time in high fps and 2nd time in normal speed.
I suggest only capturing the scene once at high fps and blending the same footage with a normal framerate.


text:
RubberHose distorts a shape
I'm trying to animate a shape in After Effects with RubberHose plugin. I'm creating a shape layer and placing it in pre-compose. Then placing a 3 pins on that pre-compose. After I select them and alt+click on New RubberPin the shape is being distorted. Why is it happening?

I have not yet worked with the plugin, but I suspect that it accesses the path of your shape. If you pre-compose your shape, the plugin will not be able to access the path anymore. Try applying the plugin/effect on the shape directly before precomposing.

@FlorianClaaßen thank you


text:
Add animated gif to video with ffmpeg
I need a simple ffmpeg script to add an animated gif to video with given x and y.

You might want to provide more information of what you're trying to do to up your chances of a valuable answer.

Use the overlay filter as shown in How to add transparent watermark in center of a video with ffmpeg?

The answer is already there!


text:
Combining two live RTMP streams into another RTMP stream, synchronization issues (with FFMPEG)
I'm trying to combine (side by side) two live video streams coming over RTMP, using the following ffmpeg command:
ffmpeg -i "rtmp://first" -i "rtmp://first" -filter_complex "[0v][1v]xstack=inputs=2:layout=0_0|1920_0[stacked]" -map "[stacked]" -preset ultrafast -vcodec libx264 -tune zerolatency -an -f flv output.flv

In this example I actually use the same input stream two times, because the issue is more visible this way. And the issue is in the output two streams are out of sync by about 2-3 seconds. That is - I expect (since I have two identical inputs) to have exactly the same left and right sides in the output. Instead - left side is behind right side by 2-3 seconds.
What I believe is happening is ffmpeg connects to inputs in order (I see this in output log) and connection to each one takes 2-3 seconds (maybe it waits for I-frame, those streams have I-frame interval of 3 seconds). Then probably, it buffers frames received from first (already connected) input, while connecting to the second one. When second one is connected and frames from both inputs are ready to be put through the filter - first input buffer already contains 2-3 seconds of video - and result is out of sync.
Again, that's just my assumptions. So, how can achieve my goal? What I basically want is for ffmpeg to discard all "old" frames received before BOTH inputs are connected OR somehow put "empty" (black?) frames for second input, while waiting for that second input to become available. I tried play with various flags, with PTS (setpts filter), but to no avail.

Can you expose or share one of these URLs?

@Gyan I cannot share such url, but it's produced by streaming my desktop via OBS Studio to rtmp endpoint on server (which is private, so I cannot share it) and consuming that endpoint. Server doesn't do any processing of that RTMP stream, so I think it can be reproduced. Same happens when I stream my camera (or any other "live" source). I consume the same stream 2 times in my example in question, so that synchronization issue is very visible.

I'm trying to do something similar and have tried various combinations of -vsync, -max_delay, -copyts and -start_at_zero but not managed to synchronise my two live streams yet.

@RichardWiseman yes, I've given up on this and had to manually mix frames using C++ (still with the help of ffmpeg, but not with command-line utility).

I got it working by adding -fflags nobuffer -flags low_delay -strict experimental before all the inputs.
Got helped reading this thread

-vsync parameter
Video sync method.

0: Each frame is passed with its timestamp from the demuxer to the muxer
1: Frames will be duplicated and dropped to achieve exactly the requested constant framerate.
2: Frames are passed through with their timestamp or dropped to prevent 2 frames from having the same timestamp
-1: Chooses between 1 and 2 depending on muxer capabilities. This is the default method.

With -map you can select from which stream the timestamps should be taken. You can leave either video or audio unchanged and sync the remaining stream(s) to the unchanged one.
-async samples_per_second
Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, the parameter is the maximum samples per second by which the audio is changed. -async 1 is a special case where only the start of the audio stream is corrected without any later correction.
-copyts
Copy timestamps from input to output.


text:
How to set up streaming from two webcams or stereo camera (2x lens) to VR headset with minimal latency?
I have watched Barbie doll illusion on youtube and wanted to set this up myself.
I already have tried doing it with 1080GTX + Samsung S8+ + GEAR VR + WebCam + RiftCat + SteamVR + Oculus + OVRdrop over 5G Archer C7 wifi. However, the lag is at least half a second and experience just does not work.
I am ok with buying additional equipment (different VR headset, camera, etc), but before investing in equipment I would really like someone to have already tried it.
How to set up streaming from two web cameras or stereo (dual lens) to VR headset without (or minimal) latency?

Wireless will always give you some latency (if you're not spending a fortune). I would recommend you try using sdi cables. In video-production, sdi is often used for immediate feedback to the directors monitor etc. - so you should have less of a problem with latency there.


text:
Analyze video file properties - Ripping Question
I'm trying to see if there is a way to determine if a movie file was ripped from a DVD/Blu-ray. Currently the only way I can check is looking at the ffprobe output and checking the tags property:

"_STATISTICS_WRITING_APP-eng: MakeMKV v1.14.5 win(x64-release)"

This tells me it was created by the MakeMKV application. If I have the video properties is there a way to check that it's a straight copy of a DVD/Blu-ray?
Example:

Bitrate:         (7,209 kb/s)
Resolution:      (480p)
Bit Depth:       (8)
Frame Rate:      (23.976)
Color space:     (YUV)
Chroma Sampling: (4:2:0)
File size:       (4.35 GiB)

Yes you can google the encoding settings for a bluray and compare it to your file. Looking at your example, this is definitely a rip, since blurays are never (afaik) encoded in 480p (yuck!)


text:
Automating Adobe Premiere Pro for trimming videos based on volume level
Good evening,
I have been recording screen-captured videos from my iPad explaining Math concepts (it's a Khan Academy style personal project). After I record it, I trim out the parts in which I'm in silence, either because I am making a diagram, or because I am thinking about what I will say.
I have a question related to automating Adobe Premiere Pro: can I automatically trim out those parts? Is there a solution out there that addresses that? Is it possible to build some code in the software where it trims out "anything below volume X"?
Thank you

Probably possible, but you'd need to write a script for it. If you're good with Javascript have a look at https://buildmedia.readthedocs.org/media/pdf/premiere-scripting-guide/latest/premiere-scripting-guide.pdf

Try the Auto Gate setting in the Dynamics audio effect.
It will gate (turn off the audio) if the threshold of the audio falls below a specified level for a specified amount of time.
Doing this manually would sound better but take longer.
The gate won’t be able to tell the difference between a deliberate piece of speech and a mouth pop or click, so you may hear the gate open and close when you don’t want it to.
https://helpx.adobe.com/in/premiere-pro/using/audio-effects-transitions.html
Note:It will not trim your clips, just affect whether you hear parts of them in your edit.


text:
Check for video file integrity for - bulk
Have more then 1000 mxf files.
Is there a software that can bulk check all of them for any kind of corruption/integrity ?
I found several answers on stackexchange but all include Linux commands that I am not sure how to use since I am on win10.
Any sort of user friendly software would be great, like handbrake or media encoder ?

There are several widely adopted file-based QC systems on the market. They include:

Interra Baton
Telestream (formerly Tektronix) Aurora
Telestream Vidchecker
Venera Pulsar

Note that as of NAB NY 2019, Telestream had not announced plans for what will happen with Vidchecker and Aurora after the Tektronix acquisition.

Thx! These all seem as tools for large broadcasters, and I guess the price is heavy (none are available to see online).

They are not only used by large broadcasters. I know of many post houses that use one of the systems I listed or similar alternatives. Feel free to update the question with what your budget is.

This is 1 or 2 times a year process, budget under 100$


text:
After Effects - Double View in Composition Tab
I was working on my main composition (Comp 1) and it suddenly became a double-sided view (one at the top and one at the bottom). I don't know how can I fix it, but it's related to Composition Mini-Flowchart. (Working in After Effects 2020)

How do I fix that and have a single comp view?

That was very simple, I should change this to "1 View":


text:
How to add same effects on Multiple videos?
I have 50 videos. I have to add rain and fog effects for all videos. Is there any option for batch operation in Adobe Premiere Pro? Like I will create an template of fog and rain operation then apply it to all videos?


text:
Slideshow compilation takes 10 minutes for 3 images
I want to make a slideshow from images. The first image has 6932x4683 pixels, so I got an error height not divisible by 2 and I found this thread. I understand that libx264 is implicit in the output as .mp4, and that libx264 needs an input image whose dimensions are divisible by 2. So I used the padding filter recommended there:
ffmpeg -f concat -safe 0 -i slideshow.txt -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" slideshow.mp4

The file slideshow.txt is:

file '03.jpeg'
duration 2.5
file '01.jpeg'
duration 2.5
file '02.jpeg'
duration 2.5
file '02.jpeg'

The command took 10 minutes to process these 3 images. When playing the result, it skipped the middle image.
I tried outputting to slideshow.MOV and without the filter, and it also throws the same error.   I tried outputting to slideshow.MTS and without the filter, it works but the result shows no images when I play it on VLC.
Why does the command and the implicit call to libx264 take so long, and how can I avoid using libx264?

You're rendering 7.5 seconds x 25 frames/sec = 188 whole frames of 6932x4683 resolution. That will take quite a bit of processing time.

Indeed, scaling down (with ffmpeg -f concat -safe 0 -i slideshow.txt -vf "scale=-1:720,pad=ceil(iw/2)*2:ceil(ih/2)*2" slideshow.mp4) takes 2.7 seconds to output a 1065x720 file. A quick calculation would suggest that the original command would take 2.7*(6932/1065)*(4683/720)=114 seconds. Is that rule of thumb a reasonable way to estimate processing time?

As a first approximation, yes, but modern encoders have some steps like motion search to identify conserved pixels which may be proportional to surface area in a non-linear fashion.

Thanks! Can you move the comments to an answer?


text:
"Canon RGB" color space *shift* to broadcast range with FFMPEG
for a noprofit project I do shoot with (up to 5x) Canon HF100 camera(s) but, as stated in this interesting artile, it genetates a "custom RGB range" (16-255) files.
Thanks to this cool repository I've generated this GIF of 10s of source video:
http://www.forart.it/_priv/cultura/HF100_measurement.gif (33 Mb, so can't post. Click to watch)
It graphically shows how recorded video exceed the broadcast range.
The question is: how to "shift down" everything (and constrain inside broadcast range, of course) in order to preserve the maximum possible color quality ?
(note: someone already suggested me to use " Levels(0, 16, 255, 16, 235, coring=false) " in AviSynth but, if possible, I want to do it only with FFMPEG)
Thanks in advance to anyone that can/will help.
Marco

Well, I've already asked @ Doom9 forums and here is the response: https://forum.doom9.org/showthread.php?p=1902399

Can you share a sample video from HF100?

Of course, here's an untouched shooting as downloaded from the camera: https://clicknupload.co/0ooaljx1oqi1

Here's another interesting discussion - I'm partecipating in too - about FFMPEG's color "management": https://forum.videohelp.com/threads/395939-ffmpeg-Color-Range/

Ok, chris319 (@ videohelp.com 3ad) suggested this parameters: -vf lutrgb='r=clip(val,30,223)',lutrgb='g=clip(val,30,223)',lutrgb='b=clip(val,30,223)'

Ok, so your video is YUV, not RGB.And clip will squish the values beyond the clip ranges. You should remap them. I'll post an answer shortly.

You can use the geq filter to remap the pixel value ranges.
ffmpeg
 -i input
 -vf "geq=lum='(p(X,Y)-16)/(255-16)*(235-16)+16':cb='(p(X,Y)-16)/(255-16)*(240-16)+16'"
 -c:v libx264 -c:a copy out.mp4

The geq filter rescales the input luma from 16-255 to 16-235, and both the input chroma from 16-255 to 16-240, which is  the legal range for broadcast 8-bit signals.

Thank you very mutch for your help ! Another question: is there a way to "legalize" any source level to broadcast level ? In other words: can FFMPEG probe source file(s) level before remap to broadcast ?


text:
Davinci Resolve - Store Clips Edited in Cut Window in a Media Folder
I am working on a video project in DaVinci Resolve. It a short video documenting a piece of installation art. One of the media files is a handheld camera that takes close up shots of different parts of the piece. I'm trying to edit this into closeups of individual elements that I can cut to throughout the video.
I'm currently editing the clip in the cut view, but keeping organized is very difficult. I'm looking for functionality where I can drag the clips I've edited into a folder where they can visually be viewed side by side, rather than having them just sit on the timeline, which is a really inefficient workflow. Does this functionality exist and how do I do that?
I'd like to take clips from the cut view that look like this:

And drag them into a folder so I can view and work with them like this:

As of resolve 16.2, it’s not possible to organize media from the cut page that way. Switch to the edit page. All of the edits you’ve made will persist, and you’ll be able to drag timeline clips to bins from there (this creates subclips).  You can then switch back to the cut page and continue to work if that's what you prefer.


text:
When I put my shot into Premier, the top half of the shot is cut off. How can I scroll up so I can see the top of the shot?
My phone is I believe an Android A8. I filmed with the phone upright, in I guess portrait mode.

You want to use the Effect Controls panel:
https://helpx.adobe.com/au/premiere-pro/using/viewing-adjusting-effects-keyframes.html
As the help says, there are several standard effects added to a clip in the timeline, the effect you want to look for is Motion. Select the clip in the timeline, go to the Effect Controls panel, and expand the Motion effect. Inside you'll see Position and Scale, Position has two numbers, horizontal then vertical - if you adjust the vertical, you can scroll it up to see the top of the image. You could also scale the image to fill the frame (zoom in), or scale it so that you can see the whole phone image instead (zoom out).
Just play around with the various options in the Motion panel to get a better idea of what you can do to manipulate your image, it's fairly intuitive.


text:
Custom View 1 AE
How can i export a video in a custom view 1 perspective? When i always click the render button, it just always render to an active camera view.
that is a 3d cube

After effects renders the camera view, not the custom perspective views. To orient a camera as you would in the custom view go to camera view and choose the unified camera tool (hit c). Now you can orbit (lmb-drag), pan (mmb-drag), and dolly (rmb-drag) the camera to get the perspective you want.


text:
Screen-Video with 7 FPS (in Davinci Resolve - or other tools?)
I currently edit/cut a lot of computer screen recording footage. The original mp4 files have 7 FPS and I am totally happy with that quality. If I now edit the files in Davinci Resolve 16, the lowest export frame rate is at 16 FPS.
In my case, I'd prefer an export file with 7 FPS due to lower file sizes.
Is there any way how to do that in Davinci Resolve? (I already tried Clip Attributes > Video > Custom FPS)
If not - which tool can help me?
Thank you so much!


text:
Phone Video + 3D tracking spatial data for compositing?
With all of the AR capabilities of actual phones, I wonder if there is any app to record video with all the spatial data of the camera which lets you export the virtual 3D camera directly from the shot to be used for compositing.

If you are on android and looking for something that is compatible with blender, this is an app worth checking out:
https://play.google.com/store/apps/details?id=com.cgtinker.Retargeter
the app has the ability to export motion tracked footage, and also the ability to do face tracking.

The only one I know of is CV-AR from cineversity, which uses apple AR kit to capture facial animation, and works in conjunction with Maxon Cinema 4D.  I don't think depth sensing on phones is quite to the point where anything further than a selfie is very accurate, although I'm sure that'll change in the very near term if it hasn't already.

That looks interesting! Does it work with C4D-lite with After Effects?

Updating this answer as I've found a better method:
CamTrackAR is excellent.  The paid version can generate camera tracks for After Effects and Blender.  Couple it with HDReye to make an HDRI.exr world "dome" and you can get some very convincing compositing using Blender and AE.


text:
Audio recording: is/how a dedicated device better than laptop?
I'm about to make a series of tutorial videos, but my experience with sound recording is next to zero.
After watching quite a few videos on sound recording, gear reviews and other usual stuff, there's one particular point I'm still not quite getting: is there any advantage of using an external recorder as opposed to sticking a decent lavaliere microphone into my laptop and record with using Audacity (or some other software)?
The initial plan is rather humble: talking head recorded with a modern smartphone camera plus screencasts, everything to be shot indoors, so portability of sound recording device is not an issue. The question is, should I then just focus on choosing a microphone, or is there any advantage in using a dedicated device in terms of sound quality?

Preamps and portability

There's no quality difference to where the recording is stored - if you plug the same mic into different recording devices, it should record the same. Different quality mics (and recording environment) will give you more difference to your sound than anything else. Do make sure you are recording uncompressed (WAV) format though, using compressed formats will obviously reduce your resulting audio quality.
I have some external recorders, I use them mainly because you can plug in a large SD card, hit record, and the device will just sit there and do that job for hours, no issue. I don't have to worry about a piece of software or laptop crashing, they're portable and I can plug them in at the back of a sound desk or anywhere I like, etc. If you're recording lots of audio, they're just handy to have and use. Most external recorders do default to higher quality settings than what Audacity might (i.e. mine default to 24-bit/96kHz), but you can change those settings in Audacity as required. Portable recorders can also have other interfaces and features that come in handy if you're using them in lots of different environments - I almost always just use mine with the same standard setup, and most of the extras go unused!
For what you're doing, hooking the mic into a laptop and using Audacity will do the same job just fine. Just make sure to monitor things and check your recordings - make sure audio isn't being dropped due to inability of the system to keep up to speed, and that everything is recording as you expect (mic cable/connection good, levels good, mic close enough to the source to pick up the sound cleanly, etc).
You might also consider adaptors for your phone:
https://www.rode.com/microphones/sc6-lik
I've not personally used these, but there are various adaptors out there now to interface sound inputs direct to your phone, as well as dedicated external mics (the above adaptor gives you a more generic approach that you could plug anything into, but there are specific mic only devices for phones as well). I would just double check how the quality options would vary on a phone recording vs using Audacity dedicated on a laptop, which might not even matter for the types of recordings you are describing.


text:
Davinci Resolve: Move polyline radius handlers separatley on macOS
I'm using Davinci Resolve 16.1.1.005 on macOS 10.15.3 (Catalina).
I'm creating a simple polyline. I want to move one of the radius handlers separately without causing the other radius handler to mirror the movement.
I've tried using the modifier keys Cmd, Alt, Shift and Ctrl and combinations of them. As far as I know is Ctrl the right key. But Ctrl + click causes a right click on macOS.

Can I switch the modifier keys?
Does another keyboard mapping help?
Am I missing another modifier key?
Can I change the behaviour in some settings?
Is it not possible on macOS?

I assume, since you use the terminology "polyline" that you are in the Fusion page of Resolve.  Furthermore, since you say "radius handler," I assume you're asking about controlling the softness of a double polyline shape, and not talking about manipulating the normal bezier curvature handles.  Also, to be clear, Fusion polylines behave differently than the power windows found elsewhere in the Resolve interface.
One method of controling Fusion double polylines:

First, activate Double polyline by clicking the outlined "D" icon if you haven't already.
Select all points with Shift-A
Hold the "O" (offset) key and click-drag in the viewer.

There are other ways to control double polylines. More information can be found in the DaVinci Resolve user manual.  As of version 16.2, the relevant pages start at 1298.
Key bindings in Resolve's Fusion are customizable, but not out of the box.  If you're determined to change them, the simplest way would be to use stand alone Fusion, which has a built-in hotkey manager in the "Views" context menu.  The compositions you create in standalone Fusion are easy to copy-paste into Resolve Fusion (but know the difference between Loaders and MediaIn nodes; Savers and MeidaOut nodes).
Alternatively, you can install the Fusion plugin package manager, "Reactor," which is available here, and install Andrew Hazelden's "Resolve Essentials" atom, which includes a script to edit Resolve Fusion keybindings.  Personally, I'd leave them alone, though.


text:
Does ffmpeg preset speed affects 2 pass encoding?
If I'm encoding files like this:
ffmpeg -v quiet -hide_banner -y -i "$f" -passlogfile "$TEMP_FOLDER/ffmpeg.log" -c:v libx264 -b:v 2.5M -maxrate 2.5M -bufsize 5M -profile:v high -level 4.1 -pass 1 -sn -an -f matroska /dev/null < /dev/null
ffmpeg -v quiet -hide_banner -y -i "$f" -passlogfile "$TEMP_FOLDER/ffmpeg.log" -c:v libx264 -b:v 2.5M -maxrate 2.5M -bufsize 5M -profile:v high -level 4.1 -sn -an -pass 2 -f matroska "${f%.*}".h264 < /dev/null

Would setting preset speed increase quality? Should I use it on the first pass or the second ?

Yes, slower presets will yield better quality or a lower bitrate. Use in both passes.

Thanks Gyan! If you want to elaborate it and post it I can accept it as answer. I trust you :)


text:
Concatenate videos by pipng to ffplay
I would like to dynamically generate infinite video stream from video clips, so that choose next one on the fly.
I was inspired by ffplayout project which runs ffplay and make it read from stdin,
and then runs ffmpeg and stdout is redirected to ffplay. It works nice when streaming to rtmp server (probably because there is some buffering applied on the way), but when using ffplay you can notice some glitches on video transition.
Video is converted to mpegts for transport through pipe.
I was testing on this video which is made for looping.
In order to eliminate ffmpeg startup, file read delay, I did what follows:
# saved raw output
ffmpeg -i tunnel.mp4 -f mpegts tunnel.mpegts
# made fifo.ts
mkfifo fifo
# run ffplay to read from stdin
ffplay -an -f mpegts -i pipe:0 <fifo.ts
# write video to fifo
cat tunnel.mpegts tunnel.mpegts tunnel.mpegts tunnel.mpegts >> fifo.ts

still glitches on transition.
I even tried to read video to memory and write to fifo to eliminate disk io
def main():
    with open('tunnel.mpegts', 'rb') as fd:
        tunnel = fd.read()

    with open('fifo.ts', 'wb') as fd:
        for _ in range(5):
            fd.write(tunnel)

still glitches.
Any idea how to make it work? Maybe another ffmpeg on the way that would buffer/delay/join/transcode?

I think the problem is not the caching, but the fact that ffplay don't get a clean encoded stream.
With your yellow tunnel clip you can try this:
while true; do
    ffmpeg -i tunnel.mp4 -c:v mpeg2video -b:v 50M -c:a s302m -strict -2 -ar 48k -f mpegts -;
done | ffmpeg -re -i - -c:v mpeg2video -b:v 50M -c:a s302m -strict -2 -ar 48k -f mpegts - | ffplay -

And you see, that there is almost no glitches anymore. This is not a really nice solution, but the second ffmpeg instance would recompress the hole stream.
When is just about playing on desktop I would try more somthing like python-mpv.


text:
A/V Crash Course for Church
With COVID-19 shutting down the whole world, our church is now broadcasting our services on YouTube. Last Sunday we used a WebCam because we only had 48 hours notice, and it just worked.
Given that this is likely to extend to Easter and beyond.  We need to improve the sound and video quality as much as possible, but without a huge capital investment.
We have a PA system, but I am not sure how to pull the audio out of it into the computer (4 wireless microphones, 3 corded microphones) and that system is 80 ft away from where our video source needs to be.  Our highest priority is to capture the Pipe Organ which is generally not fed through the PA anyway (that thing need no help being heard even across the street). I have a collection of good corded microphones but all plug into the XLR Jacks around the building then into the audio closet and out to the speakers.
The video from the webcam was good.  In the future we would like to add additional video sources. I am working on coming up to speed on OBS Studio which knows how to mix multiple video sources, but again my question is how to connect them to the PC. USB max run length is 5 meters.
What would be helpful:

A web site giving the basics of how audio works. (I know how to plug a mic into a chord and plug that cord into the wall. I have no idea how the things actually work.)
Same thing for video.
How to get the Pipe Organ to sound good, or at least not terribly distorted. (I understand that I'll never get HiFi out of a live stream) Can I use one of out existing mics or do I need something different?
What do I need to know if I want to purchase a video camera, and how to connect them to a PC that is not directly adjacent to it?

For getting multiple streams of video into one machine, and switching live, BlackMagic's ATEM mini is a good solution that won't break the bank at only $300.  The most cost-effective way to connect a camera to a PC at a distance depends on the distance.  Wireless connections are very expensive.  HDMI cable is good up to about 25 feet.  SDI cable can run much longer distances without amplification, but you'll need proper converters if the cameras you get don't have SDI out with BNC connectors.

Did you watch the webcam feed? What did / didn't you like about the quality of that? For some applications, webcams do "just work", and that might be good enough. Installing a "professional" setup can get real expensive real fast.
For audio, if the PA system is of high enough quality, picking up the audio from where you pick up the video might be good enough. The webcam mic likely isn't great for this, but there's lots of mics out there designed for video cameras that will also plug into your laptop to improve that. Get a USB audio interface as needed (google audio interface as suggested, I've used the ATR2USB, works fine), there are more specialist devices like the Rode AI-1 available if you want to use an XLR input. Getting a feed direct from the audio closet will be highest quality, but based on the distance, you'd either need to run a long cable, or invest in a wireless transmitter / receiver. So it all depends on your current webcam quality, versus how much you want to spend to improve that.
For video, do you need more than one camera angle? Do you have existing video cameras available? Again, something that can get expensive quick, depending how far you want to go. You can interface via something like the ATEM Mini (haven't got one myself, and no one currently has stock!), some cameras do have direct streaming available as well. If it's a fixed shot and the camera doesn't move, the webcam might even be fine. Maybe post some more detail about what does/doesn't work with the current setup, to get some more specific suggestions.
Also try browsing this YouTube channel: https://www.youtube.com/user/makeradventures - he's basically doing exactly what you are, and possibly has some content of interest.

For audio, you will need an audio interface. Posting a picture of your "audio closet" will help.


text:
White line in the middle of the video in Da Vinci resolve
I exported my video in Da Vinci resolve but there's a white line in the middle of the screen. I was thinking that it was probably the effect but i'm not sure. Does anyone have the same problem or could help me to resolve it ?

Hi, welcome to Video Production Stack Exchange.  You'll need to provide more information about your situation before we'll be able to help you.  What are the specs of the computer you're using?  What operating system and OS version are you running?  What version of Resolve (Free or Studio? Version number?)  And if you haven't already, you should ask over at https://forum.blackmagicdesign.com be sure to include that information over there as well.  See their troubleshooting FAQ:  https://forum.blackmagicdesign.com/viewtopic.php?f=21&t=90190 They are a very helpful community.

And if you could post a screenshot of the line on the screen, that would be helpful, too.

When you say, "it was probably the effect," what effect have you applied?  You might try exporting a different video format.  I've run across some bugs with Fusion alpha channels (which you might be using whether you know it or not, depending on the effects you've applied) in h.264 exports on Resolve 16.2 for Mac.  I fixed by switchiing to Prores 4444 export, then transcoding to h.264.


text:
Best practice for recording video calls
I’m a video producer isolated because of Covid19. I’m going to be spending a tonne of time recording guests over video calls.
So far I’ve been asking them to record audio locally, recording the google hangout, then resyncing the audio with Pluraleyes or manually, which is pretty time consuming.
Assuming that most of the people I’m recording are fairly non technical, are there any other better methods for getting the best out of a recorded video conference?
Are any of the machine learning frame rate and resolution enhancing services giving good results? Is there anything better than Pluraleyes for resyncing audio? I’m on a Mac with the adobe suite.

You could give the resolution enhancement a try. You can get a free trial of Topaz Gigapixel for a month and see how it goes. https://topazlabs.com/gigapixel-ai/
Also, Premiere has audio synching built-in these days.

the built in sync doesn't account for network delays and glitches in the video conf call..  Tried gigapixel but it didn't seem to improve the shot significantly.

The built-in sync can sync from the audio, which will cope with delays. I almost always shoot double-head with no slate or anything and it's all I ever use.

We used to mail a physical recording device and have the recipient ship it back for a podcast. We used an ipad mini for a while.  Never had trouble with people trying to steal it.  Of course, we didn't have sync issues because it was only audio, but if your guests were recording video and audio locally, sync wouldn't be an issue either.  All depends on your turnaround schedule.

If you can use Zoom, it has a pretty good recording feature which can record separate audio files for each participant in addition to the video in gallery view.  Obviously, already synced.
As far as quality, Zoom does have a video optimization option that improves the resolution at least.

Is there anything concrete you've read on whether their Cloud or Local recording is better quality?


text:
Switch between HLS input streams to output a new HLS stream
I'm trying to generate a HLS stream from an input of N (in this example 2) HLS streams but I cannot figure out the right settings to get the PTS values right.
My streams can be represented this way :
stream A: chunk1 - chunk2 - chunk3 - chunk4
streamB: chunk1 - chunk2 - chunk3 - chunk4
output stream: chunkA1 - chunkA2 - generated junction chunk with part of chunk A3 and part of chunk B3 - chunkB4
I use the following command to generate my junction chunks:
ffmpeg -i <chunk from streamA> -i <chunk from streamB> -vcodec libx264 -vprofile baseline -g 10 -acodec aac -ar 44100 -ac 1 -filter_complex "[0:v]trim=0.000000:0.889000,setpts=PTS-STARTPTS[v0]; [0:a]atrim=0.000000:0.889000,asetpts=PTS-STARTPTS[a0]; [1:v]trim=4.889000:5.213700; [1:a]atrim=4.889000:5.213700;  [v0][v1]concat=n=2:v=1:a=0[out]; [a0][a1]concat=n=2:v=0:a=1[aout] " -map "[out]" -map "[aout]" <output chunk>
The stream is playable with HLS.js (I add discontinuity tags when I switch streams) but when I try to send it to an rtmp server using this command :
ffmpeg -re -i <HLS url> -c:v copy -c:a aac -ar 44100 -ab 128k -ac 2 -strict -2 -flags +global_header -bsf:a aac_adtstoasc -bufsize 3000k -f flv <RTMP url>
FFmpeg complains about my DTS values and the output doesn't play very well.
I'd ideally like to avoid re-encoding my input streams but I'm fine re-encoding the ouput stream (in this example I'm not doing it but I've also tried). Although, it's ok if I have to re-mux the input.
Thanks !


text:
VSDC, No audio while editing (Preview)
There is no audio when I preview the clips while editing them. The project is on stereo, the latest update installed, "Don't Use Audio" is not selected in the clip's properties menu. Let me know a solution.

You should double-check:

your speakers' volume (just in case)
audio volume settings in VSDC (see the image)


text:
How to change Timeline's output time from "Frames" to "Timecode" (Premiere Pro)
I was editing a video for a friend when I accidentally changed my Timeline's timestamps from "Timecode" to Frames"

It has been really frustrating to figure out what second of footage I am on when this is occurring.
Is there any way to go back to a standard Timecode when this happens?
Any help would be greatly appreciated.

ctrl-click or ⌘-click the number and it will cycle through the different modes, frames, feet & frames, audio samples, milliseconds, and timecode. More about it in the documentation.


text:
Looking for a UNIX shell script to aggregate and report on video file size, bitrate, and other attributes
hope everyone is staying safe and healthy in this crazy time.
I've got a large, well organized repo of video - mishmash of raw video from shoots along with edited files, in all sorts of various standard formats.
I'm looking for a script that can start at a path, and report back on all the files it finds, with a combination of information from the file system and ffprobe (or ffmpeg). I'm especially interested in readable file sizes, resolution and bitrate.
After failing miserably on my own, i found Paul Mennen's "vidtime.bat" script, here: http://www.mennen.org/misc/batch.htm
This appears to be precisely what I'm looking for (sample output from Paul's web site is included below). My problem is that it's an old Windows script (even though it uses sed); I really need it to run on Mac OS or Ubuntu, preferably in bash. My problem is also that I can't script for s**t. If anyone knows of something that already exists that does this, or wants to make suggestions and/or take a crack at porting Paul's script, that would be amazing. I think a lot of people could really use something like this.  Cheers!  -moe
Excerpt from mennen.org:
Here is a sample output file. When the script was invoked, the current folder contained 10 video files and no subfolders:

************* Total run time 12:22:26 ******************* 10 video files, 4.8 GB
00:01:02   221 kbs  mpeg1   320x240      1 MB  .wmv  ---  Anticipation
01:20:16  1045 kbs  h264   1280x720    629 MB  .mp4  ---  Before Sunset 2004
00:05:15   531 kbs  flv1    640x480     20 MB  .flv  ---  Benjamin Franklin
[...]

Does it need to be recursive? That is, are there also subdirectories that need to be probed too?

@llogan - yes, it would be ideal if the script traversed its way downward/recursively from an initial path.  but if you have something already that doesn't do that one thing, I'm all ears. :-) thanks!

This question is asking for a lot, and would be too time consuming to write an answer, but you can definitely do most of it with ffprobe. Search Stack Exchange for usage examples and see FFmpeg Wiki: ffprobe tips for more.


text:
Tipps on streamlining my recording and editing process
So i was having problems with editing videos and got some good tips here.
For more Context: Original question
and it got me thinking on maybe streamlining my process a bit, maybe i can get some tips.
Here's my process:
I capture with an Aver Media LGP Lite onto my hard drive. These files are massive, so I run them through Handbrake, (reccomended settings, h.264 codec) that reduces the size drastically without quality loss.
And recently I started to put these 1-2h long videos together into 10h Videos using a program called "mkvtoolnix". So I have 3 10h long videos instead of 30 1h.
Maybe I can streamline things a bit in some places:

Capture card. I am able to set a bitrate for recording. It affects file size and quality, but that's all I know. I dont know how much I need. I'm using 18 Mbps. But maybe that's overkill? And I can choose from  Video formats: MP4(H.264+AAC) and TS(H.264+AAC). I'm using MP4.
Would it make sense to use a different codec in Handbrake? Maybe one that's better fit for editing? Or does it make more sense to keep it and use proxies?
Does video length have a huge impact on editing performance? Is it better to have 10 1h videos or 1 10h video?

Thank you!

You compress with handbrake after your capture card encodes? MP4 and TS are containers with the same codec, that wouldn't make a difference. Are adding these videos into large videos to compress them together just for space? Video editors, like premiere will try to "cache" the video. So yes. it would make editing much more difficult from what I understand from you question. I'd recommend keeping files smaller and well organized to streamline your process. You could use a program to trim unnecessary video to make sizes smaller rather than compressing them before editing which compresses them ag

Thank you!
Yes the capturecard outputs pretty large files. I guess because they have a high bitrate(18 Mbps) and the files after using handbrake have arrounf 8 Mbps. maybe if i lower the bitrate in the capture card settings the files will be smaller and i wont need to compress them any more. but i dont know how much i can lower the setting with out a huge quality drop. (im recording full HD at 30 FPS) and i was adding the files together just for convenience so its not important


text:
Is the boom mic recording audio?
Is the boom mic recording audio or do I need an audio recorder to hook it up to?
Sorry I am the biggest amateur.

The boom mic is a sensor. It converts audio into an electrical signal. To record that signal you need a recorder of some kind, one that is capable of amplifying a microphone level signal and recording it. Usually that means a digital recording device, which could include something like a Zoom recorder, a camera with an external mic input, a phone with a mic input, or a PC with a mic input.

The type of device depends on your needs and budget. The recorder you have is the the best recorder, so if you don't want to spend money you could investigate whether you can plug an external mic into whatever equipment you have at hand.
Depending on your microphone you may need an adapter to change the plug into the plug on the device. Professional microphones almost all have a three-pin connection called an XLR connector (pictured below on the right), consumer grade mics usually have a mini-jack connector (below left). So if you have the former on your microphone, but the latter on your recorder (e.g. the Zoom H1n pictured above only has a mini-jack input), you'll need something like this:


text:
Application specific screen recorder for Android
For windows, using OBS studio, I can record the screen of a particular application. If in between, I open another window, the recorder records only the selected window and not the window on top.
But on android, all the screen recorder apps I've seen record what's shown on the screen. In between, if some notification pops up, that is also recorded. I want to avoid that for privacy concerns. Is there any app which does that? I don't mind if it shows blank screen when some other app or notification pops up.


text:
FFmpeg Single Input, Seek to Multiple Outputs
I'm trying to get multiple snapshots of a single input file using Input Seeking.
I want to seek to different keyframes and save each to different output images.
I can use this using multiple calls:
ffmpeg -ss 280 -i sample.mp4 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out1.jpg
ffmpeg -ss 300 -i sample.mp4 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out2.jpg
ffmpeg -ss 302 -i sample.mp4 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out3.jpg

Unfortunately I have to call ffmpeg programmatically using exec. Is there a way to batch process the tasks above? It has to use input seeking. Thanks.

There are two basic ways to do this:
1) feed file as multiple inputs and extract one image from each input
ffmpeg -ss 280 -i sample.mp4 -ss 300 -i sample.mp4 -ss 302 -i sample.mp4
-map 0 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out1.jpg
-map 1 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out2.jpg
-map 2 -aspect 1.7777777777778 -vframes 1 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p out3.jpg

This method can get unwieldy with many targets or if the input is read from over a network.
2) feed it as one input but only decode keyframes and output as one stream.
ffmpeg -skip_frame nokey -i sample.mp4 -vf "select='lt(abs(t-280),0.2)+lt(abs(t-300),0.2)+lt(abs(t-302),0.2)'" -aspect 1.7777777777778 -qmax 9 -qmin 8 -bt 10000000 -y -pix_fmt yuv420p -vsync 0 out%d.jpg

This allows a leeway of 0.2 seconds in identified keyframe timings.


text:
ffmpeg fake camera and mic out of sync
This is on linux with pulseaudio. I need to record a video with a rather bare-bones recorder that runs in chrome. I decided to fake a camera and a mic so that I can edit the video then use ffmpeg to send the video to a dummy camera created with v4l2loopback and set the chrome input in pavucontrol. This s what I have:
ffmpeg -re -i ~/xxx.mp4 -map 0:v -f v4l2 /dev/video2 -f pulse "alsa_output.pci-0000_00_1f.3.analog-stereo.monitor"

where /dev/video2 is the loopback camera. This seems to work fine, but the audio lags the video by a few seconds. I verified that they are very much in sync by playing the mp4 normally. How do I fix this?

Is it a consistent lag or does it change over time?

The lag seems to be roughly the same after 22 minutes of streaming.


text:
Getting DaVinci 16.2 Resolve to Work with Intel Gen 4 Graphics
I am currently trying to give DaVinci a try for my video editing needs. However, I am running into issues, which seem to be graphics card related.
It crashes like this (from the logs):
[0x7fb0b796c000] | Main                 | INFO  | 2020-04-06 13:25:43,873 | Running DaVinci Resolve v16.2.0.055 (Linux/Clang)
[0x7fb0b796c000] | Main                 | INFO  | 2020-04-06 13:25:43,874 | Updating display GPU information...
OpenCL error -1001: 'Unspecified Error', GPUPropertiesUtilUnix.cpp:338.
terminate called after throwing an instance of 'ReactorGPU::GPUException'

==========[CRASH DUMP]==========
Please send this to support:

#TIME Mon Apr  6 13:25:43 2020 - Uptime 00:00:00 (hh:mm:ss)
#PROGRAM_NAME DaVinci Resolve v16.2.0.055 (Linux/Clang)

/opt/resolve/bin/resolve() [0x54a0029]
/opt/resolve/bin/resolve() [0x549f81a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7fb0c1d4e890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7) [0x7fb0bfad2e97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141) [0x7fb0bfad4801]
/opt/resolve/bin/resolve(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x15d) [0x720748d]
/opt/resolve/bin/../libs/libc++abi.so.1(+0x22086) [0x7fb0f3e58086]
/opt/resolve/bin/../libs/libc++abi.so.1(+0x21a27) [0x7fb0f3e57a27]
/opt/resolve/bin/resolve() [0x1fabdbc]
/opt/resolve/bin/resolve() [0x1fab589]
/opt/resolve/bin/resolve() [0x1fa539c]
/opt/resolve/bin/resolve() [0x1f727cc]
/opt/resolve/bin/resolve() [0x1f6f8de]
/opt/resolve/bin/resolve() [0x1f6e33e]
/opt/resolve/bin/resolve() [0x1f6dbe8]
/opt/resolve/bin/resolve() [0x1f8299a]
/opt/resolve/bin/resolve() [0x1f698ff]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fb0bfab5b97]
/opt/resolve/bin/resolve() [0x1f68b7d]
Signal Number = 6

The CPU and Graphics card on this machine are as follows:
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:32 memory:f7800000-f7bfffff memory:e0000000-efffffff ioport:f000(size=64) memory:c0000-dffff

     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
          bus info: cpu@0
          version: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
          slot: CPUSocket
          capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts md_clear flush_l1d cpufreq
             slot: CPU Internal L1
             slot: CPU Internal L2
             slot: CPU Internal L3

More specifically, the graphics card is a Gen 4 Intel 4600.
Does anyone know if it is possible to get DaVinci working on this system? If so, how should I troubleshoot this issue?

Black Magic Design have recently released Resolve version 16.2.1 with "Improved stability on Windows systems with Intel graphics" - which may help, but generally speaking support and performance on Integrated CPU's has always been limited. I can run DR on my Laptop with an Intel HD 520, but only for very basic & slow editing.
You also did not say when it crashes. i.e. At startup / playback / edit, and what media was being processed (if any).
Minimum system requirements for Windows:
Windows 10 Update
16 GB of system memory. 32 GB when using Fusion
Blackmagic Design Desktop Video version 10.4.1 or later
Integrated GPU or discrete GPU with at least 2GB of VRAM
GPU which supports OpenCL 1.2 or CUDA 10
NVIDIA/AMD/Intel GPU Driver version

Thanks for your answer. I am actually on an Ubuntu 18.04 machine. Yes, it crashes on startup.


text:
Retro/90s/early 00s DVD menus
I'm looking for a way (i.e. a particular software) to recreate the kind of DVD menus that were ubiquitous in the late 90s/early 2000s, the kind you would expect if you took your vacation tapes to a place that turned them into a DVD for you. I'm hoping not to mimic it visually with contemporary software—unless someone has a good tip how to do so—but instead use the actual process that these kinds of menus were created with.
This is also under the assumption that these were actually DVD menus: it occurred to me maybe it was the DVD players themselves that offered these menus as ways to navigate files on a disc? Perhaps someone can confirm.
Example:

On the DVD Recorder unit I had, these were definitely output as menus on the disc. TMPGenc Authoring Works has some pretty generic looking menu layouts, but if you want to match that exact look, you likely need to find/use one of these older units - I've never seen anything generate menus exactly like this outside of the recorder units themselves. Either that, or find software that lets you hand construct the menus.

Thanks for the reply. When you mention DVD Recorders/units, do you mean like a DVD burner/duplicator tower? This would make sense, as one of the menus I'm trying to replicate is from a DVD I bought off eBay from a seller who has in stock thousands of sports matches. Presumably they use one of those machines.

I had a couple of stand alone HDD/DVD recorders that produced menus similar to this. They had analog inputs, would encode to MPG and store to HDD, and you could export the clips onto a DVD, with menus like this. I used to use them to transfer VHS tapes, there were lots of units around like this in the analog TV days. They slowly disappeared with digital TV (can't export copy protected material to DVD), and pretty much no one uses DVD-R to store video material like this these days.

A point of clarification, please: Is your end goal an actual DVD (spinning plastic disk, read by laser) with DVD-style menus?  Or, are you planning to distribute online and are looking to use the old methods of DVD creation for visual authenticity?

Definitely the latter, but if I had to do the former (burn a disc) that would be fine. I wrote to the person I got the DVD from on eBay and they said they used a Panasonic DVD recorder, so I reckon that's the trick.


text:
Adding noise to a still photograph to make it look live
If I record some video of a static scene, there is noise in the video that makes it obvious that it is video and not a still photograph.   But if I add a photograph to a video in a non-linear video editor, it is obvious that it is a still photograph because of the lack of this noise.  How can I add such noise?  My first thought was to create a mostly transparent layer that just has low-level noise, but then I realize that this will give it more of a noisy effect that doesn't resemble live video.  What are some other effects that I can use to make a still photograph look like it was shot as video?
If it makes a difference, I am using the OpenShot editor. (There doesn't appear to be a tag for this)

I suggest to use the very noise that your camera captures and blend it with the photograph.

point your camera against a white object (e.g. wall, door)
The automatic exposure should stop down the lens until the white becomes a mid grey.
capture as long as you need
In your Editor, blend the grey noise with the photo by using a layer blending mode like "multiply" or "overlay" (at least shotcut has blending modes)

you can also download stock footage of film grain, with or without dust and scratches if you want it to look more old school (can be a bit of a cliche though, especially if used to excess).

I would crank the ISO of the camera at max. And also defocus my lens so only the noise is present.

drake7 's answer is fine if you want to stick with the noise idea. You could also download some "video noise" effect from the internet.
But we have some more options.
You could overlay some flares, some film burn effects.
You could make a zoom in-zoom out or panning effect. The combination of both is the KenBurns effect.
Or you can even use some other software to twist the photo on a 3D environment, like if you were turning around the photo.
There are online tutorials on separating the photo into different elements, the subject, the background on different layers, and assembling them into a 3D scene.

Rafael's last point is often referred  as "2.5D Parallax Photo Effect" and is a really cool technique to make photos come alive.

Oh, yeap, I forgot about that. Ty :o)


text:
I am getting "Stream specifier ' ' in filtergraph description" in ffmpeg
I am generating 10 seconds of silence using an image. Here is my command
ffmpeg -loop 1 -framerate 24 -t 10 image.jpg -f lavfi -t 10 -i anullsrc -filter_complex "[0][1]concat=n=2:v=1:a=1" out.mp4

Also, I have tried
ffmpeg -loop 1 -framerate 24 -t 10 beach.jpg -f lavfi -t 10 -i anullsrc -filter_complex "[0:v][1:a]concat=n=2:v=1:a=1" out.mp4

I am getting following errors
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, lavfi, from 'anullsrc':
  Duration: N/A, start: 0.000000, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
Stream specifier '' in filtergraph description [0][1]concat=n=2:v=1:a=1 matches no streams.

ffmpeg -loop 1 -framerate 24 -t 10 beach.jpg -f lavfi -t 10 -i anullsrc -filter_complex "[0:v][1:a]concat=n=2:v=1:a=1" out.mp4
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, lavfi, from 'anullsrc':
  Duration: N/A, start: 0.000000, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
Stream specifier ':v' in filtergraph description [0:v][1:a]concat=n=2:v=1:a=1 matches no streams.

Your command is missing the -i token for the image input, so it should be
ffmpeg -loop 1 -framerate 24 -t 10 -i image.jpg -f lavfi ...

However, for the actual task at hand, the concat filter is not required.
ffmpeg -loop 1 -framerate 24 -t 10 -i image.jpg -f lavfi -t 10 -i anullsrc out.mp4

ffmpeg -loop 1 -framerate 24 -t 10 -i beach.jpg -f lavfi -t 10 -i anullsrc -filter_complex "[0:v][1:a]concat=n=2:v=1:a=1" out.mp4

but still I get "Cannot find a matching stream for unlabeled input pad 2 on filter Parsed_concat_0"

Edited answer..

I need to use the complex filter as there are few more filters I am using in the pipeline, this was just part of it with multiple inputs.

Then you should have shown your actual command.


text:
ffmpeg batch overlay Error: "Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_0"
I am trying to create a batch file to run this script to add a watermark on each file in a folder
ffmpeg -i input.mov -i watermark.png -filter_complex "overlay=10:10" output.mov

The script above works fine but when I try to run the batch I get Error: "Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_0"
@echo off
REM Add watermark to video batch
for %%a in (*.mov) do ( ffmpeg "%%a" -i watermark.png -filter_complex "overlay=10:10" "output\%%~na.mov"
)
pause

What am I missing?

Looks like you forgot -i. Try:
@echo off
REM Add watermark to video batch
for %%a in (*.mov) do ( ffmpeg -i "%%a" -i watermark.png -filter_complex "overlay=10:10" "output\%%~na.mov"
)
pause

So stupid. That did it. Thank you very much.

You should mark this answer as the solution, otherwise the question will keep popping out in the homepage :)


text:
Can overlapping videos from 2 or more sources be merged in real time for live feed?
We would like to make a real time live feed from the front of our house with different cameras.
The final output is meant to be as follows but with more resolution.

The setup was thought to be static (cameras are not moving) from different points on the same plane (same distance to the house, just translated along the pathway). This would create a panoramical view of the front part where each camera would record a specific region:

The reason behind using several cameras and not sime 360º ones is that the result would not besatisfactory as:
1) point of view is unique so the distance from the viewer would not be the same to the front, avoiding the paronamic view we are looking for
2) The image would be a little bit deformed
3) Apart from being messy to move around, the would record stuff we don't want (such as the opposite of the street) increasing also the bitrate of the stream.
On the other hand, as cameras are fixed, we thought about using some fixed sincronizing/ recognition elements, such as the ones used in QR or AR, in order to delimit the area for each camera.

Additionally, to avoid excessive (and unused) bitrate but also focusing on the experience, we thought about the option of focusing on one particular area, inspite of creating the full video, only the interested part would be displayed. We have not yet decided between selecting us the area or led the user to do it (dont know the complexity of this or if it is even possible)

Although we have some experience in editing videos and even with opencv, this questions are completely out of our range. We have found software such as OBS but we did not find a possive or negative answer to our questions (it might be we are lacking the precise term).
Our questions are:
1) Would this be possible in real time?
2) What would the optimal solution be? SW vs SW+HW-wise.
3) Provided it is possible, would the processing be too intense to have a fluid, smooth and as real as possible? We are afraid that the delay would be too high.
4) Would the real time area selection be factible? We suppose that selecting an area of the video should be trivial but mdifying that selection on the flight is the trick.

It sounds like you're taking a difficult approach to a problem with a simple answer.  Placing a single camera further from the subject and using a longer focal length lens will remove the distortion you're talking about.  It is certainly possible to do what you're asking; car manufacturers stitch together multiple cameras to provide top-down "backup cams," but they make custom hardware and software to do it.  What kind of budget are you talking about?  A home hobbyist, or a Ring competitor with VC funding?

First of all, thank you for taking your time to answer the question.
We thought about the lens, but it made all too small for our purposes. Although, we might rethink this approach with a better camera (right now it is not cuttng edge technology). Regarding the budget, it is not quite high (less than 6000$). Nevertheless, would the other questions be possible with this budget?


text:
Video production at higher quality - alternatives and solutions
My question here is a redirection per suggestion of my original question over here
I have an i5 4th gen CPU which can support 2k displays and output 2k signal. And I have an AMD Radeon R7 graphics card. I have an old monitor whose native resolution is 1366x768
My problem is that with the hardware configuration I have, when I record my screen on OBS Studio with settings as chosen by the OBS Auto Configuration Wizard, I get a totally disappointing output. The text is not clear and nothing looks sharp when viewed on any other monitor than my own.
I wish to do some screen records of some coding sessions, and with the quality of output I have, it's not an option. People advice me to get a Mac which can give me 4k recordings hassle free, but Mac is out of my budget.
Xrandr seems to be of no help either.
I want to explore all software based solutions before I buy anything. In particular, I am looking at the possibility to "trick" the CPU into thinking there is a another1080p/2k monitor connected and make it output a higher resolution signal and then capture it in some sort of a screen record. Is such a thing possible? If yes, how?
I want to utilize my CPU and GPU capacity to the fullest and produce 1080p/2k quality videos. What are my options?
I am on an Ubuntu 19.10 machine
Any leads are appreciated. Thank you in advance.

The videos linked in that other post measures only about 400px in height, not even the 768px on your monitor.

First variant:
You can try to set resloution of your display to 1920x1080, but I think that you will have scroll on your screen.
I know that with digital connect via DVI port on Windows PC with XP it was real. In the last time I didn't take any experiments.
Second variant:
You can buy FullHD monitor and don't have any problems with this. They are won't cost a lot of money, especially which sell as used.
Third variant:
I don't see what image see your viewers, but I can think, that problem can be in bitrate of image which won't allow to stream quality image. If your viewers view your stream in original quality and they are have problems with reading text, I think that you need to do bigger scale of your desktop or bigger scale of text in your coding software.
Can you show me the settings of OBS stream, screenshot from your PC and screenshot from your viewer?
Also it can be helpful if you will do recording of your screen for your viewers instead of streaming.

Thanks for the suggestion. The videos that I produced and the screenshots are available in the linked question which I posted. I kindly request you to please have a look at that.

I have reviewed your linked question and gave you one variant of answer.

I've looked your linked question.
If you want to get a better quality of image you can try to set bitrate to more higer value, like 5000 kbps or more. Also I think that you can try to set CPU Usage preset to more slower preset. Like "quality" or "max.quality"
More higher bitrate will give you more load of internet, but also will give you more quality for your image. Big file (stream) size, but higher quality. More slower profile of x264 processing will give you more load on your CPU, but it will have more time for processing and it will use more complex algorithms for processing video. Less file (stream) size, but higer quality.
Also you can find balance between this two parameters.

Also can be helpful for you it's change FPS to 25-30, because for 60 fps bitrate should be higher, but for streaming "coding video tutorials" instead of "gaming videos" high fps doesn't need.
And you can try to set keyframe interval to 1 second and compare your result.


text:
Last Adobe Premiere Pro version for Windows 7
Due to my hardware limitations, I'm forced to use Win7 instead of Win10.
On my current version of Adobe Premiere Pro, I can't attach and work with proxies.
I want to try newer version, but not the latest, since it's not supported by Win7.
Can you tell me the latest version of Adobe Premiere Pro which is still working under Win7 ?
Thank you

Version (CC 2019) 13.1.5.47  is the only version that installs on Windows 7,8,10
Good luck


text:
50% higher bit rate vs 20% higher resolution
I have two videos: first one has 50% higher bit rate, second one has 20% higher resolution and slightly higher FPS. Which one will look better? I use a 1080p 72 inch 60 Hz screen at 10 feet distance.
Video 1

Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings, CABAC : Yes
Format settings, RefFrames : 13 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1 h 18 min
Bit rate : 2 966 kb/s
Width : 1 056 pixels
Height : 594 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.197
Stream size : 1.63 GiB (71%)
Language : English
Default : Yes
Forced : Yes
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709

Video 2

Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, RefFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1 h 15 min
Bit rate : 2 073 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.090
Stream size : 1.09 GiB (78%)
Language : English
Default : Yes
Forced : No
Color range : Limited
Matrix coefficients : BT.709

Could you give files (or png screenshots) to comparing?
I think that file with higher bitrate and higher resolution should look better, with other conditions being equal.
1056*594 = 627 264 pixels.
1280*720 = 921 600 pixels (47% more pixels relative to 1056x594 resolution)
921 600 / 627 264 = 1.469 * 100% = 147% relative to 1056x594 resolution.
2966 kbps for 1056x594 - 43% more bitrate for this video, relative to 1280x720
2073 kbps for 1280x720
2966 / 2073 = 1.43 * 100% = 143% relative to bitrate of 1280x720 video.
What do you think?
I think that with these settings both videos should be approx equals. Maybe the subjectivity of the perception of the human view will make its adjustments in this comparing.

The files are too large to send them

You can upload png screenshots to comparsion image hosting or to cloud drive and attach link to the next comment.

It is supposed to be the same frame from the 2 videos, right? There is no point comparing different frames? How I am to find exactly the same frame in two videos?

You can find the same frame in any video editing software. Or with ffmpeg, as example:
https://stackoverflow.com/questions/27568254/how-to-extract-1-screenshot-for-a-video-with-ffmpeg-at-a-given-time


text:
Premiere Pro on Windows 10 N version - Can't import MP4
I've tried to install various codecs - not working.
I still can download whole Media Feature, but that's what I would like to avoid, since N version is way lightier.
Can you please advice me how I can import MP4 files into Adobe Premiere Pro on Windows 10 ?
Thank you

my dear friend
Windows alone is not enough, you need such peripherals
Use the K-Lite Codec Pack. After installing this item, you should not have any problems
The function of this package is to be able to run relevant codecs such as mp4 in Premier Pro
Good luck.


text:
What is the best monitor refresh rate (in Hz) to remove flickering when filming at 24 frames per second with a 1/50 shutter speed?
I tried setting the monitor to 50 Hz and 100 Hz, but I still see flickering. Everything looked fine when the monitor was set to 60 Hz and the shutter speed to 1/25. That being said, I am trying to respect the 180 rule to have natural motion blur.


text:
Add waves in after effects
How do I create waves that follows the users motion like this
Anything in this direction is appreciated except don't tell me to draw

You could track points on the arms to control the motion of a shape layer with a row of points or short strokes on it, then apply the echo effect. How well that would work would depend on the speed the arms move.
You could also apply the tracking to some nulls, and copy their motion paths onto a shape layer's path property, or the path property of a write-on effect.


text:
Movie quality after zooming in
My laptop screen is 1366x768p (WXGA, 16:9).
If the player (potplayer) zooms in on a 1080p movie (which shows upper and lower black bars) up to 125%, what effetive quality does the movie end up being?

That really depends on your definition of quality

@stib is the movie effectively still  Full HD?

So the player is stretching the movie to fill the screen?

@stib no it's zooming in on the movie, just the opposite method

That makes no sense, unless it makes the screen physically smaller.

@stib https://www.youtube.com/watch?v=p0G28wjqvLQ

Yep, so it's stretching the movie to fit the screen. Since it's cropping off pixels, then you're not getting the full 1920x1080 raster. But here's the thing: on a 1366x768 screen, the highest resolution you can achieve is 1366x768.it will never be 1080p, there aren't enough pixels.

@stib if now the original movie is 720p, and the screen still  has a resolution 1366x768p. Is the movie still 720p after being proportionally zoomed in on up to 125%?

Well it won't have gained any extra pixels, those 720 pixels will be interpolated to fit over 768 pixels (which is usually a lossy process), and pixels from the side will be cropped. Whether you could call it 720p or not is kinda a question of semantics.


text:
FFmpeg Batch encoding error: CRF/CQP is incompatible with 2pass
I am trying to create a batch file with 2 passes. Pass 1 scales the video. Pass 2 pads a border around it. They both work separately but will not work together.
Pass 1:
@echo off
REM Scale video to 1216x684
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf scale=1216:684 -preset faster "output\%%~na.mp4"
)
pause

Pass 2:
@echo off
REM Pad video to 1280x720
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf pad="1280:720:32:0" -preset faster "output\%%~na.mp4"
)
pause

Combined:
@echo off
REM Scale video to 1216x684 and pad to 1280x720
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf scale=1216:684 -preset faster -pass 1 -f mp4 NUL && \
ffmpeg -i "%%a" -vf pad="1280:720:32:0" -preset faster -pass 2 "output\%%~na.mp4
)
pause

Error:
CRF/CQP is incompatible with 2pass.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
What am I missing?

2-pass is for video encoding when using an average bitrate target. When saving to MP4, default encoder is x264 whose default encoding mode is CRF where 2-pass is not applicable. The pass system also no connection with the use of filters, which is what scale and pad are.
In any case, you can carry out scaling and padding in one command.
for %%a in (*.mp4) do ( ffmpeg -i "%%a" -vf "scale=1216:684,pad=1280:720:32:0" -preset faster "output\%%~na.mp4"
)

Thank you Gyan. That is exactly what I needed.