您的位置:首页 > 游戏 > 手游 > day11_homework_need2submit

day11_homework_need2submit

2024/12/23 7:42:26 来源:https://blog.csdn.net/qq_68308828/article/details/140179745  浏览:    关键词:day11_homework_need2submit

Homework

编写—个将ts或mp4中视频文件解码到yuv的程序
yuv数据可以使用如下命令播放:
ffplay -i output yuv-pix_fmt yuv420p-s 1024x436
要求:

  1. ffmpeg解析到avpacket并打印出pts和dts字段
  2. 完成解码到avframe并打印任意字段
  3. 完成yuv数据保存
// teminal orders on bash
cd examples     
gcc -o demuxing_decoding demuxing_decoding.c $(pkg-config --cflags --libs libavformat libavcodec libavutil libswscale)export PKG_CONFIG_PATH=/home/ubuntu2204/workspace/ffmpeg/build/lib/pkgconfig:$PKG_CONFIG_PATH     
//solve not find head file./demuxing_decoding ubuntu22.04.mp4 a.yuv a.avi /* read frames from the file */// while (av_read_frame(fmt_ctx, pkt) >= 0) {//     // check if the packet belongs to a stream we are interested in, otherwise//     // skip it//     if (pkt->stream_index == video_stream_idx)//         ret = decode_packet(video_dec_ctx, pkt);//     else if (pkt->stream_index == audio_stream_idx)//         ret = decode_packet(audio_dec_ctx, pkt);//     av_packet_unref(pkt);//     if (ret < 0)//         break;// }while (av_read_frame(fmt_ctx, pkt) >= 0) {// 打印PTS和DTS信息if (pkt->stream_index == video_stream_idx || pkt->stream_index == audio_stream_idx) {AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base;printf("PTS: %s, DTS: %s, duration: %d, stream index: %d\n",av_ts2timestr(pkt->pts, time_base),av_ts2timestr(pkt->dts, time_base),pkt->duration,pkt->stream_index);}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com