图片与视频的转换

两位小组成员对负责部分学习笔记如下:

图像转视频

工具:
FFmpeg命令行
具体命令行:
ffmpeg -f image2 -i C:\Users\Lenovo\Desktop\pict%d.jpg -vcodec libx264 -r 10 vid.mp4
命令行解析:
(1)-vcodec 选择编码libx264
(2)-r 帧率
(3)-i 图片路径
遇到的问题:
FFmpeg权限被拒绝
解决办法:
以管理员身份运行即可

视频转图像

av_register_all(); //初始化FFMPEG  调用了这个才能正常适用编码器和解码器
  1. 接着需要分配一个AVFormatContext,FFMPEG所有的操作都要通过这个AVFormatContext来进行
AVFormatContext *pFormatCtx = avformat_alloc_context();
  1. 接着调用打开视频文件
    这里文件名先不要使用中文,否则会打开失败
char *file_path = "E:in.mp4";
avformat_open_input(&pFormatCtx, file_path, NULL, NULL);
  1. 查找文件中视频流
/*循环查找视频中包含的流信息,直到找到视频类型的流    便将其记录下来 保存到videoStream变量中*/
    for (i = 0; i < pFormatCtx->nb_streams; i++) {
        if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
            videoStream = i;
        }
    }
 
    //如果videoStream为-1 说明没有找到视频流
    if (videoStream == -1) {
        printf("Didn't find a video stream.
");
        return -1;
    }
  1. 解码视频
   //查找解码器    
    pCodecCtx = pFormatCtx->streams[videoStream]->codec;
    pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
 
    if (pCodec == NULL) {
        printf("Codec not found.
");
        return -1;
    }
    //打开解码器
    if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) {
        printf("Could not open codec.
");
        return -1;
    }
  1. 读取视频
 int y_size = pCodecCtx->width * pCodecCtx->height;
    AVPacket *packet = (AVPacket *) malloc(sizeof(AVPacket)); //分配一个packet
    av_new_packet(packet, y_size); //分配packet的数据
 
    if (av_read_frame(pFormatCtx, packet) < 0)
    {
        break; //这里认为视频读取完了
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...
    sillen阅读 5,481评论 2 45
  • 前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...
    RichyLeo阅读 17,688评论 1 22
  • 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_fi...
    XLAccount阅读 3,155评论 0 8
  • 参考ffmpeg常用命令[https://blog.csdn.net/newchenxf/article/deta...
    合肥黑阅读 205,052评论 13 204
  • 前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...
    骚之哈塞給阅读 25,977评论 6 39

友情链接更多精彩内容