Hot answers tagged

43

Add the yadif filter i.e. ffmpeg -i input.vob -vf yadif -c:v libx264 -preset slow -crf 19 -c:a aac -b:a 256k output.mp4 See yadif docs for more info.


17

You could possibly use the curves filter. It has a lighter preset: ffmpeg -i input -vf curves=preset=lighter -c:a copy output The red, green, and blue components can be adjusted separately. The following is the same as what the lighter preset uses: curves=r='0.4/0.5':g='0.4/0.5':b='0.4/0.5' Additionally you can make your own curves preset in Photoshop, ...


8

Those are interlacing artifacts. They become visible when the motion in the video is faster than the field rate, so that when both fields are combined into a progressive scan image, the movement is visible in a single frame. They can be removed with a de-interlace filter. I've never personally used one with Virtualdub, but several are available: MSU Smart ...


7

Here's the details on what the presets do: [PRESET_COLOR_NEGATIVE] = { "0/1 0.129/1 0.466/0.498 0.725/0 1/0", "0/1 0.109/1 0.301/0.498 0.517/0 1/0", "0/1 0.098/1 0.235/0.498 0.423/0 1/0", }, [PRESET_CROSS_PROCESS] = { "0.25/0.156 0.501/0.501 0.686/0.745", "0.25/0.188 0.38/0.501 0.745/0.815 1/0.815", "0.231/0.094 0.709/0.874", }, [...


7

I found a helpful post on stackoverflow that addresses this issue: https://stackoverflow.com/a/21400416/377875 Apparently, it's a problem with color space. Something like this works: ffmpeg -i "$1" -i "$2" \ -filter_complex "[1:0] setsar=sar=1,format=rgba [1sared]; [0:0]format=rgba [0rgbd]; [0rgbd][1sared]blend=all_mode='addition':repeatlast=1:all_opacity=...


5

Do In order to draw Timestamp: 01:25., you should specify this one to (feed) ffmpeg: drawtext = text = 'Timestamp\: %{pts\:gmtime\:0\:%M\\\:%S}.' Don't If you specify this one to (feed) ffmpeg: drawtext = text = '%{pts\:gmtime\:0\:%M\\:%S}' , it gives Unterminated %{} near '{pts:gmtime:0:%M\' error. But in bash But if you're using bash-like shell and ...


4

I have not seen any movie that used any onset technqiuqes for this look. Of course you want the lighting to give away a certain mood to begin with but there are no special filters needed. For the post production workflow, there is a great plugin for several video tools like After Effects, Premiere and Final Cut from Red Giant called Mojo that makes it ...


4

FFMPEG doesn't really have the tools to do motion detection out of the box. You can certainly do the cropping using the crop filter: -vf crop=w:h:x:y where w:h is the size of your cropped area and x:y its coordinates in the original image. So your ffmpeg script might look like: ffmpeg -i input.avi -c:v libx264 -crf 20 -vf crop=123:45:67:89 output.mp4 Then ...


4

Your command is missing double quotes around the filter definition : ffmpeg -i input.mp4 -vf "delogo=x=270:y=190:w=40:h=40" -c:a copy output.mp4 (as explained in FFmpeg filters documentation) Nevertheless, this filter will decode and re-encode your video stream.


4

Split using -f segment -segment_time 10 and end with 360a-a%03d.mp4. Then create a text file with one entry on each line like file '360a-a001.mp4, interleaving the entries in the correct order. Then join using -f concat -i text.txt and also with -fflags +genpts -async 1 The -fflags +genpts -async 1 is necessary to ensure that the concatenated audio segments ...


4

Use this: ffmpeg -i input.mp4 -filter_complex \ "[0:v]crop='if(gte(iw,ih),ih,iw):if(gte(ih,iw),iw,ih)',scale=720x720,split=3[1v][2v][3v]; \ [1v]trim=0:4.95,setpts=PTS-STARTPTS[v1]; \ [2v]trim=4.95:6.75,setpts=(PTS-STARTPTS)/0.1[v2]; \ [3v]trim=6.75:8,setpts=PTS-STARTPTS[v3]; \ [v1][v2][v3]concat=n=3:v=1:a=0[out]" \ -map [out] -an -c:v libx264 -profile:...


4

It's possible to have the black frames removed and earlier frames duplicated. ffmpeg -i in.mp4 -vf blackframe=0,metadata=select:key=lavfi.blackframe.pblack:value=50:function=less -vsync cfr -c:a copy out.mp4 The blackframe filter analyses and registers the proportion of a frame's pixels which are black. The metadata filter keeps all frames which have at ...


3

Found. Caca library is driven mostly by environment variables rather than filter params. export CACA_GEOMETRY=200x78 mplayer -vo caca $INPUT


3

You can skip that first frame during the computation process. ffmpeg -y -i "720p50_mobcal_ter.avi" -i "720p50_mobcal_ter.mpg" -filter_complex "[1:v]trim=start_frame=1,setpts=PTS-STARTPTS[cut];[0:v][cut]blend=all_mode=difference,hue=s=0" -c:v libx264 -crf 18 -c:a copy "differences.mpg" Edit: as requested, added the commands I used to reproduce the behaviour ...


3

Use the concat demuxer instead: Create a text file of the following format file 'C:\source.mp4' inpoint 0 duration 1 file 'C:\source.mp4' inpoint 3 duration 1 file 'C:\source.mp4' inpoint 6 duration 1 file 'C:\source.mp4' inpoint 9 duration 1 Then run ffmpeg -f concat -i file.txt -map 0:v -map 0:a? -vcodec h264 -acodec aac -pix_fmt yuv420p -strict -2 -...


3

Enclose the time argument in single quotes and escape the colons within. So, afade=t=out:curve=hsin:st='00\:0\:30':d='00\:00\:10'


3

As you say, noise by definition doesn't compress well. You can try different types of noise in FCP. The Add Noise filter has several choices - Gaussian is a reasonable simulation of film grain, but you can try the other choices, too. They might compress better (or worse). But your best bet is to increase the data rate of the resulting file. I don't know ...


3

More Light You're seeing noise for two reasons. One is the tiny sensor of your webcam, but since you don't want to buy a new one right now, you can't do anything about that. However, the sensor size is only an amplifying factor of the real problem: Not enough light. Webcams are built for video chats, quick and dirty recordings, not really for high-quality ...


3

Use text='timestamp \: %{pts\:gmtime\:0\:%H\\\:%M\\\:%S}'


3

The default pixel format for testsrc filter is rgb24, which gets converted to yuv444p for encoding to H264. The default pixel format for color is yuv420p, which is kept as-is. The blend filter requires both inputs to have the same pixel format, and will, where possible, convert the pixel format of the 2nd input to match that of the first. When red.mp4 is ...


2

Like you suggested yourself you might want to use FFmpeg instead. It can utilize x264 as well which is the library that Handbrake is using for encoding. While x264 itself can do some very limited color correction via color space conversion (which can be used in the Handbrake CLI) I wouldn't recommend it if you want advanced manipulation of the video look. ...


2

The standard way to deal with this is to use color calibration. Unfortunately, color accuracy on consumer devices tends to be all over the charts. There is no way to guarantee that the color will be similar, even on multiple of the same model of device, or even on the same exact device over time. Thus, the best practice is to setup a color calibrated ...


2

Ok, after a research I found the solution. Watch this tutorial. At a glance: Create Adobe After Effects project. Add "Channel set" effect. Duplicate layer 3 times. Adjust each layer to show only one channel (Red/Green/Blue). Set Blending Mode as Screen. Add transformation for each layer. Play with rotation/scale. Voila! Check my example. Original ...


2

To add onto what Professor Sparkles said and to give more of a specific answer to your question, I believe this is done entirely in post (but I could be wrong because I have no experience on set). If anything, one could definitely reproduce this (or very close to it) in post by performing a few things: Remove Noise Balance your R,B,G channels Juice the ...


2

This command, which used t reference for aselect, worked for me: ffmpeg -i AV36_1.avi -vf "select=between(n\,200\,399),setpts=PTS-STARTPTS" -af "aselect=between(t\,(200/15)\,(399/15)),asetpts=PTS-STARTPTS" -y test.mkv If you want to use n (frames), then you will need to know the frame size of the audio codec e.g. 1024 samples for AAC, variable for MP3..etc


2

I did solved this with " " "subtitles=subtitle.srt:force_style='FontName=ubuntu,Fontsize=30'"


2

You're better off using the tile filter for this: ffmpeg -i INPUT.mov -vf fps=1,scale=192:108,tile=54x1 output.jpg The tile argument is the size of a rectangle. So for a 54 second video, 54x1 produces a horizontal stack of 54 frames. Use 1x54 for a vertical stack.


2

The lut filter expressions don't work with time. geq does. geq=r='(1-0.7*min((T-S)/D,1))*p(X,Y)':g={the same as r}:b={the same}:enable='gte(t,S)' S should be your start time in second. D is duration for the change in colours. T and p(X,Y) are variables and should be kept as is.


2

The answer to your second question is yes. Change -c:v libx264 to -c:v h264_nvenc. I use those builds as well. If you use the option -encoders you can see a list of included video and audio codecs. This is a good resource for encoding with FFMPEG. See the warning on this question if you try this


Only top voted, non community-wiki answers of a minimum length are eligible