3
votes

I encode h264 data by libavcodec. ex.

while (1) {
  ...
  avcodec_encode_video(pEnc->pCtx, OutBuf, ENC_OUTSIZE, pEnc->pYUVFrame);
  ...
}

If I directly save OutBuf data as a .264 file, it can`t be play by player. Now I want to save OutBuf

as a mp4 file. Anyone know how to do this by ffmpeg lib? thanks.

1

1 Answers

5
votes

You use avformat_write_header, av_interleaved_write_frame, avformat_write_trailer and friends.

Their usage is shown in the muxing example of FFmpeg.

See a similar topic: Raw H264 frames in mpegts container using libavcodec with also writing to a file (different container, same API)

See also links from answer here: FFMpeg encoding RGB images to H264