当前位置: 首页 > news >正文

网站开发技术大学教材苏州哪家网站公司做的好的

网站开发技术大学教材,苏州哪家网站公司做的好的,深圳58同城招聘网,求手机视频网站比如,原来我们要用ffmpeg录一段RTSP视频流转成MP4,我们有两种方案: 方案一:可以使用以下命令将rtsp流分段存储为mp4文件 ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_t…

比如,原来我们要用ffmpeg录一段RTSP视频流转成MP4,我们有两种方案:

方案一:可以使用以下命令将rtsp流分段存储为mp4文件

ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_timestamps 1 -strftime 1 output_%Y-%m-%d_%H-%M-%S.mp4

ffmpeg将RTSP录像成mp4

方案二:可以直接调用ffmpeg库avcodec、avfilter代码,有门槛,要研究,用大模型生成一段代码看看:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <errno.h>
#include <math.h>
#include <time.h>extern "C" {#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libswscale/swscale.h>
}int main(int argc, char **argv) {AVFormatContext *pFormatCtx = NULL;int videoStream;AVCodecContext *pCodecCtx = NULL;AVCodec *pCodec = NULL;AVPacket packet;FILE *videoFile = NULL;struct SwsContext *img_convert_ctx;int64_t start_time, end_time, duration;double framerate = 25.0; // 帧率,需要根据实际情况调整int i, ret, got_output;uint8_t *outbuf[1024]; // 输出缓冲区大小,需要根据实际情况调整int outbuf_size; // 输出缓冲区大小,需要根据实际情况调整start_time = (int64_t)time(NULL); // 开始时间,单位为秒videoFile = fopen("output.ts", "wb"); // 输出文件名,需要根据实际情况调整if (!videoFile) {printf("Could not open output file for writing
");return -1;}outbuf_size = av_image_get_buffer_size((AVPixelFormat)AV_PIX_FMT_YUV420P, videoStream, 1920, 1080, 1); // 获取输出缓冲区大小,需要根据实际情况调整outbuf = (uint8_t*)av_malloc(outbuf_size); // 分配输出缓冲区,需要根据实际情况调整ret = avformat_new_stream(&pFormatCtx, NULL); // 创建视频流上下文,需要根据实际情况调整if (ret < 0) {printf("Error: could not create output format context
");exit(1);} else {ret = avcodec_parameters_to_context(pCodecCtx, pFormatCtx->streams[videoStream]->codecpar); // 设置解码器参数,需要根据实际情况调整if (ret < 0) {printf("Error: could not initialize the codec context
");exit(1);} else {ret = avcodec_open2(pCodecCtx, pCodec, NULL); // 打开解码器,需要根据实际情况调整if (ret < 0) {printf("Error: Could not open codec
");exit(1);} else {while (1) { // 循环处理视频流数据,需要根据实际情况调整ret = av_read_frame(pFormatCtx, &packet); // 读取视频帧数据,需要根据实际情况调整if (ret == 0) { // 如果读取到数据包,则进行处理,需要根据实际情况调整// ... 在这里添加你的代码来处理视频帧数据 ...} else if (ret < 0 && ret != AVERROR(EAGAIN)) { // 如果发生错误,则打印错误信息并退出程序,需要根据实际情况调整char errorbuf[1024];av_strerror(ret, errorbuf, sizeof(errorbuf));printf("%s
", errorbuf);exit(1);} else if (ret == AVERROR(EAGAIN)) { // 如果发生EAGAIN错误,则等待一段时间后继续读取数据包,需要根据实际情况调整usleep(200000); // 等待200ms,单位为微秒,需要根据实际情况调整} else if (ret == AVERROR_EOF) { // 如果发生EOF错误,则表示已经读取完所有数据包,需要根据实际情况调整break; // 结束循环,需要根据实际情况调整} else if (ret < 0 && ret != AVERROR(EAGAIN)) { // 如果发生其他错误,则打印错误信息并退出程序,需要根据实际情况调整char errorbuf[1024];av_strerror(ret, errorbuf, sizeof(errorbuf));printf("%s
", errorbuf);exit(1);} else if (ret >= 0) { // 如果成功读取到数据包,则进行处理,需要根据实际情况调整// ... 在这里添加你的代码来处理视频帧数据 ...} else { // 如果发生未知错误,则打印错误信息并退出程序,需要根据实际情况调整char errorbuf[1024];av_strerror(ret, errorbuf, sizeof(errorbuf));printf("%s
", errorbuf);exit(1);}} // while循环结束条件 ... 在这里添加你的代码 ... } } } } /* end of main() */
  • 方案一通过exec调用,但是有一个弊端就是不好控制,不能自动重连,进程管理需要不断自己维护;
  • 方案二就是开发成本较高,太复杂了,不同级别的开发写出来的效果参差不齐;

有没有一个能把方案一和方案二结合起来的方法?

有,他来了:EasyAVFilter!简单的几个接口,就能解决ffmpeg开发门槛的问题:

方法名称说明
EasyAVFilter_Create创建句柄,相当于创建了一个ffmpeg.exe
EasyAVFilter_Release释放句柄
EasyAVFilter_SetCallback设置回调函数和自定义指针,回调过程中的各种媒体信息/连接信息/转码进度
EasyAVFilter_AddInput添加输入参数(源地址)
EasyAVFilter_AddFilter添加中间参数,如:转码,兼容ffmpeg命令所有参数(例如-vcodec copy -acodec aac)
EasyAVFilter_SetOutput设置输出参数(目标地址)
EasyAVFilter_GetFilters获取所有参数(review参数输入是否正确)
EasyAVFilter_Start开始工作
EasyAVFilter_Stop停止工作

详细信息可以直接看https://www.easydarwin.org/tools/153.html,具体用法和场景,后续逐步介绍;

http://www.yayakq.cn/news/160284/

相关文章:

  • 河南做网站的公司有哪些做淘客网站多少钱
  • html网站架设品牌打造
  • 网站建设有证书吗网站首页制作模板
  • 在自己的电脑做网站空间品牌网站响应式网站有哪些
  • 医疗网站建设好么最新一周新闻
  • 建设电子商务网站的预期收益网站的承诺
  • 网站内容上传要求网站空间没有续费
  • 品牌建设 网站企业服务公司简介怎么写
  • 做网站需要空间网站备案要营业执照吗
  • 如何学网站建设一键搭建网站
  • 网站外链是什么意思教育机构线上推广方案
  • 建网站来做什么开发公司总经理职责
  • 东港建站公司简述网站的创建流程
  • 电商网站建设包括哪些内容自己开发网站怎么盈利
  • 提供邢台网站优化网站开发价格
  • 金华网站建设策划wordpress安装mysql
  • 宜兴市城乡建设局网站网页制作模板文件的扩展名
  • 网站链接优化2019年云南建设银行招聘网站
  • 青龙桥网站建设html是前端还是后端
  • 做淘宝客最好的网站是什么网站只做绿色食品的网站
  • 一个ip做网站重庆建网站流程
  • 网站建设服务器域名中国建设网官方网站硅灰
  • 重点实验室网站建设的研究现状网站建设技术课程设计报告
  • 网站店招用什么软件做的打开百度网站建设
  • 青海集团网站建设山东省建设工程领域挂证存颖网站
  • 上海网站设计专业团队上海中高风险地区查询
  • 做包装的网站有哪些建动画网站需要多少钱
  • 做一个网站先做前段 还是后端找项目上959 项目多
  • 建设网站地图临平做网站电话
  • 仪征做网站公司wordpress2019谷歌字体