I have an issue of not being able to play a video that was processed by ffmpeg. I have 6 videos, each of different length but same frame rate that i merge (2 rows 3 columns). VLC player doesnt run it, using any other players return an error. Below is the code I used to combine the videos. I cant seem to find a solution on google / stackoverflow.
C:\Users\kong\Desktop\kong\atasets\nuscenes\sweeps\_video>ffmpeg -i frontleft.avi -i front.avi -i frontright.avi -i backleft.avi -i back.avi -i backright.avi -filter_complex "[0:v][1:v][2:v]hstack=3[top];[3:v][4:v][5:v]hstack=3[bottom];[top][bottom]vstack[v]" -map "[v]" output.avi
ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.1 (GCC) 20180722
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --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
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, avi, from 'frontleft.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:51.90, start: 0.000000, bitrate: 9475 kb/s
Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 9471 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
Input #1, avi, from 'front.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:45.00, start: 0.000000, bitrate: 7887 kb/s
Stream #1:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 7884 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
Input #2, avi, from 'frontright.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:44.20, start: 0.000000, bitrate: 8551 kb/s
Stream #2:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 8547 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
Input #3, avi, from 'backleft.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:11.05, start: 0.000000, bitrate: 9864 kb/s
Stream #3:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 9859 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
Input #4, avi, from 'back.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:17.95, start: 0.000000, bitrate: 7347 kb/s
Stream #4:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 7344 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
Input #5, avi, from 'backright.avi':
Metadata:
encoder : Lavf58.12.100
Duration: 00:15:46.30, start: 0.000000, bitrate: 8965 kb/s
Stream #5:0: Video: h264 (High) (H264 / 0x34363248), yuvj420p(pc, progressive), 1600x900 [SAR 1:1 DAR 16:9], 8961 kb/s, 20 fps, 20 tbr, 20 tbn, 40 tbc
File 'output.avi' already exists. Overwrite ? [y/N]
EDIT: It seems like this isn't a duplicate because all the solutions in the duplicate links do not work.
VLC works for me. yuvj420p pixel format, a 4800x1800 video size, and b-frames in AVI may be an issue (assuming you may encode to H.264). Try:
Change
[top][bottom]vstack[v]
to[top][bottom]vstack,scale=iw/3:-2,format=yuv420p[v] -bf 0
.