5 #include <libavformat/avformat.h>
8 #include "ffmpeg_raii.h"
15 avformat_network_init();
17 auto format_ctx = avformat_open_input_unique("example.mp4", nullptr, nullptr);
18 if (format_ctx == nullptr) {
19 fprintf(stderr, "%s: Error opening file\n", "example.mp4");
25 unique_ptr<AVPacket, decltype(av_packet_unref)*> pkt_cleanup(
26 &pkt, av_packet_unref);
30 if (av_read_frame(format_ctx.get(), &pkt) != 0) {
33 fprintf(stderr, "Got a frame from camera %d, pts = %ld, size = %d\n",
34 pkt.stream_index, pkt.pts, pkt.size);
36 snprintf(filename, sizeof(filename), "frames/cam%d-pts%09ld.jpeg", pkt.stream_index, pkt.pts);
37 FILE *fp = fopen(filename, "wb");
42 fwrite(pkt.data, pkt.size, 1, fp);