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

n加1网站建设济南行业网站建设

n加1网站建设,济南行业网站建设,付费论坛源码,电子商城网站开发项目经验操作系统#xff1a;ubuntu 注意事项#xff1a; 1.ts文件顺序必须正确#xff0c;也就是下一帧的dst和pst要比上一帧的大#xff0c;否则会报错 2.codecpar-codec_tag要设置为0#xff0c;否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1…操作系统ubuntu 注意事项 1.ts文件顺序必须正确也就是下一帧的dst和pst要比上一帧的大否则会报错 2.codecpar-codec_tag要设置为0否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1) 3.设置output的max_streams数目默认是1000超过此数目就会报错 #include iostream #include dirent.h #include vectorextern C { #include include/libavformat/avformat.h #include include/libavcodec/avcodec.h }//#pragma comment(lib,avformat.lib) //#pragma comment(lib,avcodec.lib)using namespace std;int ts2Mp4(const string,const string,int);int main(int argc, char* argv[]) {//const string ts_filename argv[1];//const string output_filename ../1.mp4;//argv[2];ts2Mp4(argv[1],argv[2],atoi(argv[3]));return 0; }int ts2Mp4(const string ts_path,const string mp4_path,int ts_count){/*vectorstring ts_list;DIR *pDir;struct dirent* ptr;if(!(pDir opendir(ts_path.c_str()))){printf(cannot open ts dir\n);return -1;}while((ptr readdir(pDir))!0) {if (strcmp(ptr-d_name, .) ! 0 strcmp(ptr-d_name,..)!0){ts_list.push_back(ptr-d_name);}}closedir(pDir);*/// create output context AVFormatContext* output_ctx NULL;if (avformat_alloc_output_context2(output_ctx, NULL, NULL, mp4_path.c_str()) 0) {fprintf(stderr, Failed to create output context\n);return -1;}//set the max streams number,default is 1000output_ctx-max_streams3000;int video_stream_idx -1;vectorAVFormatContext* input_ctx_list;for(int i0;its_count;i){// open input file char ts[256];sprintf(ts,%s%s%d%s,ts_path.c_str(),/,i,.ts);//string tstmp;printf(%s\n,ts);if(strcmp(.ts,strstr(ts,.ts))!0) continue;AVFormatContext* input_ctx NULL;if (avformat_open_input(input_ctx, ts, NULL, NULL) ! 0) {fprintf(stderr, Failed to open input file %s\n, ts);return -1;}if (avformat_find_stream_info(input_ctx, NULL) 0) {fprintf(stderr, Failed to retrieve input stream information\n);return -1;}input_ctx_list.push_back(input_ctx);// add streams for (int i 0; i input_ctx-nb_streams; i) {AVStream* in_stream input_ctx-streams[i];AVCodecParameters* in_codecpar in_stream-codecpar;if (in_codecpar-codec_type AVMEDIA_TYPE_VIDEO || in_codecpar-codec_type AVMEDIA_TYPE_AUDIO) {AVStream* out_stream avformat_new_stream(output_ctx, NULL);if (!out_stream) {fprintf(stderr, Failed to allocate output stream\n);return -1;}if (avcodec_parameters_copy(out_stream-codecpar, in_codecpar) 0) {fprintf(stderr, Failed to copy codec parameters\n);return -1;}out_stream-codecpar-codec_tag 0;if (in_codecpar-codec_type AVMEDIA_TYPE_VIDEO)video_stream_idx out_stream-index;}}}// open output file if (!(output_ctx-oformat-flags AVFMT_NOFILE)) {if (avio_open(output_ctx-pb, mp4_path.c_str(), AVIO_FLAG_WRITE) 0) {fprintf(stderr, Could not open output file %s\n, mp4_path.c_str());return -1;}}// write header if (avformat_write_header(output_ctx, NULL) 0) {fprintf(stderr, Error occurred when opening output file\n);return -1;}int pkt_cnt 0;// copy packets //int stream_index 0;for(int i0;iinput_ctx_list.size();i){AVFormatContext* input_ctxinput_ctx_list[i];AVPacket packet;int ret 0;while (av_read_frame(input_ctx, packet) 0) {//printf(%d,%d\n,video_stream_idx,packet.stream_index);AVStream* in_stream input_ctx-streams[packet.stream_index];AVStream* out_stream output_ctx-streams[packet.stream_index];// copy packetpacket.pts av_rescale_q_rnd(packet.pts, in_stream-time_base, out_stream-time_base,(AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));packet.dts av_rescale_q_rnd(packet.dts, in_stream-time_base, out_stream-time_base,(AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));packet.duration av_rescale_q(packet.duration, in_stream-time_base, out_stream-time_base);//printf(%ld,%ld,%ld\n,packet.pts,packet.dts,packet.duration);packet.pos -1;if (packet.stream_index video_stream_idx) {//printf(Send video %8d\n, pkt_cnt);pkt_cnt;}ret av_interleaved_write_frame(output_ctx, packet);if (ret 0) {fprintf(stderr, Error muxing packet\n);break;}av_packet_unref(packet);}// close input avformat_close_input(input_ctx);}// write trailer if (av_write_trailer(output_ctx) 0) {fprintf(stderr, Error occurred when writing trailer\n);return -1;}// close output if (output_ctx !(output_ctx-oformat-flags AVFMT_NOFILE))avio_closep(output_ctx-pb);avformat_free_context(output_ctx);printf(convert success!\n); return 0; }
http://www.hkea.cn/news/14312081/

相关文章:

  • 网站改版了ui设计师零基础学什么
  • 企业门户网站开发平台的设计建设兼职网站目的
  • 中山哪里有好网站建设公司网站系统的运营和维护
  • 好用网站推荐免费网站变成手机网站
  • 北京做网站设计响应式网站源码
  • 万网个人网站建设教程企业网站开发步骤
  • 云南省住房建设厅网站南阳网站推广费用
  • 做a暧小视频在线观看网站wordpress购物模板下载
  • 建站系统低价建站新闻资讯安卓电商app开发
  • 万泉河网站建设WordPress做老用户管理
  • 网站用户模板前端学校网站开发视频教程
  • 网站开发学那种语言域名查询中心官网
  • 微软网站开发工具有哪些免费图片设计
  • 医疗网站建设 飞沐动漫在线制作网站
  • 武冈网络推广浙江网站建设抖音seo优化
  • 做优秀企业网站朋友圈广告投放价格表
  • 工作室网站建设最美情侣高清视频播放
  • 百度注册网站wordpress导入doc
  • 网站建设 设计创意郴州新网0735
  • 南京网站建设网站制作阜宁网站设计
  • 文明网站建设网站多久备案一次吗
  • 外贸公司英文网站建设wordpress图片不被收录
  • 广州网站建设骏域网站templatepath wordpress
  • 顺德电子商务网站建设wordpress结合小程序
  • app网站如何做推广个性wordpress主题
  • 淄博网站建设费用网络品牌推广方法
  • 怎样增加网站反向链接优化设计答案
  • 晋中推广型网站建设各大网站rss地址
  • asp网站建设技术方案网站平台建设实训总结
  • 做付费网站站长全自动年赚30万网站建设图书