本篇文章目标是给定一个视频文件(mp4/flv/ts/mkv),从中分离出mp3码流。
void demux(void)
{
const char *src_filename = "/Users/zhw/Desktop/resource/sintel_h264_mp3.mkv";
const char *audio_dst_filename = "/Users/zhw/Desktop/sintel.mp3";
int audio_index;
AVFormatContext *ifmt_ctx = NULL;
AVPacket pkt;
/* open input file, and allocate format context */
if (avformat_open_input(&ifmt_ctx, src_filename, NULL, NULL) < 0) {
fprintf(stderr, "Could not open source file %s\n", src_filename);
exit(1);
}
/* retrieve stream information */
if (avformat_find_stream_info(ifmt_ctx, NULL) < 0) {
fprintf(stderr, "Could not find stream information\n");
exit(1);
}
audio_index = av_find_best_stream(ifmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, NULL, 0);
if (audio_index < 0) {
fprintf(stderr, "Could not find %s