day11_homework_need2submit

news/2024/7/9 11:17:28 标签: ffmpeg

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);
    }

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

在这里插入图片描述


http://www.niftyadmin.cn/n/5538807.html

相关文章

@ControllerAdice统一返回值类型【Spring源码学习】

我们可以通过在ControllerAdvice注解类上实现ResponseBodyAdvice注解来实现统一返回值类型&#xff1b; 例如统一接口的返回类型为Result类 ControllerAdvice static class MyControllerAdvice implements ResponseBodyAdvice<Object> {Overridepublic boolean supports…

企业内部数据如何进行数据生命周期管理

在当今数字时代&#xff0c;企业内部的数据无疑是每个组织最重要的资产之一。对于数据的管理&#xff0c;涵盖了不仅仅是数据处理和存储&#xff0c;更包括保密性、准确性和可用性的管理。因此&#xff0c;建立一套完整的数据生命周期管理方案尤为重要。数聚将从多年的项目经验…

自定义控件动画篇(九)实现ListView Item进入动画

在Android中&#xff0c;为ListView中的Item添加进入动画&#xff08;如淡入、滑动等&#xff09;可以通过多种方式实现。下面是一种常见且有效的方法&#xff0c;即使用ListAdapter的getView()方法结合ViewHolder模式以及Animation类来实现ListView Item的进入动画。 步骤 1:…

实在智能对话钉钉:宜搭+实在Agent,AI时代的工作方式

比起一个需求需要等产品、技术排期&#xff0c;越来越多的人开始追求把自己武装成「全能战士」&#xff0c;通过低代码工具一搭&#xff0c;一个高效的工作平台便产生了。 宜搭是钉钉自研的低代码应用构建平台&#xff0c;无论是专业开发者还是没有代码基础的业务人员&#xf…

基于Linux的云端垃圾分类助手

项目简介 本项目旨在开发一个基于嵌入式系统的智能垃圾分类装置。该装置能够通过串口通信、语音播报、网络通信等多种方式&#xff0c;实现垃圾的自动识别和分类投放。系统采用多线程设计&#xff0c;确保各功能模块高效并行工作。 项目功能 垃圾分类识别 系统使用摄像头拍摄…

axios源码打包关于rollup.config.js文件分析

axios 项目下的rollup.config.js文件 const lib require("./package.json"); const outputFileName "axios"; const name "axios"; const namedInput "./index.js"; const defaultInput "./lib/axios.js";export defa…

如何把域名解析到自己的网站?一文读懂域名解析那些事

域名解析负责将人们习惯使用的域名&#xff08;如www.guokeyun.com&#xff09;转换成计算机能够识别的IP地址&#xff0c;是互联网正常运转的重要功能&#xff0c;因此对于希望在线展示网站或服务的企业或个人而言&#xff0c;了解并正确设置域名解析十分关键。接下来&#xf…

HDC Cloud 2024 | CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验

2024年6月21~23日&#xff0c;华为开发者大会HDC 2024在东莞溪流背坡村隆重举行。期间华为云主办了以“CodeArts加速软件智能化开发&#xff0c;携手HarmonyOS重塑企业应用创新体验”为主题的分论坛。论坛汇聚了各行各业的专家学者、技术领袖和开发者&#xff0c;共同探讨Harmo…