Search code examples
ffmpegmp4video-encoding

The .mp4 video does not play, which is created from ffmpeg library (not command line)


I use ffmpeg library to encode frames to a .mp4 video. The program runs smoothly without error. But the output .mp4 video does not play. Properties of the file does not even show it is a video file, no any information of video stream.

The related code is:

const char* ouVideoFileName = "output.mp4";
AVCodecID ouCodec_id = CODEC_ID_H264;

But if I change it to:

const char* ouVideoFileName = "output.avi";
AVCodecID ouCodec_id = CODEC_ID_H264;

The .avi video plays correctly.

What's wrong with .mp4 video?


Solution

  • I previously followed the example of decoding_encoding.c in FFmpeg documentation. Later on, I followed the example of muxing.c, now it works!