I'm having some trouble using lavfi within ffplay to apply filters.  I'm simply trying to pad one video, and overlay another video within the padded area.  My command and console output is as follows:  ffplay -f lavfi "movie=h:\test.mpg,pad=704:770:0:0[padded];movie=h:\test2.mpg[2];[padded][2]overlay=shortest=1:x=0:y=490[1]"  ffplay version N-69920-g8bc8001 Copyright (c) 2003-2015 the FFmpeg developers   built with gcc 4.9.2 (GCC)   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca -- enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis  --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable- libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab le-zlib   libavutil      54. 18.100 / 54. 18.100   libavcodec     56. 22.100 / 56. 22.100   libavformat    56. 22.100 / 56. 22.100   libavdevice    56.  4.100 / 56.  4.100   libavfilter     5. 11.100 /  5. 11.100   libswscale      3.  1.101 /  3.  1.101   libswresample   1.  1.100 /  1.  1.100   libpostproc    53.  3.100 / 53.  3.100 [Parsed_movie_0 @ 0000000000399480] Failed to avformat_open_input 'd' [lavfi @ 0000000000396a60] Error initializing filter 'movie' with args 'd:test.mpg' movie=d:\test.mpg,pad=704:770:0:0[padded];movie=d:\test2.mpg[2];[padded][2]overlay=shortest=1:x=0:y=490[1]: No such file or directory   To simplify things, I get the same error when I try and simplify the command dramatically to:  ffplay -f lavfi "movie=d:/test.mpg"   I'm hoping that I'm simply using the wrong syntax to specify the files location here within lavfi.
122734
I'm trying to watermark a video with another video placed in a different folder.  Source video [video.mov] is placed in a folder like   x:\test1\   Overlay video [overlay.mov] is placed in   x:\test2\   I'm using this command:  ffmpeg.exe -y -i x:\test1\video.mov -vf "movie=x:\test2\overlay.mov [watermark]; [in][watermark] overlay=0:0 [out]" x:\test3\video_overlay.mov   But I'm getting an error saying   Missing key or no key/value separator found after key 'test2overlay.mov'   When placing all files in the same folder and using this:  ffmpeg.exe -y -i video.mov -vf "movie=overlay.mov [watermark]; [in][watermark] overlay=0:0 [out]" video_overlay.mov   everything works fine.  So how do I get the video filter to load the overlay file from a different folder on Windows?
119952
I'm trying to write a command such that ffmpeg executes a given instruction for the first audio stream in a file and a different instruction for any and all others.  In the test case below, for example, I want the first stream copied to the output file and all others converted to mono.  If I write it this way  ffmpeg -i INPUT -map 0 -c copy -map 0:a:0 -c:a:0 copy -map -0:a:0? -c:a libfdk_aac -ac 1 OUTPUT   the first audio stream is ignored when the mapping is overridden later in the command line.  But if I move the instruction for that stream to after the others'  ffmpeg -i INPUT -map 0 -c copy -map -0:a:0? -c:a libfdk_aac -ac 1 -map 0:a:0 -c:a:0 copy OUTPUT   it's no longer ignored, but becomes the last audio stream in the file.  I know I'm close here; I just can't see what I'm doing wrong.
107344
I want to use a looped video clip as my webcam source in a Google+ Hangout. I installed v4l2loopback and created a . But I haven't figured out how to write the video frames to the device. The given  is:  gst-launch videotestsrc ! v4l2sink device=/dev/video1   So after reading the manual page for gst-launch and trying to understand what was going on, I made my feeble attempt:  sudo gst-launch-0.10 filesrc location=/home/briankb/Videos/darthvaderdancing.mp4 ! v4l2sink device=/dev/video0   Which resulted in:  Setting pipeline to PAUSED ... libv4l2: error getting pixformat: Invalid argument Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ...  (gst-launch-0.10:12622): GStreamer-CRITICAL **: gst_caps_get_structure: assertion `GST_IS_CAPS (caps)' failed New clock: GstSystemClock  (gst-launch-0.10:12622): GStreamer-CRITICAL **: gst_structure_get_name: assertion `structure != NULL' failed Caught SIGSEGV accessing address (nil) #0  0x00007fc1890f0b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6 #1  0x00007fc18962bff6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2  0x00007fc18962c45a in g_main_loop_run () #3  0x00007fc189b5c4cb in gst_bus_poll () #4  0x0000000000404587 in ?? () #5  0x0000000000403c34 in ?? () #6  0x00007fc18902b76d in __libc_start_main () #7  0x00000000004043bd in ?? () #8  0x00007fff88253ed8 in ?? () #9  0x000000000000001c in ?? () #10 0x0000000000000006 in ?? () #11 0x00007fff882548c4 in ?? () #12 0x00007fff882548d4 in ?? () #13 0x00007fff882548dc in ?? () #14 0x00007fff88254904 in ?? () #15 0x00007fff88254906 in ?? () #16 0x00007fff8825490f in ?? () #17 0x0000000000000000 in ?? () Spinning.  Please run 'gdb gst-launch 12622' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.   The clip I'm trying to use an h264 video at 29.97 fps, 320x240, and in an mp4 container (it's from Youtube).
64189
I was trying to extract one every N frames from a video using ffmpeg. I tried using this command: ffmpeg -i input.mp4 -vf "select=not(mod(n\,10))" 1_every_10/img_%03d.jpg  I wanted to verify that it is working as expected. So I extracted all frames using: ffmpeg -i input.mp4 -vf "select=not(mod(n\,1))" all/img_%03d.jpg  And then I tried to see if 2nd image from the first command matches image number 20 from the second command, and it didn't match. Confirmed both visually and using diff command like  diff all/img_020.jpg 1_every_10/img_002.jpg  Binary files all/img_020.jpg and 1_every_10/img_002.jpg differ  Anyone knows what could be going on? Thanks!
28376
No matter what changes i make to file associations (actions) in the 'Applications' tab in Firefox, they're totally ignored. For example, i set .wmv and .avi files to open with 'smplayer' but when i download a file and double-click on it (through the 'Downloads' window), it keeps opening with Totem player.    The default file associations through nautilus ('open with' tab) work fine, i.e. i've set smplayer as the default player and when i double-click a video file it open correctly.  I've tried to delete and recreate mimetypes.rdf but that didn't help.  Any ideas on what else should i check?
94950
I am wondering how to use ffmpeg to create video thumbnails something like this (taken from a VLC forum):  I know totem can do this but totem does not support the video format that I am using  says that ffmpeg can do it.
51048
I just installed Oibaf's graphics driver, on my laptop, and also Lutris (with Wine and all that) beacuse I want to play games like Diablo 3.  Everything worked fine, I also installed vulkan, and  The output of lshw -c video is :    *-display                     description: VGA compatible controller    product: HD Graphics 5500    vendor: Intel Corporation    physical id: 2    bus info: pci@0000:00:02.0    version: 09    width: 64 bits    clock: 33MHz    capabilities: msi pm vga_controller bus_master cap_list rom    configuration: driver=i915 latency=0    resources: irq:45 memory:d3000000-d3ffffff memory:c0000000-cfffffff ioport:7000(size=64) memory:c0000-dffff  *-display    description: Display controller    product: Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430]    vendor: Advanced Micro Devices, Inc. [AMD/ATI]    physical id: 0    bus info: pci@0000:0d:00.0    version: 83    width: 64 bits    clock: 33MHz    capabilities: pm pciexpress msi bus_master cap_list rom    configuration: driver=radeon latency=0    resources: irq:46 memory:b0000000-bfffffff memory:d5000000-d503ffff ioport:4000(size=256) memory:d5040000-d505ffff   My video card is AMD R5 M430, and the laptop is HP 250 G5  Also here is the output of lspci -k | grep -EA3 'VGA|Display|3D'  00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)         Subsystem: Hewlett-Packard Company HD Graphics 5500         Kernel driver in use: i915         Kernel modules: i915 -- 0d:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] (rev 83)         Subsystem: Hewlett-Packard Company Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520]         Kernel driver in use: radeon         Kernel modules: radeon, amdgpu
123399
How to import footage in VSE for optimal playback and organization, using proxies and workarounds?
88159
The conversion answers that I have seen on the web suggest using a -c option in the command line using FFmpeg.  However using Ubuntu 14.04 the -c option does not exist in FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.  Is there a newer version? If so how can I get it. Using apt-get it says that this is the newest version.
98978
I have been struggling with .mp4's for about 2 days now, trying to concatenate a series of about 20 into 1 single file. Any differences between the files and it is a nightmare. Some files have different fps, and others different ratios.  I wanted to know if mp4 is the format I should be using, or if there is a better, easy to use format for concatenation. Time isn't an issue, I simply need a relatively high-quality format that concatenates under most circumstances.  If this doesn't exist, any suggestions on how to deal with massively varying properties of mp4 files (I'm not entirely sure of what can differ aside from fps and ratio between videos that may cause a problem) would be great.  I am using ffmpeg to try and concatenate the files. First I tried to use the demuxer, and then the concat filter, however I find the concat filter very daunting and am completely at a loss as to how to use it.  Each video has audio, some have still images while others have moving.
54504
I'm trying to blur a portion of a video using FFmpeg (specifically to blur a face).  I have been trying to use a combination of timeline editing and the various bluring filters, but I cannot find a way to blur only a section of the video.  I'm hoping for something like:  -vf boxblur=enable='between(t,10,100)':width=20:height=20:x=400:y=200   Where width/height is size of blurred box and x/y are location of blurred box.  Is something like this possible?
110199
Is it possible to use subtitles from an external file while converting a video with FFmpeg? The file extension of the subtitles is .stl or .vob.
84477
I would like to scale a watermark to 5% of the video width.  I need something like that:  ffmpeg -i 1.mp4 -i logo.png -filter_complex "[1:v] scale=1_MP4_VIDEO_WIDTH*0.05:-1 [logo1]; [0:v][logo1] overlay=0:0" -y -b 1600k -c:v libx264 -profile high -level 4.1 -c:a libfaac -q:a 128k 2.mp4   How can I reference the video width?
13957
According the the , h.264 video should now be working in Linux.  It does also say the appropriate gstreamer plug-ins need to be installed.  Does anyone know what these are?    I used this  and the  to verify that h.264 support works in Google Chrome on my Ubuntu 12.04 64-bit, but does not work on Firefox 26.
24309
I have many video files (flv/mp4) that change resolution mid-stream (720p/1080p/640).    I would like to use something like ffmpeg to automatically detect the change in resolution and split the videos into their individual scenes, keeping their existing encoding quality: segment without re-encoding (Video1-scene1.flv, Video1-scene2.flv, etc).  I have found various methods to split upon silence, upon scene change, upon black scenes, but nothing as simple as a change in resolution width.   These files often cause video editors/trimmers to crash, and manually identifying and removing low resolution scenes is very time consuming if I simply convert the entire video to 1080p.  The algorithm is probably as simple as comparing the current frame to the previous frame, and if they are different resolutions, split the video and start a new segment.  Can anyone help please?  EXAMPLE FILE (temporarily available):   Below are a few related answers:          Additional Resources: Using Lord Neckbeard's solution, I am attaching the (unfortunately very manual) process that I eventually got to work on Windows10. Perhaps it can spawn other ideas around ffmpeg. (I posted a separate question for anyone who is GURU enough to: )  drag video onto a batch file that contains:     ffprobe -v error -show_entries frame=pkt_pts_time,width,height -select_streams v -of csv=p=0 %1 > allkeyframes.txt    (allkeyframes.txt sample...)  13.652000,640,480 13.755000,640,480 13.597000,480,360 13.652000,480,360   paste this text in POWERSHELL:  $o="" $n=0 foreach($line in (Get-Content allkeyframes.txt)){   $nline = $line.Split(",")   $nline2=($nline[1]+$nline[2])   if ($nline2 -ne $preventry) {     $n0=$nline[0]     $o="$o,$n0"     $n=$n0 }   $preventry = $nline2 } if ($o.length -gt 1){ echo $o.Remove(0,1) &gt; resolutionchanges.txt } else { Write-Host "No resolution changes found" -ForegroundColor Red }   (resolutionchanges.txt:)  13.597000,25.618000,33.628000,45.598000   enter the following in the command window, after pasting contents of resolutionchanges.txt and changing "input.flv" to the video name (Win10 refused my attempts at batching this):     ffmpeg -i input.flv -map 0 -c copy -segment_times 13.597000,25.618000,33.628000,45.598000 -reset_timestamps 1 -f segment output_%03d.flv
28360
I have just compiled my own copy of ffmpeg on my system and it's located in the following path:  /opt/local/bin/ffmpeg   When I run the following command in Terminal.app, it runs smooth:  ffmpeg -i /Users/Amit/Documents/input.avi -c:v copy -c:a aac -b:a 384k -strict -2 /Users/Amit/Documents/output.m4v   However, a similar command run as a shell-script in an Automator service fails:  for f in "$@" do     ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v" done   Up until now, I had a pre-compiled build of ffmpeg on my system located at:  /Applications/Scriptlets/   And my Automator shell-script had the full path (/Applications/Scriptlets/ffmpeg) instead of just ffmpeg; and it worked fine. However, today I decided to compile a fresh copy of ffmpeg using MacPorts and removed the earlier version from my Applications/Scriptlets folder. Now, this ffmpeg works fine in Terminal but gives an error whenever I try running it from a shell-script inside of an Automator workflow. Am I doing something wrong here? Please help!
95486
I am using ffmpeg to get the meta info of an audio clip. But I am unable to grep it.      $ ffmpeg -i 01-Daemon.mp3  |grep -i Duration     FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al.       configuration: --prefix=/usr --bindir=/usr/bin        --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib       --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2        ...   I checked, this ffmpeg output is directed to stderr.  $ ffmpeg -i 01-Daemon.mp3 2&gt; /dev/null   So I think that grep is unable to read error stream to catch matching lines. How can we enable grep to read error stream?  Using  link, I redirected standard error stream to standard output stream, then grep worked.  $ ffmpeg -i 01-Daemon.mp3 2&gt;&amp;1 | grep -i Duration   Duration: 01:15:12.33, start: 0.000000, bitrate: 64 kb/s   But what if we do not want to redirect stderr to stdout?