Multiple Glob Inputs

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Multiple Glob Inputs

James Tan
Hi all,

I'm trying to make a time lapse video from multiple image directories. I'm
trying to do this with glob in this manner:

ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
-pattern_type glob -i 'Burst Sequence 5/*.JPG' \
-pattern_type glob -i 'Burst Sequence 6/*.JPG' \
-r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4

but it only reads in the first directory. I've tried various concat methods
using a text file containing a list of the folders and image file name
pattern, but also haven't gotten it to work. Does anyone know how to do
this without just creating a massive list of all the image files?

Best,
James
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

Carl Eugen Hoyos-2
Am Di., 15. Okt. 2019 um 00:06 Uhr schrieb James Tan <[hidden email]>:

> I'm trying to make a time lapse video from multiple image directories. I'm
> trying to do this with glob in this manner:
>
> ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
> -pattern_type glob -i 'Burst Sequence 5/*.JPG' \
> -pattern_type glob -i 'Burst Sequence 6/*.JPG' \
> -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4

(Complete, uncut console output missing.)

> but it only reads in the first directory.

That's unlikely. Is it possible that you are trying to concatenate
different inputs which is not the default behaviour?

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

James Tan
The inputs are all images which have the same resolution, are taken from
the same GoPro, etc. If I manually move all the images to one folder, it
easily concatenates them all and does what I want. I can also do

ffmpeg -pattern_type glob -i '*/*.JPG' \
-r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4

which does concatenate them all, but this actually puts Burst Sequence 5
and 6 before Time Lapse 11 because of alphabetical order I assume.

On Mon, Oct 14, 2019 at 3:22 PM Carl Eugen Hoyos <[hidden email]> wrote:

> Am Di., 15. Okt. 2019 um 00:06 Uhr schrieb James Tan <[hidden email]>:
>
> > I'm trying to make a time lapse video from multiple image directories.
> I'm
> > trying to do this with glob in this manner:
> >
> > ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
> > -pattern_type glob -i 'Burst Sequence 5/*.JPG' \
> > -pattern_type glob -i 'Burst Sequence 6/*.JPG' \
> > -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4
>
> (Complete, uncut console output missing.)
>
> > but it only reads in the first directory.
>
> That's unlikely. Is it possible that you are trying to concatenate
> different inputs which is not the default behaviour?
>
> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

James Tan
Sorry here's the console output. So you can see the three threads with
durations of 8.28s, .88s, and .68s, but the final result is only 8.33s. In
addition, the video where I just put all the images in the same folder has
duration 9.92s.

ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
> -pattern_type glob -i 'Burst Sequence 5/*.JPG' \
> -pattern_type glob -i 'Burst Sequence 6/*.JPG' \
> -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared
--enable-pthreads --enable-version3 --enable-hardcoded-tables
--enable-avresample --cc=clang
--host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin'
--host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus
--enable-librubberband --enable-libsnappy --enable-libtesseract
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig
--enable-libfreetype --enable-frei0r --enable-libass
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack
--disable-indev=jack --enable-libaom --enable-libsoxr
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, image2, from 'Time Lapse 11/*.JPG':
  Duration: 00:00:08.28, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown),
4000x3000, 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #1, image2, from 'Burst Sequence 5/*.JPG':
  Duration: 00:00:00.88, start: 0.000000, bitrate: N/A
    Stream #1:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown),
4000x3000, 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #2, image2, from 'Burst Sequence 6/*.JPG':
  Duration: 00:00:00.68, start: 0.000000, bitrate: N/A
    Stream #2:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown),
4000x3000, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'tl11_fast.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x107f0b000] deprecated pixel format used, make sure you did
set range correctly
[libx264 @ 0x7f7f77803200] using cpu capabilities: MMX2 SSE2Fast SSSE3
SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f7f77803200] profile High, level 6.0
[libx264 @ 0x7f7f77803200] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options:
cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1
psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12
lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=24
scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=23.0
qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'tl11_fast.mp4':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p,
4000x3000, q=-1--1, 24 fps, 12288 tbn, 24 tbc
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[image2 @ 0x7f7f76000a00] Thread message queue blocking; consider raising
the thread_queue_size option (current value: 8)
[image2 @ 0x7f7f78000000] Thread message queue blocking; consider raising
the thread_queue_size option (current value: 8)
[image2 @ 0x7f7f78000600] Thread message queue blocking; consider raising
the thread_queue_size option (current value: 8)
frame=  200 fps=3.6 q=-1.0 Lsize=   43124kB time=00:00:08.20
bitrate=43038.0kbits/s dup=0 drop=7 speed=0.147x
video:43121kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.007621%
[libx264 @ 0x7f7f77803200] frame I:12    Avg QP:21.04  size:525149
[libx264 @ 0x7f7f77803200] frame P:89    Avg QP:23.66  size:231955
[libx264 @ 0x7f7f77803200] frame B:99    Avg QP:23.79  size:173832
[libx264 @ 0x7f7f77803200] consecutive B-frames: 32.5%  3.0%  4.5% 60.0%
[libx264 @ 0x7f7f77803200] mb I  I16..4:  5.6% 89.4%  5.0%
[libx264 @ 0x7f7f77803200] mb P  I16..4:  4.1% 23.3%  2.5%  P16..4: 45.1%
 6.3%  3.9%  0.0%  0.0%    skip:14.9%
[libx264 @ 0x7f7f77803200] mb B  I16..4: 11.7% 37.1%  0.4%  B16..8: 17.2%
 5.2%  0.2%  direct:15.7%  skip:12.3%  L0:41.2% L1:41.3% BI:17.5%
[libx264 @ 0x7f7f77803200] 8x8 transform intra:78.0% inter:72.4%
[libx264 @ 0x7f7f77803200] coded y,uvDC,uvAC intra: 51.7% 31.0% 0.4% inter:
28.1% 41.6% 0.0%
[libx264 @ 0x7f7f77803200] i16 v,h,dc,p: 25% 23% 25% 26%
[libx264 @ 0x7f7f77803200] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 17% 41%  5%
 4%  4%  5%  4%  7%
[libx264 @ 0x7f7f77803200] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 22% 21%  8%
 8%  5%  8%  4%  9%
[libx264 @ 0x7f7f77803200] i8c dc,h,v,p: 62% 22% 15%  1%
[libx264 @ 0x7f7f77803200] Weighted P-Frames: Y:1.1% UV:1.1%
[libx264 @ 0x7f7f77803200] ref P L0: 69.8% 30.2%
[libx264 @ 0x7f7f77803200] ref B L0: 86.4% 13.6%
[libx264 @ 0x7f7f77803200] ref B L1: 95.3%  4.7%
[libx264 @ 0x7f7f77803200] kb/s:42388.97


ffprobe tl11_fast.mp4
ffprobe version 4.1.3 Copyright (c) 2007-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared
--enable-pthreads --enable-version3 --enable-hardcoded-tables
--enable-avresample --cc=clang
--host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin'
--host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus
--enable-librubberband --enable-libsnappy --enable-libtesseract
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig
--enable-libfreetype --enable-frei0r --enable-libass
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack
--disable-indev=jack --enable-libaom --enable-libsoxr
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tl11_fast.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:08.33, start: 0.000000, bitrate: 42389 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
4000x3000, 42389 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler

On Mon, Oct 14, 2019 at 4:19 PM James Tan <[hidden email]> wrote:

> The inputs are all images which have the same resolution, are taken from
> the same GoPro, etc. If I manually move all the images to one folder, it
> easily concatenates them all and does what I want. I can also do
>
> ffmpeg -pattern_type glob -i '*/*.JPG' \
> -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4
>
> which does concatenate them all, but this actually puts Burst Sequence 5
> and 6 before Time Lapse 11 because of alphabetical order I assume.
>
> On Mon, Oct 14, 2019 at 3:22 PM Carl Eugen Hoyos <[hidden email]>
> wrote:
>
>> Am Di., 15. Okt. 2019 um 00:06 Uhr schrieb James Tan <[hidden email]>:
>>
>> > I'm trying to make a time lapse video from multiple image directories.
>> I'm
>> > trying to do this with glob in this manner:
>> >
>> > ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
>> > -pattern_type glob -i 'Burst Sequence 5/*.JPG' \
>> > -pattern_type glob -i 'Burst Sequence 6/*.JPG' \
>> > -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4
>>
>> (Complete, uncut console output missing.)
>>
>> > but it only reads in the first directory.
>>
>> That's unlikely. Is it possible that you are trying to concatenate
>> different inputs which is not the default behaviour?
>>
>> Carl Eugen
>> _______________________________________________
>> ffmpeg-user mailing list
>> [hidden email]
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> [hidden email] with subject "unsubscribe".
>
>
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

Carl Eugen Hoyos-2
In reply to this post by James Tan
Am Di., 15. Okt. 2019 um 01:20 Uhr schrieb James Tan <[hidden email]>:
>
> The inputs are all images which have the same resolution, are taken from
> the same GoPro, etc. If I manually move all the images to one folder, it
> easily concatenates them all and does what I want. I can also do
>
> ffmpeg -pattern_type glob -i '*/*.JPG' \
> -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4

This command uses one input (one "-i" option) that does not need
concatenation...

> which does concatenate them all, but this actually puts Burst Sequence 5
> and 6 before Time Lapse 11 because of alphabetical order I assume.

... but as you found out glob has its disadvantages, use numbering instead.

Please do not top-post here, Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

Carl Eugen Hoyos-2
In reply to this post by James Tan
Am Di., 15. Okt. 2019 um 01:27 Uhr schrieb James Tan <[hidden email]>:

>
> Sorry here's the console output. So you can see the three threads with
> durations of 8.28s, .88s, and .68s, but the final result is only 8.33s. In
> addition, the video where I just put all the images in the same folder has
> duration 9.92s.
>
> ffmpeg -pattern_type glob -i 'Time Lapse 11/*.JPG' \
> > -pattern_type glob -i 'Burst Sequence 5/*.JPG' \
> > -pattern_type glob -i 'Burst Sequence 6/*.JPG' \
> > -r 24 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p tl11_fast.mp4

(The output option "-r" is not what you want, use the input option
"-framerate" instead.)

This command has three inputs (three times "-i"), ffmpeg does not
concatenate the three inputs.

> ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers

Please remember that only current FFmpeg git head is supported on
this mailing list (but the behaviour should be identical for all versions
of FFmpeg, past and future).

A concat filter exists, but I suspect the concat demuxer (that works
differently and does not use glob) is what you need.
https://ffmpeg.org/ffmpeg-filters.html#concat
https://ffmpeg.org/ffmpeg-formats.html#concat-1

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

James Tan
In reply to this post by Carl Eugen Hoyos-2
>
> A concat filter exists, but I suspect the concat demuxer (that works
> differently and does not use glob) is what you need.
> https://ffmpeg.org/ffmpeg-filters.html#concat
> https://ffmpeg.org/ffmpeg-formats.html#concat-1


Ah so basically you're saying you don't think there is a way to concatenate
with glob, and I should just do it with numbering? I was able to run a
shell script to make a list of all images used, something like this.

#! /bin/bash

# with a bash for loop
for f in ./Time\ Lapse\ 11/*.JPG; do echo "file '$f'" >> mylist.txt; done
for f in ./Burst\ Sequence\ 5/*.JPG; do echo "file '$f'" >> mylist.txt; done
for f in ./Burst\ Sequence\ 6/*.JPG; do echo "file '$f'" >> mylist.txt; done

But I was wondering if there was also a way to add start number to a file
list. I was hoping something like this might be possible?

ffmpeg -f concat -safe 0 -i mylist.txt \
-c:v libx264  -pix_fmt yuv420p -r 24 -crf 23 -preset fast -y output.mp4

where mylist.txt looks like

-start_number 0152396 file './Time Lapse 11/G%07d.JPG'
-start_number 0162603 file './Burst Sequence 5/G%07d.JPG'
-start_number 0172625 file './Burst Sequence 6/G%07d.JPG'

This obviously hasn't worked yet, and just writing all the filenames to
mylist.txt does work, but I was just wondering for curiosity's sake. Thank
you!
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

Nicolas George
James Tan (12019-10-15):
> But I was wondering if there was also a way to add start number to a file
> list. I was hoping something like this might be possible?

No, options to individual files are not supported. A patch to support
that would be appreciated, though, if it does it cleanly.

Regards,

--
  Nicolas George

_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multiple Glob Inputs

Carl Eugen Hoyos-2
In reply to this post by James Tan
Am Di., 15. Okt. 2019 um 20:19 Uhr schrieb James Tan <[hidden email]>:

>
> >
> > A concat filter exists, but I suspect the concat demuxer (that works
> > differently and does not use glob) is what you need.
> > https://ffmpeg.org/ffmpeg-filters.html#concat
> > https://ffmpeg.org/ffmpeg-formats.html#concat-1
>
>
> Ah so basically you're saying you don't think there is a way to
> concatenate with glob

No, I would expect the concat filter to work fine but I believe
all other options are simpler in your case.
(concat demuxer or reordering with symlinks for the image2 demuxer)

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".