App to join all the recorded videos automatically from 1 folder

Can we please have an app that will auto join all videos in 1 folder? I am talking about the videos that are recorded on the SD card, when you have recording set to ON.

I would like to archive some of the footage, but have 1 video for the whole 24 hours (for the day).

Manually doing this takes so so long, can we please have a utility that joins the videos please!!!

I have tried to use ffmpeg unsuccessfully, based on a tutorial i found on youtube.

First to create a list of all the files in the folder:
(for %i in (*.mp4) do @echo file ‘%i’) > mylist.txt

then to join them using:
ffmpeg -f concat -i mylist.txt -c copy all.mp4

However this throws errors.

ffmpeg version N-54707-gaac57c7 Copyright © 2000-2013 the FFmpeg developers
built on Jul 13 2013 18:07:04 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 39.100 / 52. 39.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.102 / 55. 12.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 80.101 / 3. 80.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
[concat @ 00000000047cc7c0] Estimating duration from bitrate, this may be inaccurate
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, concat, from ‘mylist.txt’:
Duration: 00:00:00.01, start: 0.000000, bitrate: 830 kb/s
Stream #0:0: Audio: pcm_alaw (alaw / 0x77616C61), 8000 Hz, mono, s16, 64 kb/s
Stream #0:1: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 766 kb/s, 10 fps, 10 tbr, 90k tbn, 20 tbc
File ‘00all.mp4’ already exists. Overwrite ? [y/N] y
[mp4 @ 0000000004683800] track 1: could not find tag, codec not currently supported in container
Output #0, mp4, to ‘00all.mp4’:
Metadata:
encoder : Lavf55.12.102
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1920x1080, q=2-31, 766 kb/s, 10 fps, 90k tbn, 90k tbc
Stream #0:1: Audio: pcm_alaw (alaw / 0x77616C61), 8000 Hz, mono, 64 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Error number -1 occurred

C:\Users\cpt\Downloads\Baby\20190202\00>ffmpeg -f concat -i mylist.txt -c copy 00all.mp4
ffmpeg version N-93069-g6dc06e979c Copyright © 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181201
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 46.100 / 58. 46.100
libavformat 58. 26.100 / 58. 26.100
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001f8e5263680] Auto-inserting h264_mp4toannexb bitstream filter
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, concat, from ‘mylist.txt’:
Duration: N/A, start: 0.000000, bitrate: 830 kb/s
Stream #0:0(und): Audio: pcm_alaw (alaw / 0x77616C61), 8000 Hz, mono, s16, 64 kb/s
Metadata:
creation_time : 2019-02-02T05:00:03.000000Z
Stream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 766 kb/s, 10 fps, 10 tbr, 90k tbn, 20 tbc
Metadata:
creation_time : 2019-02-02T05:00:03.000000Z
encoder : JVT/AVC Coding
[mp4 @ 000001f8e5830040] Could not find tag for codec pcm_alaw in stream #1, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (copy)
Last message repeated 1 times

I am very frustrated here, basically these 1 minute recordings are useless if I can’t just join them into 1 hour or 24 hour video. What gives, how hard is it to provide this functionality, having to do this manually takes hours…

If you don’t get an answer here, I highly recommend finding a forum that is meant for supporting the ffmpeg utility.

Yeah thanks, I was hoping Wyze would say we are working on a small utility that can do that, but fat chance. The 1min videos are a huge PITA if you ever want a video for the day, or for the hour, or part of the day… very very impractical w/o some app to merge them…

I used Windows Movie Maker to join a few clips together. It still had that jerky movement in the first few seconds of each minute, but I think that may be in the original 1 minute clips.

1 Like

For Mac users, after copying the video files from the card to your Mac:

  1. Double click the first file which will open it in Quicktime Player.

  2. Drag and drop the remaining files onto the Quicktime window.

  3. You will see all the clips arranged on the bottom of the window like this:

  1. Close the Quicktime window and save the combined video when asked, or use File > Export.

  2. Go get a cup of coffee… it may take a while to save the new file. It’s faster if you export at lower resolution. I recommend not trying to do more than an hour at a time.

Bonus hint: when playing back the combined video in Quicktime Player, you can use the K/J keys on the keyboard to rev/ffwd at 2x, 5x, 10x or 30x.

Now if only we had a way to directly download the files from the mSD card without removing the card from the camera. Vote here:

1 Like

These solutions are exhausting; sure, if you want to join 2 videos, it’s great, if your camera is always recording, and you want to combine the videos so you have a video for each hour of the day, this takes hours and hours to do.

Can we have an option in the app where if recording locally we can set the time it records, like a minute video, or an hour video, etc.

If Wyze provided an option to record to push the video to FTP or NAS with option to record an hour at a time, this would be really great, as it is, it’s highly impractical.

For the record, the two commands work to combine all minute videos to an hour; however this is very manual… ugh

(for %i in (*.mp4) do @echo file ‘%i’) > mylist.txt
ffmpeg.exe -safe 0 -f concat -i mylist.txt -c copy all.mkv

Note that I am pushing it to MKV, not MP4 container; after a bit of search I found out that it was throwing errors for the following reason: For whatever reason, the encoder (PCM ALAW) that Wyze chose to use for the Audio part is not supported in the mp4 container by ffmpeg.

Nice find on the mkv container. I had the same issue but ended up re-encoding the audio, which is a bit slower but still pretty zippy:

ffmpeg -f concat -i files.lst -c:v copy -c:a aac combined.mp4

I’m basically creating a 12hr MKV file of my son in his crib, or moving about.

The only thing I would like to be able to do better, is to have a higher level script (that calls the other stuff), which I can run in a top folder.

like if the folder is called crib and has

\crib\20190417
\crib\20190416
etcc

I want the script to go into each folder, do a lookup of what subfolders are in there, and use that in the script so at the end, the folder crib will have 20190417.mkv, 20190416.mkv, etc…

Each week or so I manually dump the mSD card to my laptop and need to spend 1hr+ doing part of this stuff manually…

I basically put together the stuff I have so far from code I found doing google searches…

If all the playable files are in a folder, you can pass that folder to VLC and it will play them one after another.

I could write this for a bash (linux / OS X) environment, but I don’t know windows shell scripting. But I’ll go on.

To combine all videos for a given day across all hour subfolders, you can just create one big list (unless you want the hour-long files too)

for folder in $(ls); do ls $folder/*.mp4; done > today.lst
ffmpeg -f concat -i today.lst -c copy today.mkv

Actually it should work to just ls /.mp4 (again, at least in bash)

ls */*.mp4 > today.lst
ffmpeg -f concat -i today.lst -c copy today.mkv

You can save that as a script to call from another script or just embed it to do this for multiple days. The following is run from the crib folder. Something like this – warning: untested.

for day in $(ls); do
  # don't execute loop if it doesn't look like a day folder
  ls $day/*/*.mp4 || continue
  # skip if we already have this day's file
  [ -f $day.mkv ] && continue
  # concat day into one video
  echo "Compiling $day..."
  ls $day/*/*.mp4 > $day.lst
  ffmpeg -nostats -f concat -i $day.lst -c copy $day.mkv
done
echo "Done"

I use this for joining my Drone videos - and a quick test shows that it seems to work with Wyze files OK

https://www.mp4joiner.org/en/

Thanks for the input, I am not a programmer, the stuff I came up with was using sources I found searching online and trial and error :slight_smile: I am even less familiar with OSx/Linux scripting. I just wish Wyze would create a small app that one could point to a folder in Windows and come up with 1 big MP4/MKV file from whatever subfolders exist.

Yes, you could join files with a number of apps, but they just don’t work when you have over 1,000 files to join. Those programs are great for 4,5, 10 files… Joining a week’s worth of 1 minute videos is insane to have to do it manually.