I used VLC to play what's supposed to be a video file, and it plays just a still image with sound; Before trashing it, I decided to open it in the Windows Media Player, and to my surprise I can see video and sound normally.
Next I used ffprobe and discovered the video file contains 3 streams, and VLC picks up the 1st (video) stream, which is just a mjpeg image! Whereas WMP picks up the 2nd (video) stream.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'mySupaDupaFile.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.33.100
Duration: 01:46:15.80, start: 0.000000, bitrate: 3191 kb/s
Stream #0:0[0x1](und): Video: mjpeg (Baseline) (mp4v / 0x7634706D), yuvj444p(pc, bt470bg/unknown/unknown), 749x972, 99348 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Stream #0:1[0x2](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 3101 kb/s, 25 fps, 25 tbr, 90k tbn
Stream #0:2[0x3](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 82 kb/s (default)
Looking at the ffprobe output, stream#0 is marked as (default). Does ffmpeg have a command that can unset (default) on stream-0, and set (default) on stream-1 ?
For now, I have just re-encoded into another file the h264 + aac streams, and discarded the mjpeg stream, but would like to know if it's possible just to change the default video stream ! (and more generally how to mark a stream as DEFAULT when there are multiple streams).