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

能用网站做微信小程序福州网站开发大概费用

能用网站做微信小程序,福州网站开发大概费用,上海做高端网站建设,网络安全行业前景通过上节课的学习#xff0c;我们已经可以正常播放本地rtmp流及mp4文件#xff0c;这节课#xff0c;我们将在上节课的基础上实现一个常用的转推功能#xff1a;读取rtmp流或mp4文件并转推到rtmp服务器上实现直播转发功能。 一、FFmpeg API 转码推流的一般过程 1.引入ffm…通过上节课的学习我们已经可以正常播放本地rtmp流及mp4文件这节课我们将在上节课的基础上实现一个常用的转推功能读取rtmp流或mp4文件并转推到rtmp服务器上实现直播转发功能。 一、FFmpeg API 转码推流的一般过程 1.引入ffmpeg库在代码中引入ffmpeg库以便使用其提供的功能。 2.打开输入文件使用avformat_open_input()函数打开输入文件并获取输入文件的相关信息。 3.查找流信息使用avformat_find_stream_info()函数查找输入文件中的流信息并将其存储在AVFormatContext结构体中。 4.创建输出上下文使用avformat_alloc_output_context2()函数创建输出上下文并设置输出格式。 5.添加输出流根据输入文件的流信息使用avformat_new_stream()函数创建输出流并将其添加到输出上下文中。 6.设置编码参数为输出流设置编码参数包括编码器、编码器参数等。 7.输出文件使用avio_open()函数打开输出文件并将输出文件的相关信息存储在输出上下文中。 8.写入文件头使用avformat_write_header()函数写入输出文件的文件头。 9.转码推流循环读取输入文件的数据包使用av_read_frame()函数读取数据包然后使用avcodec_send_frame()函数发送数据包给编码器进行编码再使用avcodec_receive_packet()函数接收编码后的数据包最后使用av_interleaved_write_frame()函数将编码后的数据包写入输出流。 10.写入文件尾使用av_write_trailer()函数写入输出文件的文件尾。 11.释放资源释放所有的上下文、流和其他资源使用avformat_close_input()函数关闭输入文件。 二、转推功能的具体实现 与上节课的播放功能相比转推功能只是在原来的基础上又增加了编码功能和向rtmp服务器的推送功能。 1.为了与上节课的播放功能区分新建或直接复制fmlpFlash Media Live Player类为一个新的fmltFlash Media Live Transcoder类并修改主对话框相应代码使fmlt能正常工作并实现正常的播放功能。 修改如下 //#include fmlp.h #include fmlt.h//fmlp *myFmlp new fmlp(); fmlt *myFmlt new fmlt(); 2.与mp4文件相比rtmp流转推实现起来相对容易因此我们先在原来的基础上实现rtmp流的转推功能。 以下是一个示例代码演示了使用ffmpeg API进行转码推流的过程 #include stdio.h #include libavformat/avformat.hint main() {// 1. 引入ffmpeg库av_register_all();// 2. 打开输入文件AVFormatContext *inputContext NULL;if (avformat_open_input(inputContext, input.mp4, NULL, NULL) ! 0) {printf(Failed to open input file\n);return -1;}// 3. 查找流信息if (avformat_find_stream_info(inputContext, NULL) 0) {printf(Failed to find stream information\n);return -1;}// 4. 创建输出上下文AVFormatContext *outputContext NULL;if (avformat_alloc_output_context2(outputContext, NULL, flv, output.flv) 0) {printf(Failed to create output context\n);return -1;}// 5. 添加输出流for (int i 0; i inputContext-nb_streams; i) {AVStream *inputStream inputContext-streams[i];AVStream *outputStream avformat_new_stream(outputContext, inputStream-codec-codec);if (!outputStream) {printf(Failed to create output stream\n);return -1;}if (avcodec_copy_context(outputStream-codec, inputStream-codec) 0) {printf(Failed to copy codec context\n);return -1;}}// 6. 设置编码参数// ...// 7. 打开输出文件if (avio_open(outputContext-pb, output.flv, AVIO_FLAG_WRITE) 0) {printf(Failed to open output file\n);return -1;}// 8. 写入文件头if (avformat_write_header(outputContext, NULL) 0) {printf(Failed to write output file header\n);return -1;}// 9. 转码推流AVPacket packet;while (av_read_frame(inputContext, packet) 0) {AVStream *inputStream inputContext-streams[packet.stream_index];AVStream *outputStream outputContext-streams[packet.stream_index];// 发送数据包给编码器进行编码if (avcodec_send_packet(outputStream-codec, packet) 0) {printf(Failed to send packet to encoder\n);return -1;}// 接收编码后的数据包while (avcodec_receive_packet(outputStream-codec, packet) 0) {packet.stream_index outputStream-index;av_write_frame(outputContext, packet);av_packet_unref(packet);}}// 10. 写入文件尾av_write_trailer(outputContext);// 11. 释放资源avformat_close_input(inputContext);avformat_free_context(outputContext);return 0; }
http://www.pierceye.com/news/864469/

相关文章:

  • 建设网站的和服务器常州免费网站制作
  • 电子外贸网站重庆有什么好玩的
  • 商务网站的建设阶段包括郑州的做网站公司哪家好
  • 深圳网站建设网络公司七星彩网投网站建设
  • 手机建网站公司wordpress增加关键字
  • 招聘网站有哪些平台电商网站建设方式
  • 网站的备案要求域名icp备案查询
  • 网站的投资和建设项目站群服务器
  • 建网站电脑版和手机版怎么做网页实训总结及心得体会
  • 网站建设咨询费用一流的网站建设流程图
  • 如何进行营销型企业网站的优化如何在百度上推广自己
  • 360怎么变成建设银行首选网站网站建设财务分析
  • 建设网站的法律可行性分析快手自媒体平台
  • 网站建设的内容规划网站空间 阿里云
  • 网站建设横幅wordpress论坛怎么用
  • 做金融网站违法吗喜迎二十大演讲稿
  • 010-58813333 可信网站做网站的流程是怎么样的
  • 凉山州住房和城乡建设局门户网站南昌seo招聘
  • 恒华大厦做网站公司学校网站制作素材
  • 网站上的动图都怎么做的伊犁州新源县地图高清版
  • 音乐网站设计规划书wordpress爬取文章插件
  • 长沙哪家制作网站好医院网站建设方案需要多少钱
  • 建网站 xyz企业网站wordpress
  • 网站建站工作室做网站收录
  • 广州市天河区工程建设监督网站网站维护的注意事项
  • 人才网站建站织梦网站模块
  • 网站区分治疗早射最有效的方法是什么
  • 市体育局网站 两学一做ip详细地址查询工具
  • 网站找图片做海报侵权开发一个oa系统多少钱
  • 网站下载链接打不开外国网站建站