Stack videos with ffmpeg without padding The hstack feature works great, but it pads the videos. That is, it puts black space between them. I use a command like this:

ffmpeg -i 1.mp4 -i 2.mp4  -filter_complex "hstack" out.mp4

How do I remove the black space separating the component videos?

Perhaps related, how do I control the size of the output video? If I could change the width of the output video, I imagine that would make the padding go away. But I couldn't find a way to combine the scale= parameter with hstack.

The stack filters don't insert any padding. Your videos probably have empty space in them. You'll need the crop filter to remove the dead space.

The stack filters require the video edge along the join axis to have the same dimensions i.e. height for hstack and width for vstack. So, don't crop those aspects.


About projector (beamers) usage Can i slowly move a projector while projecting a movie or should I keep it immobile?

Also, is it true that i shouldnt turn it on and off too many times ?

thanks

To the first question yes, you can, but try not to do it- the filament of the lamp is very delicate.
Respect to your second question, that's true! Turning your projector on and off decreases the life of the lamp, and that's true with most lamps. It also probably reduces the life of the components inside the projector, but that's not something we can go into detail here.

Good luck!


How to animate a solid face in a video In this music video, there are some images of famous artists in the view that are animated and look alive.

http://vimeo.com/109646378

By which technique it can be achieved?
is it a frame-by-frame editing of photos and then apply the resulted 2d animations into the video?

The VFX breakdown is right in the link in the video that you provide.
They break it down for you in the youtube video.

Its masking, feathering, desaturation or levels adjustment. If moving they also key it in 3D space so the images scale properly to objects in space.

Very well done piece.


How do I find out about the shutter speed of frames in a video? I shot a video at 24FPS, and I want to find out what the shutter speed of each frame was. Quicktime Player and VLC's Info panels don't give me this information.

Neither does exiftool. Here's exiftool's output:

ExifTool Version Number         : 10.36
File Name                       : 24 FPS at 480p.mov
Directory                       : /Users/kartick/Desktop/Google Drive/Photos/Comparisons/Night Video Comparison
File Size                       : 7.7 MB
File Modification Date/Time     : 2017:04:18 19:55:15+05:30
File Access Date/Time           : 2017:05:05 06:57:31+05:30
File Inode Change Date/Time     : 2017:04:24 11:25:17+05:30
File Permissions                : rwxr-xr-x
File Type                       : MOV
File Type Extension             : mov
MIME Type                       : video/quicktime
Major Brand                     : Apple QuickTime (.MOV/QT)
Minor Version                   : 0.0.0
Compatible Brands               : qt
Movie Data Size                 : 8037178
Movie Data Offset               : 36
Movie Header Version            : 0
Create Date                     : 2017:04:18 14:25:15
Modify Date                     : 2017:04:18 14:25:38
Time Scale                      : 600
Duration                        : 22.75 s
Preferred Rate                  : 1
Preferred Volume                : 100.00%
Preview Time                    : 0 s
Preview Duration                : 0 s
Poster Time                     : 0 s
Selection Time                  : 0 s
Selection Duration              : 0 s
Current Time                    : 0 s
Next Track ID                   : 3
Track Header Version            : 0
Track Create Date               : 2017:04:18 14:25:15
Track Modify Date               : 2017:04:18 14:25:38
Track ID                        : 1
Track Duration                  : 22.75 s
Track Layer                     : 0
Track Volume                    : 100.00%
Image Width                     : 640
Image Height                    : 480
Clean Aperture Dimensions       : 640x480
Production Aperture Dimensions  : 640x480
Encoded Pixels Dimensions       : 640x480
Graphics Mode                   : ditherCopy
Op Color                        : 32768 32768 32768
Compressor ID                   : avc1
Source Image Width              : 640
Source Image Height             : 480
X Resolution                    : 72
Y Resolution                    : 72
Compressor Name                 : H.264
Bit Depth                       : 24
Video Frame Rate                : 24.004
Matrix Structure                : 1 0 0 0 1 0 0 0 1
Media Header Version            : 0
Media Create Date               : 2017:04:18 14:25:15
Media Modify Date               : 2017:04:18 14:25:38
Media Time Scale                : 44100
Media Duration                  : 22.80 s
Media Language Code             : und
Balance                         : 0
Handler Class                   : Data Handler
Handler Vendor ID               : Apple
Handler Description             : Core Media Data Handler
Audio Format                    : mp4a
Audio Channels                  : 1
Audio Bits Per Sample           : 16
Audio Sample Rate               : 44100
Purchase File Format            : mp4a
Handler Type                    : Metadata Tags
Software                        : ProCamera 10.2
Make                            : Apple
Model                           : iPhone 7 Plus
Avg Bitrate                     : 2.83 Mbps
Image Size                      : 640x480
Megapixels                      : 0.307
Rotation                        : 0

I tried saving a frame to an image file in VLC, but it saved without metadata, so I couldn't figure the shutter speed out.

I know the shutter speed is usually 1/48s (half of 1/frame rate), but this video was shot at night, so I want to check if the camera app used a longer shutter speed.

If the data was recorded by the camera as EXIF MetaData, Adobe Bridge would reveal the camera settings under the Metadata Panel. You may have to customize within Bridge WHICH metadata you want to look at; because there are literally hundreds, thousands, of types of EXIF data; which could or could not have been embedded; AND at times; you will find what you need hidden in a strange EXIF container.

Simply put; if you don't see a shutter speed setting under MAIN, or CAMERA metadata; the brand camera/type, could have written it elsewhere; so show all; expand all, and scroll down to see if the data is possibly there; hidden in a collapsed field.

If you shot the video at 24fps; you are right in thinking that it likely was recorded at 1/48 / 180 shutter. However; I would think; just based off the engineering / camera / lens type which is built onto the iPhone 7; and how I would engineer the camera to work using, which it does by default-  auto-exposure; that it would rely on aperture priority for exposure; and would thus constantly adjust your shutter speed on the fly based on it's exposure method. So if you did a constant shot from a dark area to bright area; you'd literally see an on the fly adjustment from 1/48 all the way up to 1/4000 or higher. Then aperture might kick in, as the phone as no ND filters to fall back on.

I only add that because usually iPhone footage shot outdoors in bright sunlight looks like it was recorded at HIGH shutter (strobe effect) rather than iris down. The diameter on the lens of an iPhone 7 also would make me think they would use Aperture Priority (constant) as it's practically a pin-hole camera to begin with.

Cheers!


How to identify HDR video? I need to validate if a video file (HEVC encoded) is or is not an HDR video. I know that there are many HDR standards, but I did not find a way to identify it using mediainfo or ffprobe.

The need is because I have an API that receives several video profiles (different bitrates, dimensions and codecs) for a single video, which are used to deliver to users the best match based on their devices and connection speed. So now I want to allow them to select HDR profile but to achieve this I need first to validate the ingest files.

Do you know how to handle this?

Assuming your file is ${F}, the below is an efficient means I have been able to create:

COLORS=$(ffprobe -show_streams -v error "${F}" |egrep "^color_transfer|^color_space=|^color_primaries=" |head -3)
for C in $COLORS; do
        if [[ "$C" = "color_space="* ]]; then
                COLORSPACE=${C##*=}
        elif [[ "$C" = "color_transfer="* ]]; then
                COLORTRANSFER=${C##*=}
        elif [[ "$C" = "color_primaries="* ]]; then
                COLORPRIMARIES=${C##*=}
        fi
done
if [ "${COLORSPACE}" = "bt2020nc" ] && [ "${COLORTRANSFER}" = "smpte2084" ] && [ "${COLORPRIMARIES}" = "bt2020" ]; then
        echo ${F}
fi

I use this inside a looping function to know when to use https://github.com/Fmstrat/ffmkv to create an SDR version of a video on one of the presets.


How can I rename a footage .ai file for AE without breaking the references? I've got a composition in After Effects CS 6 on Windows that contains several .ai files. One of them has over 30 layers, which I imported and animated in AE. Unfortunately, I gave the .ai file the not so clever name foo.ai because it started out as a test but worked, and I'd like to go ahead with it. When I rename the file to something more sensible, like Scene 1 - Spaceship.ai, AE complains about a missing footage file. Now it wants me to give it the new path, which I do. I have to select the layer from the .ai as well. And it looks like it wants me to do it for every layer from the same file.

I've already tried making a copy of the AE project file, opening it with a text editor and replacing all occurrences of foo.ai with Scene 1 - Spaceship.ai. After that, AE told me it tried to read after the end of file. Looks like there's a file length in there. Damn.

So how can I do this without having to change the source file and resellecting the layer for each individual layer in AE?

Save the project in XML file format, do as you already did, open it in a text editor, find-replace the name. Open the modified file in AE and re-save it in its normal binary format (aep).

Size shouldn't be an issue since renaming a file doesn't change it size. It seems like you have edited the aep file? Hope this helps!

More on the topic here:
http://help.adobe.com/en_US/aftereffects/cs/using/WS3878526689cb91655866c1103906c6dea-7fa0a.html


Store video files on USB, SD card, microSD, or external hard drive? Working with raw .mts (MP4) video scenes that are about 6.5 GB in size each (but automatically  partitioned by the camcorder into separate 10-minute chunks), what arguments are there for not storing them on SD cards?

From experience, USB drives are high-risk storage devices since they
can become corrupted without warning, rendering all data on them
inaccessible.
External hard drives are just too heavy.

This leaves SD cards, they are lightweight. Is it a bad idea to store raw video files on SD cards? How about microSD cards?
Is there a better storage device than all four?

Generally, it’s a bad idea to store data on SD or micro SD cards for any substantial period of time. If you’re a hobbyist, traveling, and plan to transfer to a hard drive when you get home, that’s fine.  But if you’re a traveling media specialist, you want to get your data off of SD/micro SD as soon as possible, for a number of reasons;

Those cards are easily corrupted, because they have very little shielding against electromagnetic or static discharge, and don’t have built in error correction circuitry. They are absolutely higher risk than USB hard drives.
They are easy to lose, because they’re small.
They break.  The plastic wears down over time, especially after several hundred insert cycles. The thin strips of plastic that separate the contact “teeth” of SD cards are especially fragile, and when they break off, they can damage your camera.
They’re made and priced to cycle data. It’s more economical to store long-term data on media designed for that purpose. If you bought a new SD card every time it was full of photos, you’d be throwing money away.
They’re not designed for random access.  They’re designed to write data quickly and sequentially, but reading it quickly isn’t a priority,  and constant random read/writes would not only be very slow, but would also shorten the card’s lifespan.

What you should use instead depends on how you intend to use it; how long you intend to keep the data, how often you plan to read the data, how quickly you need to read the data, and how much money you’re willing to spend.
No, portable hard drives aren’t as reliable as desktop ones, but they are more... portable.  Portable SSDs are faster and more reliable than spinning metal, but they’re more expensive and have lower capacity.  If you really want to protect your data while traveling, you can get portable 2-drive RAIDs, with either SSDs or HDDs, but they’ll be at least double the price of their single-disk counterparts.  If you’re a DIT working on a major motion picture, you might possibly lose your job for not using an actual RAID.  If you’re a digital finisher, you probably have all of the above, plus maybe LTO.  Yes, tapes are still the most economical way to store data long-term, and they have a lifespan of around 30 years.


Automatically scale video on import to sequence resolution I have a multicam setup mixed with 1080p cameras and 2160p cameras (So I can zoom in on them)

But when I import the 4k clips into my 1080p sequence, they are "zoomed in 200%".
Is there a way to automatically set UHD clips to 50% size on import?

You can achieve this by the using Default Media Scaling preference, which takes effect when you subsequently import media and/or add to the timeline.

Edit > Preferences > Media > Default Media Scaling and choose "None", "Scale to Frame size" or "Set to Frame size"

Scale to Frame size: Will resize the media clip virtually at import - such that when added to the timeline at 100% it fits the frame.

Set to Frame size: Will set the media scaling dynamically using the effects control, such that at 50% (in your example) it fits the frame. Importantly - you can then rescale the media up on the timeline without loosing the original quality.

You can also use Clip > Video Options > Scale/Set ... (with clips selected in the Media Library or Timeline) to rescale clips in the manner stated above.


How to put your GPS track in a video? I am about to start a channel on YouTube.
There will be occasions that I will drive while recording my path with an indoor (inside car) camera.  I thought that it could be great if I put a tiny square on the corner of the video with the GPS tracking corresponding to my car path.
Is it possible? What do I need to do it?

I personally use RaceRender, however, there is also DashWare.
Both can edit video and add GPS position overlays.
Bare in mind, neither of them can add the actual "map" like one from Google Maps, just a line showing your path and a marker showing the current location.
Again, my personal preference is to use RR or DW to produce a video with a magenta background so I can Chroma Key it in my editor (Magix Vegas).
I find the built-in editors in both programs a bit fiddly, so the use of a proper editor is recommended but they're fine if you just want to load a video, apply the overlay and render it out.


Simple Video Editing Tool? Can someone suggest free tools for video editing and video making? If you can include the feature much better. Hope to be able to get some of your advice. I need it badly. I am really not into technology but greatly needed to make a simple video. Thanks!

Q:Best Video Editor for Windows (Free)
A:

Windows Movie Maker
Windows Movie Maker is a free video editing tool for Windows and users can make home movies by simple drag-and-drop. It contains features such as video effects, video transitions, adding titles/credits, audio track, timeline narration, and Auto Movie. What's more, new effects and transitions can be added and existing ones can be modified using XML code.
VirtualDub
VirtualDub is a powerful free video editing software for Windows with many amazing features, such as compression, video splitting, and the addition of audio tracks. As a free movie editing software, it has batch-processing capabilities for dealing with large numbers of files and can be extended with third-party video filters.
Wax
Wax is a high performance and flexible video editing program which is good for both home users and professionals. It can be used as a stand-alone application, or as a plug-in to other video editors.However, its video editing functions are quite limited. If you want more advanced video editing features like Mosaic, Jump Cut, Flashhold, or need more transitional effects, picture-in-picture, titles, sound effects, you can turn to Wondershare Video Editor software, which make your video go to the next level.
Avidemux
Avidemux is a free video editor designed for simple cutting, filtering and encoding tasks. It supports various file types, including AVI, DVD compatible MPEG files, MP4 and ASF, using a variety of codecs.
FFMpeg
FFmpeg is a paid video editing tool for Windows, but a collection of free software that can record, convert and stream digital audio and video, including libavcodec (a leading audio/video codec library), and libavformat (a leading audio/video container mux and demux library).
Blender
Blender is the free open source 3D content creation which supports all major operating systems under the GNU General Public License. Blender has many advanced features, such as modifier-based modeling tools, powerful character animation tools, a node-based material, etc. and is one of the best video editors for both Windows and Mac.
ZS4 Video Editor
ZS4 Video Editor is another great free video editing and compositing software that provides media experts with a facility to combine photos, videos and audio files into one or more output files.
Cinefx Jashaka
Jahshaka is the first OpenSource Realtime Editing and Effects System in the world. With the power of OpenGL and OpenML, it gives users exceptional levels of performance. It currently supports Linux, OS X, Irix and Windows and is considered one of the best free video editor for Windows.
Zwei-Stein
Zwei-Stein is a great free video editor featured with many video effects. It can edit up to 256 video, audio, and still image clips. But the user interface is very technical so many people find it hard to use.
Movica
Movica uses some fine programs to edit your movies and receives good reputation. The keyboard shortcuts make video editing easier than ever. It's one of the best free video editor for Windows and fully supports WMV, FLV and MPG files.

Q: Top Mac Video Editor here (Free of course): http://www.wondershare.com/video-editor/free-video-editing-software-mac.html

Don't tell me that i'm the affiliate of this company, actually i'm the contributor for that site, and those articles are wrote by me. And i wish i can help here. Thanks


What are some simple video editor with Masking capability? I want to focus faces of an image and move that focus to each of the faces one by one with a delay.The other area of the image should be hidden/blurred

(btw this is called masking right?).

Is there any simple opensource(or just free) software for doing this?

A trial version would do because I need to make only one urgent video for now.

A good tutorial would be helpful as well.

An oldie question, but let's add an answer...

The answer depends on if the faces are moving through the frame.

If the faces are relative still, like a camera on a tripod and the persons sitting in front of the camera, any video editor with more than 1 video channel can do the trick. Just add a layer with something on it, a prepared semi-transparent PNG as a mask perhaps.

But more complex software is needed if the faces are moving or if you want a blur, instead of a semi-transparent mask.

If the faces are moving you need to track them, so the program needs to track it.

As @Shultc commented Both Blender and HitFilm can do this, and I would add Davinci Resolve.


Security video missing time and frames Why does a DVR or CCTV system randomly drop time or frames? I am viewing footage that says it is 12fps but, it is scanning at 10fps. These files were exported as AVI.
Thanks

Usually dropped frames are down to processor or disk bottleneck issues. If the frame cannot be compressed or stored in time, most applications will drop in order to move on to the next one.

The solution is often simple - increase the processing power or disk i/o speed.


FFMPEG - How to use crop, scale and overlay all in one go? Any ideas on the proper syntax to get crop to work with resizing and overlay all in one go?

The crop parameters are crop=1728:970:96:54 and I'm trying to work them into:

ffmpeg -loop 1 -i backgroundimage.png -i INPUTVIDEO.MP4 -filter_complex "[1]scale=1612:906[inner]overlay=154:170:shortest=1[out]" -map "[out]" -map 1:a -c:a copy -y -b:v 2000k -b:a 192K OUTPUT.MP4

To crop before scaling INPUTVIDEO.MP4:

ffmpeg -y -loop 1 -i backgroundimage.png -i INPUTVIDEO.MP4 -filter_complex "[1]crop=1728:970:96:54,scale=1612:906[inner];[0][inner]overlay=154:170:shortest=1[out]" -map "[out]" -map 1:a -c:a copy -b:v 2000k OUTPUT.MP4


Video Editors Supporting 5.1 Surround Sound? Now that I've found a way to record in surround sound I'd like to keep surround intact while editing the files. Features I need include trimming, appending, and adding narration to paused frames.

Ease of use and cost (less than $100) are my primary concerns. There is no need for special effects or advanced transitions.

So far I've tried Windows Movie Maker and Vegas Movie Studio Platinum. The latter looks promising, but it won't detect the audio in my 5.1 channel video files. (Windows Media Player does play the files back in surround sound.)

EDIT: For reference, Windows lists the audio in the files as 4608kbps, 6 channel, and 48kHz.

Davinci Resolve 14 would definitely do this as it has all new audio, otherwise Adobe Premier will work


2 videos out of sync I recorded myself using my camera (canon ixus 117hs, 23.98fps) and also recorded my LG G3 using AZrecorder (records the screen at 55.58fps). I tried to sync both videos (using premiere pro cc) and at some point they go out of sync, maybe because of the difference in the fps? and if so, what can I do with it? Thank you.

55.58 is not a standard frame rate so it's the one that should be changed. Using the 23.98 video as a reference, pick a point late into the video where you can determine how many frames (at 23.98 fps) it's out of sync with the 56 fps video. Compute the ratio of the length in frames up to that point, to the number of frames out of sync. Then time stretch the entire 56 fps video --  either shorter of longer as needed -- using that ratio.


Video recording using external microphone and smartphone My plan is to record gameplay (using fraps) and myself using a Galaxy S + microphone. I then want to glue them together into one video - picture in picture kind of thing.

My concern is for the part where I use my phone (filming myself): do I have to put the audio and video together in an editing software? Or is the phone smart enough to match the sound that the external mic captures with the image?

Thanks a lot in advance. Also, feel free to recommend a good (~40$) microphone.

Cheers,

Adrian

If the microphone is hooked in to the phone, then it should be an input to the camera app and it should record both at the same time.  If the microphone was not linked to the camera app for some reason but was recording separately, it isn't that hard to sync, just clap on camera and look for the spike on the waveform and align it with the clap.  I wouldn't expect it to be a problem though.


Does the project resolution affect the quality of a chromakey? In FCPX:
If I have 1080p footage in a 720p project, will the keyer effect (chromakey) lose quality?
To ask the question a different way:
Should I have a project with the same dimensions/resolution as the original footage when I key it, and then export it at my desired resolution later? Or is FCPX doing that in the background anyway?

There isn't a right or wrong answer here I don't think.  Both approaches have advantages.  Keying at 1080p will give you clearer detail when trying to find edges, but also will have more noise that could throw off a key.  Additionally, the downscale after the key will apply a slight blur to the image further disguising the edges to make the keying less obvious without having to do an additional blending on the 720p version.  That said, it will take additional processing effort as the image is larger and there is more area to process.

On the flip side, keying at 720p will reduce the amount of processing needed, but will not blend as well and will potentially have softer edges that don't key quite as easily.  The noise is reduced as mentioned before though, which makes the fill areas easier.  It also matches the native resolution of your final output so it may save some quality on the content being keyed in depending on what the source resolution of that content is.

If both source and key are 1080p, I might consider doing it at 1080p and then downscaling the result, but if one of them is 720p to start with, I'd probably key at 720p and soften the edge a bit unless I ran in to problems.


What happens to frames when you speed up a video clip? There is a 60 FPS video clip, with 1 Second total duration (So it has 60 frames, each 1/60s duration)

I make it 2× faster. So it's has a 0.5s total duration. How about frames?

How many frames are in my 0.5s video? 60 frames each 1/120s, or 30 each 1/60s?

In a tutorial the author says: "I recorded those images at 60 frames a second and time remapped the video to about 2-3x getting about 120-180 frames to work with."

I just wonder if speeding up (in this case time remapping) the video clip for 2x will result in removal of half of the frames, how the tutorial is saying it give you 120 frames to work with?

In the simplest case, half the frames -- every second frame, or all the even (or odd) numbered original frames -- are just gone, discarded. The frame rate of the resulting video does not change, it's still 60 fps.

It's possible to create a video where each new frame is a blend of two original frames but this is unusual and often not effective. Or in a field-based system where each original frame is composed of two distinct half vertical resolution images, you can discard half the fields instead of half the frames. But still, the result will be 60 fps.

If you were working in a 60 fps environment and imported a 30 fps clip, you could effectively double the frame rate of the original clip, but that isn't what you asked about.


What happens when you use a specific CRF value on a already encoded x264 video? If there is a h.264 video, and I use -crf 17 I sometimes I get a lower bitrate, but the weird thing is - most of the time get a higher ones.

I am trying to get this setting because I think some videos of mine are having a higher then needed bitrate and I have not figured a way (if it is possible at all) to determine what is the most appropriate way to do this and maybe playing with CRF will not help me at all, but I wondered what actually happens when you don't encode with libx264 for example, but actually use CRF values on a x264 file?

When decoding a file, the decoder attempts to recreate the source material with the information provided in the file. But it can not be a 100 percent accurate representation, so the decoder creates new pixels that are estimates of what was included in the source

When you encode for the second time with CRF 17, the encoder does not know these new pixels were generated by the decoder and were not necessarily faithful to the original material. But the encoder still does its job, and attempts to encode these new values accurately.

So it spends bits encoding pixels that were thrown away and recreated by the first encode, making the file larger.


YUV to RGB/sRGB color space conversion using ffmpeg How to convert an mp4 file with YUV color space to RGB or sRGB color space using ffmpeg? I am trying to upload my video to YouTube and I read somewhere that RGB video looks better than YUV one.
Thanks.

ffmpeg -y -i output.mp4 -c:v libx264rgb output_264.mp4
Output #0, mp4, to 'output_264.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf57.83.100
    Stream #0:0(und): Video: h264 (libx264rgb) (avc1 / 0x31637661), rgb24(progressive), 636x360 [SAR 1:1 DAR 53:30], q=-1--1, 27.05 fps, 13524 tbn, 27.05 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc57.107.100 libx264rgb
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
    Metadata:
      creation_time   : 2018-02-04T15:39:08.000000Z
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
      encoder         : Lavc57.107.100 aac

ffprobe output_264.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output_264.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:07:50.02, start: 0.000000, bitrate: 1006 kb/s
    Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), gbrp(tv, gbr/unknown/unknown), 636x360 [SAR 1:1 DAR 53:30], 928 kb/s, 27.05 fps, 27.05 tbr, 13524 tbn, 54.10 tbc (default)
    Metadata:
      handler_name    : VideoHandler


Prores ffmpeg questions I am trying to understand how to use Prores Kostya with FFmpeg, and I have a few questions regarding this:

I have a Panasonic G85 and Gopro Hero 7 black which I used to shoot 4k in.  For 4k footage, the Panasonic records at 4:2:0 8-bit at 100 Mbps, and the Gopro 8 bit 4:2:0 at 78 Mbps.  With this in mind is there any point in selecting a Prores profile other than ProRes 422 LT?  The reason I say this is because the LT profile has 102 Mb/s, which exceeds the source footage from both cameras.
I have read that the qscale command is not needed, and a user can just select a profile which will define a standard bit rate (for LT this is 102  Mb/s). I have seen people saying that ProRes is a profile-based codec, meaning that when you select one of the profiles, it does a fixed amount of compression, defined in the spec. If you want a different compression level, you're supposed to choose a different profile, rather than change a quality setting with the qscale command, as this may result in a violation of the standard, and have the potential to cause playback issues (particularly with hardware decoders).  So with this in mind is it better to miss out the qscale command?
Why is it necessary to specify the -pix_fmt, as I thought all the 422 profiles defaulted to yuv422p10le and all the  4444 profiles defaulted to yuv4444p10le. So why is there a need to specify this value?

1) your Panasonic footage will be H.264; GoPro may be H.264 or H.265. These are inter-frame codecs whereas ProRes is an intra-frame codec (each frame is coded standalone and doesn't depend on other frames for decoding). So, you should consider a higher bitrate to maintain source quality.

2) FFmpeg does allow you to set a custom quantizer but by default it will use a fixed quality setting per profile. For custom quant, use -global_quality N.

3) FFmpeg has to convert to the given pixel format which is what output -pix_fmt will do. The encoder only encodes i.e. takes in raw uncompressed input frames and delivers coded data.


FFMPEG Stitch four videos together, then add overlay to result I have four videos (no audio) which I am able to stitch together using this command.
I am also able to add an overlay on a single video with this command.

Is it possible to combine both of these operations with a single ffmpeg command (i.e. stack four 960x540 videos as in the first link, then add a 1920x1080 overlay onto the resulting 1920x1080 video)? Thanks.

Add the overlay to the result of the stacked videos.

Use

ffmpeg -i input0 -i input1 -i input2 -i input3 -i overlay -filter_complex \
"[0:v][1:v]hstack[top]; \
 [2:v][3:v]hstack[bottom]; \
 [top][bottom]vstack[v];[v][4:v]overlay=0:0[v]" \
-map "[v]" output.mp4


ffmpeg reducing 60fps to 30fps, but file size is larger I just did:

ffmpeg -i inputfile -r 30 -vcodec libx264 -an -s hd480 output_30.mp4

and

ffmpeg -i inputfile -vcodec libx264 -an -s hd480 output_60.mp4

on a 60fps file.

Why is the second file 27 MB and the first file 49 MB despite the fact that the first file contains only every second frame?

Did you actually get every second frame? My impression is that you got every frame, but you halved the framerate. Therefore, the length of the video in seconds is twice as long for the first compared to the second, and assuming equal rate controls (e.g. 1 megabit per second), the twice-as-long-file will thus be approximately twice as big, which is what you got.


How to filter out footage into one clip The problem I am facing is I have too much of footage of which only 10% is going to be used for editing.
I don't want to store tons of footage which is not going to be used.
The most reasonable idea which comes to my mind is to run through all the footage, trim the bits ( which I would like to use in ONE or MORE future videos ) and save this trimmed compilation as a file for use in the future, 'open and pick up what I need' clip compilation file.
So the question is:
What would be the best approach to save space and time in filtering out the usable footage and getting rid of the footage that is never going to be used?

There are 2 solutions:

Create a sequence with all assets that have not been used so far, but which you would like to keep. Next, use the Project Manager to export all relevant files to a new location (your archive) and have "Exclude unused Clips" checked. You may choose to do 2 exports: one with all the sequences for the main video except the extra sequence and another with only the extra assets sequence. When done, delete the original project folder.

Use a metadata attribute to mark which assets you do not want to keep. In the project panel, select list view and sort by that metadata column. Or you may move all the extra assets in other bins. For each bin select all the assets marked as unwanted and right click on Make Offline and select the delete option.

I think the first approach will be faster in most cases.


Kdenlive - how to export audio only? Is there a way to export (render) audio only in kdenlive? Maybe a custom profile? Shotcut has this ability. As they're both built on MLT, I assume it should be possible in kdenlive too. Am I right?

Figured it out.

Go to "render" and under "destination" select "audio only".
Choose a profile and tinker the settings.

If you want to export in an undefined format, such as FLAC, you can create  new profile.

Go to "render", under "destination" select "audio only" and click on "create new profile".

You will now use this as parameters:

f=flac acodec=flac ar=48000 ab=384k vn=1 video_off=1

Fill it so it resembles this:

"group" and "profile name" are up to you, however I'd say these are the best as they are semantic.

You can of course define your own format, codec, bitrate, etc., to suit your needs. The parameters "vn=1 video_off=1", however, must remain.

Here you can find some interesting presets you can use to create profiles. They're intended for use with Shotcut, nevertheless they should work here as well as both Kdenlive and Shotcut are built on MLT framework.


find soundtrack with the cheapest licence Many websites provide licensed music/soundtracks you can use. For example, I like this soundtrack. It comes with a fixed fee of $49. I am wondering, there must be some other provider I am not aware, that sales the same licensed soundtrack at a lower cost. ($49 may be little for large corps, but not for small business owners).

How do you find the cheapest provider for the exact soundtrack you like? Are there any websites that search the web for the lowest price? I hope this is not off topic, because finding quality music is essential to video production.

As far as I'm aware. There is no 'soundhound' or Shazam type app for royalty free stock music. Usually these websites require that the owner only sell the music on their website rather than a competitors. I'd say the likelihood of finding the same song another site is slim.

With that being said for cheap stock music I always go to audiojungle and for the higher budgeted jobs I go to musicbed. Sometimes I will check out extrememusic just to establish what the client likes; but that sites tends to be studio-only unless you are willing to fork out $$$.


how can I flip from camera to screen recording I just get my new canon 70d camera. I want to use it for recording online tutorial and publish it in YouTube. how can I flip from camera to screen recording and vise verse while recording? are there some programs for doing that?

You have two main options I can see, first one is to take a look at Open Broadcaster Software Project.  This project is free and open source and is targeted at individuals trying to stream primarily, but it does have good support for both a video capture device and a screen capture.  I believe it is possible to configure a shortcut key for swapping sources and it does support local recording.

For this option, you will also need a way to capture the video from the camera.  You can either use a webcam hack to pull the preview video from EOS Utility using some third party drivers (Covered in more detail here) or you can purchase an HDMI input device, such as a Matrox MXO2 or BlackMagic Intensity (not free or even particularly cheap, but necessary if you want to make use of the HDMI out of your camera.

Alternately, you can just use standard screen recording software and record the video independently.  You can then edit them together after the fact.  To avoid sync problems, you can start by showing the camera the screen and opening and closing a window to sync to later.  This is the cheapest option as it can be done without any additional investment using entirely free tools.  It is also the highest quality option as non-real time encoding and hardware assisted encoding (such as on the camera) does a far higher quality job than software based real time encoding.  It also allows you to be the most selective about when you switch sources and preserves feeds of both sources in case you want to make changes later on.


Joining files fail with "h264_mp4toannexb filter failed to receive output packet" I've always joined my MOV recordings with

ffmpeg -f concat -safe 0 -i <(printf "file '$PWD/%s'\n" ./*.mov) -c copy o.mov

however, due to a small glitch in one particular file, I get h264_mp4toannexb filter failed to receive output packet. I may discard the part with the glitch, which is around 01m40s into the file. Copying the problematic input file with -c copy works, but using the new output for joining still fails.

Things I tried without success:

-fflags discardcorrupt
-err_detect ignore_err
-ignore_unknown
-copy_unknown
-ss 00:03:00

A Google search for the error above only returns the source code itself for the concat option: ftp://opensource.tambov.ru/ffmpeg/ffmpeg/libavformat/concatdec.c

One easy workaround I found while writing this question is simply discarding the broken piece of the input file before trying to concatenate the files, in a separate command, since -f concat and -ss 00:03:00 don't work together when "h264_mp4toannexb filter failed to receive output packet" is present.

For example, to discard the first 3 minutes of the file, then concatenate separately:

$ ffmpeg -i broken.mov -c copy -ss 00:03:00 fixed.mov
$ mv broken.mov broken.mov.ignore
$ ffmpeg -f concat -safe 0 -i <(printf "file '$PWD/%s'\n" ./*.mov) -c copy o.mov

I still can't understand why concatenating is the only operation that fails with that error, but the source code linked above might give some hint.


Where to place a camera to record Swimming Recently I've done a "mini-triathlon" event called WinchesterPPP and I was able to record the whole event by placing my GoPro camera on the helmet (You can see my video on that website). Next year I'm planning to do a proper triathlon and instead of kayak I'll be swimming. The thing is I would like to record that part too, but I don't know where to put the camera to get the best video

For the swim you really only have one option - to wear a light helmet of some kind to get the camera on the top of your head.

Anywhere else and it will not show anything useful (too much splash) or will cause drag (eg chest mounted) - look how much of the body is underwater:

If you think you are really good, point it backwards. You will get a better view, with less splash, and if you are in front, the shots you will get of the rest of the pack could be really good.


How to make PNG video render into 10bit h.264 matroska/avi file? I'm not good with this stuff, so please dumb things down as much as humanly possible and assume that what I type is probably all i know about ffmpeg.

Okay so I rendered a 1080p video as thousands of 16 bit png images.

I want to take these images and create a 10 bit h.264 video file with either a matroska or avi container. I'll need to add in a .wav file as the sound without re-encoding as well. I'm guessing I can just use this command at any time to do so after its in mkv format in this example:
ffmpeg -i original.mkv -i audio.wav -c copy output.mkv

So this is what I have so far: Note I have no idea what the input for PNG images is so I just left it as "input" as you see below. When I do the command below on a normal video file it uses 8 bit. So I need to know the command to specify 10 bit.

ffmpeg -i input -c:v libx264 -preset veryslow -crf 0 output.mkv

(1) ffmpeg -i input.mkv -i audio.wav -c copy output.mkv
(2) ffmpeg -i input.mkv -i audio.wav -acodec copy output.mkv
(3) ffmpeg -i input.mkv -i audio.wav -c:a copy output.mkv
(4) ffmpeg -i input.mkv -i audio.wav -vcodec libx264 -acodec copy output.mkv

Which of these 4 is the best to use if I JUST want to combine video with audio without re-encoding? or is there an even better one to use?I was told -acodec copy is necessary to ensure it doesn't re-encode, but others have told me differently. should I use -acodec copy instead of -c:a copy?

You can use

ffmpeg -i %04d.png -i audio.wav -c:v libx264 -crf 0 -c:a copy output.mkv

where %04d.png represents the pattern for the image filenames. The % is a prefix indicating a numbering pattern is specified afterwards. 04 represents a 4 character pattern, padded with zeros as necessary. d indicates that the characters are numbers.

The particular filename pattern captured in %04d.png is

0001.png
0002.png
0003.png
...

If instead they are

1.png
2.png
3.png
...
999.png
...
9999.png

you would supply %d.png i.e. no padding.

If it's

myimages_00001.png
myimages_00002.png
myimages_00003.png
...

you would use myimages_%05d.png


Final cut pro X takes hours to export a file with lots of images So I've created a video, its in 1080p, it has a lot of images on it doing various things, fading in and out, moving around the screen etc.  It also has a picture in picture video on it and two audio streams.  I find that when I come to trying to share this as a master file even in the lowest resolution I can pick it takes hours and hours to export it!  The final file is <2gb in size (if I try 1080p the result is only circa 6gb and I've never completed it, it seems to grind to a halt after hours).

I'm running on a macbook pro which is about 2 years old, with 16gb Ram, 1tb hdd with a good 33gb of space etc.  Worth adding that when I don't have so many pictures the same video might take an hour or two but overall is much faster, is it just the sheer number of images I've got?  If so is there a way to mitigate this?  Not sure if relevant or not but I've also turned of rendering as having it on makes the mac start to sound like it's ready to take off!

Any suggestions how I can speed things up?

I found in the end the easiest way was to leave the video to render everything as I hadnt done this, it took about six or seven hours to do but once done the actual sharing in h264 format only took about an hour to do, which isn't that bad.

I could change the share version to video and audio and then pick prores but the resultant file would have been nearly 40gb! I have no idea how long it'd take to spit that out, possibly shorter than the rendering and sharing time of the other filetype combined but then I'd have a file approximately 7-8 times the size and not suitable for uploading online/to youtube etc, and any resizing that I'd need to do would probably end up taking an extra chunk of time as well, in the end I'll just make sure I have my projects render overnight before I need to do stuff with them...


Do teleconverters work properly for recording movies with hybrid cameras? Are teleconverters (x1.4 or x2) fine for recording movies (action videos) with hybrid cameras?

I was thinking that maybe the focus could be a little too slow, especially for tracking sports moves.

It really depends on the capabilities of the focus system on the camera and the particular teleconverter and lens used.  Since you mention action videos, I assume you will be dependent on autofocus.  Not all teleconverters are able to properly communicate focal length and focus adjustment controls, so you'll need a "smart" teleconverter.

Additionally, teleconverters have an impact on the f-stop at which a lens can shoot and because of the way they operate, with some lenses, they limit the aperture settings at which autofocus can occur.  You'll want to check the documentation of the particular teleconverter you intend to use to make sure it is compatible with the lens and aperture you wish to shoot at.

Finally, there is the concern of the precision of the AF motors.  Extending the focal length of a lens also narrows the depth of field and makes the precision of the AF motor much more critical to avoiding focus "breathing" where it goes in and then back out of focus.  This is also going to be lens specific and some lenses will do better than others.

This is all running on the assumption that you have hybrid pixel phase detect autofocus on the hybrid camera in question (or some other form of non-contrast based phase detection that allows direct travel to the proper focus point.)  If you do not, then you will have issues with focus breathing with or without the teleconverter that will be less than ideal for video purposes.


Recording Hi8 SD NTSC home movies ideal quality with ffmpeg? I have a Dazzle DVC 100 that I'm using to connect an old 8mm camcorder up to in an attempt to digitize all our home movies.

The videos are all NTSC SD I believe and I've had the best success at recording with FFmpeg.

I wonder about the video size and framerates as I want the ideal recording.
Should the ratio be 720x480? From what I read 720x480 is NTSC DV but some others said it should be 640x480 (based on the pixels being square) or 720x486 NTSC SD.

Also is there any advantage in recording at a higher framerate? NTSC SD is 29.97 is it worth doubling the framerate to 59.94? The file size doubles due to the fact of recording two times the standard frames in a second. Is it just duplicating frames at that point and meaningless?

ffmpeg -thread_queue_size 1024 -f alsa -t 1500 -i hw:2 -f video4linux2 -video_size 720x480 -i /dev/video0 -framerate 29.97 -c:v mpeg2video -flags +ilme+ildct movie_0001.mpg

I would suggest encoding to H264 in MP4. Making it square-pixel is fine, Deinterlace first. Doubling framerate has no use here (Exception would be if you used an interpolation filter to generate full frames for each existing field, but that's not needed here).

ffmpeg -f alsa -thread_queue_size 1024 -t 1500 -i hw:2
       -f video4linux2 -video_size 720x480 -framerate 30000/1001 -i /dev/video0
       -vf yadif,scale=640:480,setsar=1
       -c:v libx264 -crf 21 movie_0001.mp4


How to create TS files from pictures and videos? I have many videos and pictures. I'd like to burn DVD with pictures and videos and play in DVD Player.
And I want to make cml tool to prepare pictures and videos for creating DVD. I know how I burn dvd from video_ts folder, but not how I create video_ts folder with pictures and videos.

1.Can I write pictures and videos to Video-DVD?
2. How to create video_ts files with pictures and videos?
3. To prepare pictures and videos for writing dvd, how should I do?

You can use the free DVDStyler to create DVDs.

It should also be possible to include photo slideshows, although I didn't test that.


How do I keep from losing the color when I "Convert Shapes from Vector Layer" in AfterEffects? I often design everything in Illustrator, then import the file into AfterEffects as a composition, apply "Convert Shapes from Vector Files" to each layer so that I am working with vector, and then animate the new shapes.

However, I just ran into an issue where I convert a compound shape (with solid color), and after I apply "Convert Shapes from Vector Layer", it shows up as transparent. The layer is there, and I can modify the vector points, but I don't see it.  When I click on the shape, it still shows white in the Fill. Opacity is at 100%.

Any thoughts?

It could be another path within that layer in the Illustrator file. Check there first and make sure there isn't a mask of any kind.

You can also try looking in the layer within After Effects, click the Contents dropdown, and then the Group dropdown, and check for another Group under your paths. If you see another Group, change the visibility for the Group to see if your shape color returns.


After Effects - Shape layer obscures graphics layer unless positioned at bottom I am following an AE tutorial.  As part of its exercise files, the tutorial provides an .ai file that has two layers: a rocket and a black background. The .ai file is then imported into AE as a composition, thereby retaining the two layers.

The tutorial then creates a circle as a shape layer.  It places the shape layer below the rocket but above the background:

and the following is displayed:

When I do the same, the circle obstructs the rocket layer:

The only way I can get the rocket layer to be visible is by moving the circle layer all the way to the vertical bottom:

It's as if the two layers of the original .ai file are behaving as one.  What could be the problem?

Probably a dumb question, but is your circle the same colour as the rocket?
Then it would appear to obscure the rocket...

Alternatively -
There could be some kind of matte on one of the layers?
Click on the Toggle Switches/Modes button at the bottom of the list of layers in the timeline, and see whether any mattes are switched on.


Does Adobe Media Encoder support network encoding? I've noticed After Effects has a render engine that works over the network: two computer run the engine at the same time on the same LAN, they have access to the same project and off they go.

I had a quick look at Adobe Media Encoder and couldn't find any info/command line arguments (like aerender does). Does it support encoding the same video with two different computers on the same LAN or not ?

What would be the most efficient way of rendering an After Effects projects to H.264+AAC using two MacBook Pro laptops on the same LAN ?

The most efficient way is to use the command line renderer in multi machine mode. That will mean each machine will render the next un-rendered frame independently. You need to set the output module to a frame sequence, like png sequence, JPEG sequence, etc. and you need to make sure that "skip existing frames" is on. Then in a command prompt, type /path/to/aerender -project ~/path/to/your/project.aep where /path/to/… is replaced with the path to the aerender executable, and your project (dragging the files onto the terminal is the easiest way to find the correct path). On my machine the executable is C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\aerender.exe on a mac it will be /Applications/Adobe/Adobe After Effects CC 2019/aerender.

Alternatively use the render engine and set up a watch folder. This is slower than the CLI renderer, but doesn't involve any CLI use.

Media encoder doesn't do multi machine rendering. Probably because if you need rendering speed enough to use multiple machines you don't want to be rendering with it anyway. It's about 20% slower than the CLI renderer.


Cutting videos into individual clips - loss of quality? I have over 100 videos, each around 5-10 minutes long. From each video, I might only need two or three clips that last maybe 10 seconds at most. I want to create a montage out of all these videos using only small snippets from each video.

This is the first time I've ever done something like this. What I planned to do was to extract each clip from their respective video and then use that clip for the montage. This is mostly to save space and to avoid having a huge project file with many different cut up videos, as I barely need even 5% of all the videos I have.

However, I'm concerned the quality will be lessened when I cut up the videos like that first. Is that in general a valid concern if all you're doing is cutting up videos with no editing? Or is that handled differently by different video editors?

(I'm using Hitfilm Express btw.)

Theoretically, encoding will always reduce the video's quality although it may not be noticeable. And it is not necessary to encode (use codec) in video trimming. But, if your video editor (Hitfilm Express) uses a codec to encode as default and does not have an option to do video trimming without using codec or encoding, the video quality will be reduced.


How do I prevent the auto-focus from bouncing on my Galaxy J7 smartphone? I'm trying to film myself in a dark room with videos. When I start the camera, it records as expected: it checks focus and stops on a nice and crisp view.
However, as I record every second or so, even if nothing changes, it runs the auto-focus feature. That means the video "jumps" (zoom in/out for a little while). It's very visible on the final video.
Is there a way for me to setup the camera so that it doesn't re-auto-focus all the time?
My phone is a Galaxy J7 (SM-J700T).
I've seen many options to change the lighting, colors, etc. but I don't recall seeing anything about auto-focus. I'm hoping I may have missed something so I can use the phone camera without having that bad side effect.

Okay, I found the answer.
After I start recording, I can click for a second or so on the screen where I want the focus to be. The camera is going to make that item appear in focus and then block the focus to that point until I cancel it.
There should be an (AF) button appearing on the side. Clicking that button allows to go back to the auto-focus mode.
Note that there seems to be two modes: one when you do this when you're not recording and one when you are already recording. At this point I have not found the real difference, but the items (buttons) appearing on the screen are different. So I would imagine that there is some kind of a difference between both modes.


Best rendering output for 720px X 480px Sony Vegas Pro 12 I'm pretty new to video editing so please excuse if my question is rather entry level.

I have a bunch of archival films that were converted MPEG-2 at 720px by 480px. I'm required to put a watermark on them (which I've already figured out) and then upload them to youtube.

My question is, given the size (720X480) and non-HD quality of my archival film what would be the optimal settings to render in for Sony Vegas Pro? Or what would be the optimal format to render to given the above and it's end purpose being to get the best quality to Youtube?

Any help is much appreciated

Not sure if you are asking about rendering to edit, or rendering for output to Youtube...

Whilst Editing pretty much whatever your system is setup up for will be fine, most likely Mpeg-2 or DVCPROHD will get you by...

But if you are referring to uploading to youtube, your best bet will be H264 since that is what Youtube will convert it to anyway.

Here is a little bit more reading you can do on Youtube Video formats...
http://www.ifunia.com/youtube-column/best-youtube-video-format.html


Which ffmpeg command to use convert pngs to video? I have pngs starting from temp0000.png and ending at temp7085.png.

After reading the ffmpeg manual I tried the command:

ffmpeg -i temp%d.png -i a.mp3 -framerate 60  -start_number 0000 output.webm

But get the error:

Could find no file with path 'temp%d.png' and index in the range 0-4
temp%d.png: No such file or directory

What must I change please?

temp%d expands to temp0, temp1 ... temp10 ... and so on.

For temp0000, you need temp%04d

and the full command should be

ffmpeg -framerate 60 -i temp%4d.png -i a.mp3 -pix_fmt yuv420p output.webm


Ideal projection solution for Kinect hack performance I've been learning about how the Kinect is being hacked by
artists and multi-media nuts to make some incredible interactive
systems. The examples up at www.kinecthacks.com and many other
similar sites.

I'd like to experiment with the kinect for a solo dance performance
piece, where the dancers movements are the input to create live
projections and sound design.

My question is what kind of projector will I need to be
suitable for a live performance in a theatre with 100-300 seat
capacity. The projector must be compatible with the Kinect
motion detector technology, and have sufficient lumens for an
effective live performance, where lighting conditions may vary
slightly.

Any suggestions on how to get a great result out of this
complex A/V setup would be appreciated. If you know of specific
models (with price) that you've evaluated in a similar context,
that would be great.
Thanks

As AJ Henderson mentioned, you program the Kinect with a PC using various software packages, either ones that support Kinect natively, or by using the Kinect SDK. One that we use often is Derivative TouchDesigner. There is a free educational version you can download and use for non-commercial work.

Projector wise, I'd recommend something of at least 10,000 lumens. Depends where you set up the projector, and how much throw you need. You can use this handy calculator to help you get closer to what you need.

http://www.projectorcentral.com/projection-calculator-pro.cfm


Using ffmpeg to convert to Photo Jpeg with minimal loss of quality I've a 30-second clip, which is HD 1080p, 30fps, "Photo JPEG" compression, 480MB.

I've brought it into Fusion 9, made a small change, and rendered: but the Saver options (under Quicktime) are either uncompressed (which gives me a 5GB file!!), or DNxHD (e.g. "DNxHD HQ 1080p, 8 bit" gives me an 820MB file). (I think the lack of choices might be a limitation of the Linux version of Fusion 9?)

The next tool in the chain does not read DNxHD; I could work with the uncompressed file, but I'd like to avoid big files if I can. Can I use ffmpeg to convert it to the original "Photo JPEG" format?  (If not, is there something of similar quality and file size?)

("it" being either the uncompressed file or the DNxHD file)

I'd like to find the settings that give a nice file size reduction, but with no noticeable reduction in quality. I want to have my cake and eat it ;-)

DNxHD and JPEG are not the only game in town as far as intermediate codecs are concerned (intermediate codecs being high-quality, visually lossless codecs designed for moving media between steps in a post-production chain). Probably the most-used intermediate codec is Apple's prores 422, which can be encoded cross platform using ffmpeg thus:

ffmpeg -i uncompressed.mov -c:v prores -profile:v 3 -c:a pcm_s16le output.mov

One of the biggest advantages of prores is the support for 10-bit encoding, giving you much better colour fidelity. You can also use the prores 4444 variation to avoid chroma subsampling (reduction of the colour resolution) and alpha channel support.

Failing that you can use motion-JPEG, or even 2 flavours of lossless JPEG (I have no idea what the difference is). Oh and there's JPEG2000 if you really want, though it's not recommended. Substitute your codec of choice here:

ffmpeg -i uncompressed.mov -c:v CODEC -c:a pcm_s16le output.mov

where CODEC is one of:

jpegls - lossless JPEG (?)
ljpeg - another lossless JPEG (?)
mjpeg - motion JPEG
jpeg2000 - JPEG 2000

Since you're on linux I won't suggest Cineform, it's a good intermediate codec on win/mac but I don't think there's a CFHD codec for linux yet, and ffmpeg can only decode it (it's been open-sourced so that will probably change). There are a couple of more obscure ones like Grass Valley, huffyUV, dirac and so on, but if you can't use DNxHD it's unlikely these will be any use to you. Just as an aside, DNxHD is freely available from Avid, is it possible to install the codec on the target machine?


Transparent Footage - After Effects I have a stock video that is transparent but when I import the footage into after effects it has a greyish/blue background (even when toggling transparency on). Is there something I need to specifically do to get it to be transparent?
It's a .mov file.

I think what you're looking for is to toggle the transparency grid.

You can do this by finding the checkerboard-looking icon in the toolbar below the viewer.


Export - exported video but didn't look like the preview within Adobe Premiere I just exported a horizontal video that I've edited to a vertical video but when it's exported it just didn't come out as I expected, it became vertical and zoomed. This happened for the first time I've experienced in premiere pro since I used proxy for this first time. Does anyone has experienced or gone through this before?

here's what I edit
and when it's exported

First of all, if you are using proxies, don't use Proxies, and see if that solves the issue.
If it doesn't, move on to the next step below.

The issue is that there can sometimes be a problem when the final export doesn't match the sequence created by dragging the source clips onto the timeline.

When creating the Sequence, instead of dragging clips onto the Timeline directly, create a new Sequence in the Project bin while at the Assembly page (by clicking on File option in the menu bar, New > Sequence, click on the Settings tab in the following dialog box, then change the Editing Mode dropdown to Custom, whic lets you edit all the settings), that has the exact resolution and FPS settings as you want in the export. Then double click this new Sequence to load it onto the timeline. Drag the clip onto the timeline and when Premiere asks if you want to change the Sequence settings to match the clip, select No. Now transform the clip from the Edit tab. Rotate and zoom or crop, whatever your operation is. This should hopefully solve the problem.


Adobe Premiere Pro CC 2017 super laggy playback I don't know how can this be happening, I built a $1500 computer just to edit videos and apparently I can't even edit 1080p properly...

Why is Premiere pro struggling with 60fps 1080p videos? Whenever I playback my video either with (full, 1/4 or 1/8) I get super choppy and laggy playback to the point where editing is unbearable (no effects applied).

My specs shouldn't be a problem even for 4K video.

Core i5 6600K (overclocked @4.4GHz)
Cooler Master hyper 212x
Kingston hyper fury X 2x4gb @2666MHz
MSI GTX 1070 Gaming X (overclocked)
WD blue 1TB
Samsung 850 evo 256Gb

I have installed all of my adobe programs on ssd. Also when I start to playback the video in PPro the cpu usage goes to 100%

P.S. Could it be because of the high video bitrate? (60-80mbs)?

What can cause lagging:

Bottlenecks. If you rig is not balanced for a specific task, or has too little firepower in some areas then bottlenecks can occur.
Software issues. Bad drivers, bloated system .etc. Also, premiere isn't the least buggy NLE.

First thing I would check is the system monitor, to see what exactly happens when playback occurs. Does the CPU usage skyrocket to 100%, does the RAM get fully saturated, does the disk get fully saturated? These are all valid questions that will help you find out where exactly the problem lies. If none of these areas are peaking or showing a sign of a struggle, then the problem must lie with the software. If they do show warning signs, then you should consider:

To balance your PC I would add 8gb of RAM and increase the CPU to one of the greater core count i7's (6800k, 6950). Ofc, this will mean changing your motherboard as well as these processors require a different socket type. Premiere doesn't really care how fast your processor is, it cares how many cores/virtual cores your processor has. Case in point, my friend has a new 4 core processor and I have an old LGA2011 (not 2011-2) 3930k; my computer runs Premiere faster and they are both reasonably similar PC's elsewise.
If you are not editing off of your SSD do that now! You need to be able to provide Premiere with a quick means of accessing video clips. It is recommended to have an SSD for OS and apps, an SSD for scratch disks and cache, and an SSD for working projects; only using spinning disk drives for archival or backup storage.

If the software is at fault:

Check to see if this happens in another NLE! Download a trial of Vegas Pro and see if the problem persists there. If it doesn't than somethings wrong with Premiere.
Clean install of drivers for GPU using Nvidia's driver cleaner software, and a clean install of Premiere.

Ideally you want to develop a troubleshooters mindset. You can probably post this quesiton on many forums until you are blue in the face. There are just too many variables that are difficult to diagnose by hunting and pecking at the keyboard. You need to just go through each possible aspect one by one, focusing on the easiest first: (1) work on SSD (2) check other NLE (3) clean install .. etc. Then you can get into addressing whether your computer can handle the footage. Based on my knowledge (which is limited with i5 processors) your computer should be at least able to play 1/2 quality 1080/60 without a hiccup, and 4k in 1/4 quality.

Side note:
I have recently helped someone on a forum with similar specs except a 6700k and a 1080gtx, they were also having issues where the timeline would 'buffer' at the start of each clip on the timeline. Unfortunately we were never really able to narrow it down to any one specific thing. Many other users online have also reported laggy playback on official adobe forums, some of which do not even use newer (and possibly less supported) hardware.

Edit

Also I forgot to mention that the codec you use can make a world of difference. Often people with less than 6 cores find that their computer can't handle figuring out codecs that are compressed using for example XVAC using as their computer is left with the processing:

  In an interframe codec, when a frame is pulled up, the person has to look at the frame before it, and after it and then decide how to unwrap it – before unwrapping it.

In this case, and for troubleshooting, it might be a good idea to convert to DNXHD an intraframe codec.


Avconv rotating mpeg4 - video loses quality I'm a newbie in video editing on linux and am trying to rotate a video I took with my phone using AVCONV on an Ubuntu 12.04 machine.  It all seems to go honky dory except the output is losing quality.

The original video is 1920 x 1080 - 30fps - 1:47 long - 270MB

I initially attempted converting by running:

avconv -i in.mp4 -strict experimental -vf transpose=1 out.mp4

After seeing poor results I enforced frame rate, frame size and compression:

avconv -i in.mp4 -strict experimental -vf transpose=1 -r 30 -s hd1080 -qcomp 1 out.mp4

the resulting video compresses down to 45MB (from 270MB) and is really pixelated.  Can you tell me how to avoid this and maintain the original quality of the video?

Here's what the converter spits out:

avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Sep 16 2014 18:33:49 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tractor_powered_cable-car.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2015-01-01 10:28:17
  Duration: 00:01:47.34, start: 0.000000, bitrate: 20145 kb/s
    Stream #0.0(eng): Video: h264 (High), yuv420p, 1920x1080, 19974 kb/s, PAR 65536:65536 DAR 16:9, 29.99 fps, 90k tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 2015-01-01 10:28:17
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 155 kb/s
    Metadata:
      creation_time   : 2015-01-01 10:28:17
File 'out.mp4' already exists. Overwrite ? [y/N] Y
[buffer @ 0x21940e0] w:1920 h:1080 pixfmt:yuv420p
[transpose @ 0x218dcc0] w:1920 h:1080 dir:1 -> w:1080 h:1920 rotation:clockwise vflip:0
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2015-01-01 10:28:17
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1080x1920 [PAR 1:1 DAR 9:16], q=2-31, 200 kb/s, 30 tbn, 30 tbc
    Metadata:
      creation_time   : 2015-01-01 10:28:17
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 200 kb/s
    Metadata:
      creation_time   : 2015-01-01 10:28:17
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mpeg4)
  Stream #0:1 -> #0:1 (aac -> aac)
Press ctrl-c to stop encoding
frame= 3218 fps= 46 q=31.0 Lsize=   44341kB time=107.27 bitrate=3386.3kbits/s dup=1 drop=0
video:41833kB audio:2441kB global headers:0kB muxing overhead 0.150674%

Thanks,
Shakus

There's no way to do this losslessly, other than setting a meta-data flag and depending on players to rotate the video.  (This is what cell-phone cameras do).

With avconv / ffmpeg, what you're doing is using your decoded -> transposed video as a source to encode with x264.  See https://trac.ffmpeg.org/wiki/Encode/H.264 for how to do this.  IDK where you found a suggestion to use -qcomp 1, but changing the quantizer compression curve to an extreme is usually not what you want with x2641.

You shouldn't need to enforce framerate, either.  Phone cam videos are sometimes variable frame rate, so you should use -vsync 2 if you're outputting to mp4.  (vsync 2 is the default for mkv).

Anyway, this should work:

ffmpeg -i in.mp4 -codec copy -map 0 -movflags +faststart -vf transpose=1 -c:v libx264 -preset slower -crf 22  -vsync 2 out.mp4

(also include -metadata:s:v rotate="" if needed, see LordNeckBeard's comment.)

See the encode guide for details on how to choose crf and preset.

-map 0 maps any extra metadata streams, like chapters, into the output file.

-codec copy copies the audio untouched, instead of decoding and re-encoding.

Since you're re-encoding anyway, you might want to stabilize your video with vid.stab.  See https://askubuntu.com/questions/405244/deshaking-videos-using-script for instructions (and a note on avconv vs. ffmpeg).  The command I posted works with avconv as well as ffmpeg, but Ubuntu's avconv isn't built with vid.stab.

Footnote 1:   -qcomp 1 is pure constant quality (or constant-something, maybe quantization, which isn't exactly the same thing as quality).  i.e. not reducing quality in high-complexity scenes at all.  (So you potentially spend a lot of bits in a few short scenes / shots / segments which make up a small fraction of the total time of the video, leaving less bitrate for the stuff where those bits gain you more quality.  -qcomp 0 is basically CBR.

The default 0.6 is often a good choice, but some people like to boost it some, maybe to 0.7 or 0.8, to get closer to constant-QP.  -tune grain (try to preserve film-grain instead of smoothing it out) sets qcomp=0.8, among many other psy settings.  (most importantly -psy-rd <unset>:0.25 to favour more energy, even if it doesn't match the source.)

qcomp Anywhere in the middle smooths out the bitrate curve some.


Are most scenes in movies voiced over in post production? In this B roll of Harry Potter, one can see how the same scene (how they walk out of the water and up a hill) is filmed multiple times.

I guess that the final scene will be made up by several of these takes, and they will be cut (for example, the first part of the scene is made from take #1, and the second part is made from take #3).

If they cut within a scene, the audio will be cut, too.

How do movies deal with such situations?

Is the final (cut / edited) scene voiced over by the actors?

It's generally preferred to use the actual dialog audio from the take.  It matches the movement of the lips, it sounds right for the environment, the actor is giving an authentic performance, etc.  And, you don't have to pay the actor to come back for an extra day re-recording audio in a rented sound booth.

"Looping" in audio after a scene is shot is certainly not unheard of.  If a line needs to be changed, or there was an error on set, or there was some unavoidable noise going on during filming.  It'll also happen in very wide shots where it's hard to get a microphone close to an actor.  If this happens, it's called ADR -- Additional Dialog Recording, or sometimes Automatic Dialog Replacement.  Though as common as that latter definition of the acronym seems to be, the process really isn't particularly automated.

As for how to avoid needing it, you want to record clean sound from the start.  This is why you'll have a boom operator pointing a boom mic on a pole as close to the actor as possible -- even at the risk of accidentally getting the microphone in the shot.  If they kept the microphone far away, the actor would be quieter relative to all the other sounds going on in the room, so you'd have to crank up the gain and get more of those other sounds.  You can also have the actor wear a hidden lavalier microphone.  It's usually poking out near the collar close to their mouth, and then the wire runs inside the costume shirt so you can't see it.  Occasionally if the character has a big hat or helmet, a lav mic can be hidden in there instead of by their neck.

While you are in the location, you also record some "room tone."  Whatever the room sounds like when it's quiet -- because no place is actually 100% quiet.  There's some wind, or the neighbor's air conditioner or the house creaks slightly.  Whatever.  Get a few minutes of that.  And, if you have any crowd or whatever, you can get some of them talking or walking, or whatever it is that the other people are doing while the main characters are talking about the plot.

Then, when you get to editing the scene, you have a track of that "silent" room tone as a background noise.  And you have you crowd noise.  Maybe you use some actual recordings of the crowd from the set, maybe you just wind up using some stock sound, or do a separate audio recording session.  If it's a cafe or something, you'll have some clinking cups and dishes and silverware, and some babble of people "talking" but you want to make sure that it's not any recognizable words that would catch your ear while you are supposed to be paying attention to what the main characters are saying.  That can be just two or three tracks, or a whole bunch of tracks.  If you are on a space ship, you may have a bunch of tracks of engine sounds and beeping sensors and whatnot.  This bed of sound is constant through your scene, and is pretty much independent of the main character dialog that you get from the actual editing.  (Unless the sensors need to beep extra loud when the aliens approach or whatever, that sort of thing obviously needs to be in sync with the video.)

With that quiet but consistent bed of audio, you can cut the scene and get the best takes, and use the dialog audio from the relevant takes without to much trouble.  You don't notice any slight shifts in the audio from cut to cut because there is enough other audio that's consistent in that quiet background noise that it doesn't matter.


how to add video title without re-encoding the video How can I add a video title, in the start of a video, without re-encoding the actual video and losing the quality? is it possible in iMovie or Adobe Premiere Pro ? or even any Windows software?
is it even possible theoretically?

Update:
What I want is this. When I start the video file, first of all a title appears on the blank screen for 2 seconds, then the actual video starts.

What if I create an empty Title video, with the same codec, container and the resolution, comprising only the title. Then using 'ffmepg' join this newly created video at the start of the existing video ( for which I am creating this title).

It depends a bit on your file format. But it is possible; if you create a title as a separate video you can concatenate (join) the title and the original video usng tools such as ffmpeg. Generally this will work best if they are the same codec with the same settings. For concatenation using ffmpeg see the FAQ.

Some formats, like MPEG2 program streams (like you get on DVDs) can actually be concatenated by simply adding the second file to the end of the first, eg. by using cat file1.mpg file2.mpg > newfile.mpg on the command line.


FFMpeg: scale and then overlay keeping overlay aspect ratio I'm trying to scale a video, and then apply an overlay keeping the aspect ration of the same.
This adds the overlay, but it stretches it to the same aspect ratio of the video which is what I'm trying to avoid:
ffmpeg -y -i video.mov -i watermark.png -filter_complex "scale=-1:1280:flags=bicubic,overlay=(main_w-overlay_w)/2:main_h-overlay_h" -crf 0 -preset ultrafast -c:v mpeg4 -qscale:v 10 -c:a: copy out.mp4

Any help will be truly appreciated!

Ended up solving it through scale2ref:
ffmpeg -y -i video.mov -i watermark.png -filter_complex "[0:v]scale=-1:1280:flags=lanczos[bg];[1:v][bg]scale2ref=(250/180)*$ih/8/sar:$ih/8[wm][base];[base][wm]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)-overlay_h" -crf 0 -preset ultrafast -c:v mpeg4 -qscale:v 10 -c:a: copy out.mp4`

Where 250 is the width of the overlay in pixels, and 180 its height.
This outputs a video of N:1280, with an overlay of 250x180 at the bottom-center of it.


Can you smoothly change speed of video in FCPX I know it's easy to change a part of a video to be slow-motion or time-lapse by using "speed" setting. But what if I'd like to gradually slow down or speed up over the course of two-three seconds?

I know I can cut the video 5 times and change the speed of individual sub-parts, but maybe there's a better way?

Next to your speed marker are greyish areas. These areas can be adjusted and you can use that to make the transition to the speed change as long as you want.


How to extract Xtra atom from MP4 file? Can one dump/extract the Xtra atom from an MP4 file ? I am looking for a solution on a linux system (debian/jessie if possible).

Apparently this atom is used by WMP, as per link. I'd like to be able to use such information (rating, publisher or leveling inf) and pass that to my DLNA server (minidlna).

Currently all I see using AtomicParsley is:

[...]
                     Atom data @ 678585 of size: 529, ends @ 679114
         Atom Xtra @ 679114 of size: 206, ends @ 679320 ~
Atom free @ 679320 of size: 48, ends @ 679368
Atom mdat @ 679368 of size: 248835382, ends @ 249514750

 ~ denotes an unknown atom
[...]

And same thing with MP4Box:

 <UDTARecord Type="Xtra">
 <UnknownBox>
 <BoxInfo Size="206" Type="Xtra"/>
 </UnknownBox>

Which cannot be used/parsed.

I've reported the issue on Debian bug tracker here, as well as upstream here.

Really the only available reference implementation can be found here.


Is MP4 a valid or common container for ProRes? Is MP4 a valid or common container for ProRes? I've only seen it in MOVs and MXFs.

No, officially, ProRes is not a registered codec for the ISOBMFF family, of which MP4 is a member.


Ideal video format for Windows Movie Maker Windows Movie Maker is very slow in converting from MP4 to whatever it's using as its preferred/interim format. What is their preferred format, so I can convert to it using faster and/or GPU accelerated programs?

I've somewhat ruled out WMV, however, I converted the video to it, and WMM is processing it a good amount faster.

What is the ideal format to use for movie maker for importing video?

55 hours of video to encode/process with microsoft "technology" is not fun!

Windows Movie Maker, being a Microsoft product, works with WMV files using the Windows Media Video codecs.  You can use the free Windows Media Encoder to encode the files.  I believe there is also a free version of Microsoft Expression Encoder that you could use as well.  Expression is a bit newer, but slightly less capable since they moved a lot of functionality to the commercial Expression Encoder Pro (the Pro version is unfortunately not free).


ffmpeg creating a boomerrang video I'm trying to use ffmpeg to create a "boomerrang" video. Where it would take in one video, play that video forward, then play it backward, and once more forward all at 1.5x speed. I'm been able to do the forward/backwards process with this command:

ffmpeg -y -i input.mp4 -filter_complex [0]reverse[r];[0][r]concat,setpts=0.5*PTS output/boomerrang.mp4

But I've been unable to get that final 3rd play with the video playing forward. I'm assuming I would just need to concat the video on the end but I'm not really sure how to do that.

You just need to add the original input to the concat.

ffmpeg -y -i input.mp4 -filter_complex [0]reverse[r];[0][r][0]concat=n=3,setpts=0.5*PTS output/boomerrang.mp4


Timeline in node based compositing I use Natron. What I want to ask about programs like Nuke, Natron, and Fusion is: Are they only for compositing one frame basically? Or can I composite a video? Just for example there is no timeline. That is, I must first fit all the video at one time and then composite? or are there any timeline nodes

Usually, the workflow goes like this:

Capture your plates, real, cg, doesn't matter.
Hop into Nuke, composite your plates, then render each shot individually.
Edit the shot in your editing-software such as premiere.
When the final edit is done, re-import each individually rendered clip into a grading software such as Resolve, apply your color grading, export again and replace the ungraded file in your edit.

So just for pipeline-purposes, it's often inconvenient to use a timeline in compositors like Nuke.


GoPro Hero 3 + Adobe Premiere Elements 14 black border I have imported my videos into Elements as a test and tried a lot of different combinations to remove the black borders, but nothing seems to work.

The source file info it in the image below:

I'm unsure which settings to go for when setting up the project...

And I am also unsure of which to select in the export...

Project settings...

I can see that the file is 1280*960, but I cant seem to find this setting, any help would be greatly appreciated.

You need to select a Custom size, because 1280x960 is not an HD ratio (16:9) but something else (4:3).  The black borders are the program's way of telling you "the image aspect ratio doesn't fit the target aspect ratio, so I'm going to shrink it to fit".  YouTube, for example, will also do this to your video, as will any HDTV.  So unless you have a 4:3 end-to-end pipeline (which you might have if you are "projecting" the video onto a virtual 4:3 screen within some animation), something somewhere is going to have to crop or fill your image in ways you don't like.  The best alternative is for you to make the decision how you are going to fit it into a 16:9 world.


Why deshaken video looks "wobbly" and how to fix it When I filter a shaky video through deshaking filter (that fixes frames positions and rotations), the resulting video looks "wobbly" (example gif), i.e. while there are no per-frame displacements or tilt, there is still per-frame deformation.

How is it called and how do I get rid of it?

Note: The question is not about motion blur, it is about geometrical deformation that is not rotation and moves.

Update: I have experimented a bit with various videos and found out the case where the problem is visible the most.

If camera is held at right angle to the object (), I get only motion blur after deshaking.

But of camera is held at angle to the surface (), then I got this type of distorsion when moving the camera: .

The problem is that this is what the original footage looked like.  While you can stabilize the objects themselves by tracking, you still have motion blur from the movement because the objects moved within the time each frame was being captured.  Additionally, you also have perspective changes if the camera is moving in 3d space in addition to having the angle change.

This motion blur appears regardless of the stabilization as the stabilization simply repositioned the video to keep objects in the same place, but you can't get rid of the motion blur without completely synthesizing the image to produce something that resembles what the frame would have looked like without any motion blur.  This is both exceedingly difficult and also extremely likely to introduce as many artifacts as it fixes.

Similarly, the perspective issues result in a shifting perspective without corresponding movement as the camera position changes are counteracted by providing a perspective correction, but the contents of the video are still viewing from the wrong angle, so what portion of the surface is visible changes very disconcertingly.

This is most obvious if we take a hypothetical situation where we have a camera looking at a dice.  We start looking straight down at two dots.  Then, after a few seconds, the camera suddenly gets jerked around to the front and we are looking at 4 dots.  To smooth that camera motion, we would need to make it look like the camera movement was smooth between the two positions, however, we don't actually know the 3d geometry of the dice, we just know that it shifted relative to other things in the scene.  We can't simply apply some distortion to each frame, because half of our frames only show the 2 dots and half our frames only show the 4 dots.

Most image stabilization is limited to working with whatever detail is available in frame and warping and adjusting it (and in advanced cases, independently warping individual objects on screen).  We can shift the perspective of the image so it seems kind of like the camera is moving, but we'll still see the two dots until suddenly it changes to 4 dots.  The camera movement will feel a bit more smooth, but the perspective was telling us we were looking at half way between the side and the top while the number of dots shows us to be looking at the top.  This disjoint can't be fixed without synthesizing new data, which is super hard.

The best bet to avoid motion blur is to use the fastest possible shutter speed when capturing footage.  This will reduce the amount of motion blur present and help make stabilized footage look much better.  After the fact, it is exceedingly far more difficult to correct for.

For perspective, there isn't much you can do other than trying to limit the amount of changes in position of the camera.

There are some interesting bits of research by organizations like Microsoft Research (there is also an interesting tidbit they have here about what the currently available state of the art is) can build point clouds that can be used to correct for perspective issues if the video is complete enough, but such research is exceedingly ground breaking and mind numbingly complex, so you won't find it in the open source world yet (or even the commercial one quite yet.)


How to make a video presentation with a video of the slideshow and a video of me speaking in the corner? I am a teacher and I am trying to sync my slideshow presentation to a video of me speaking about the slideshow presentation. I'm trying to make it so that the presentation takes up most of the screen, and the recorded video of me speaking takes up a corner just outside of the slideshow area.

I have a Mac, so any suggestions with mac-based programs would be preferable.

Thanks

Preferable depends... But possibilities are for example: MacOS offers the App iMovie which is available with no further cost. For more professional video editing you can use e.g. Adobe Premiere or Final Cut, but then you need to pay and you need much more effort doing research to get familiar with it. To sync two videos and the iMovie App will be fine.


What parameters should I select to get a high quality voice .wav file? I'm trying to generate a high quality .wav voice-over using Microsoft Speech API. What should be the values of following parameters (they are part of this constructor):

int samplesPerSecond,
int bitsPerSample,
int channelCount,
int averageBytesPerSecond,
int blockAlign,

to guarantee high quality audio?

The .wav file will be used latter to feed FFmpeg, so audio will be re-encoded latter to a more compact form. My main goal is keep the voice as clear as I can, but I really don't know which values guarantee the best quality perceived by humans without waste resource for nothing.

A standard for WAV is 48K / 16 bit mono, or stereo if there's ambiance or presence you'd like to preserve. The last two parameters are a consequence of those choices and you can calculate them based on your selection. Then any compression you might apply afterward will have a good starting basis.

If all you're after is intelligibility, a lower sample rate may be just as good. 22K / 16 bit mono is good enough for many voice purposes. I personally wouldn't use a lower bit depth, but you can experiment with 8 bit to see if it's acceptable.