[三]H264编码和 MediaCodec

[三]H264编码和 MediaCodec

  • 一.MediaCodec
  • 二.H264
  • 二.使用Nginx搭建自己的rtmp服务器
    • 1.nginx是什么?
    • 2.环境准备
  • 三、搭建过程
    • 1.安装编译 nginx 所需要的库
    • 2.下载 nginx-1.21.6.tar.gz
    • 3.下载 nginx-rtmp-module
  • 4.解压
  • 5.编译
  • 6.启动nginx,检测nginx是否能成功运行
  • 7.配置nginx使用RTMP, /usr/local/nginx/conf/nginx.conf
  • 8.重启nginx服务器

MediaCodec)
在这里插入图片描述

一.MediaCodec

MediaCodec是Android平台提供的一种多媒体编解码器的API。它允许开发人员对音频和视频数据进行高效的编码和解码操作。通过使用MediaCodec,开发人员可以直接访问设备硬件加速的编解码功能,以提高多媒体应用程序的性能和效率。

使用MediaCodec,开发人员可以将原始的音频和视频数据输入到编码器中进行压缩编码,或者将编码后的数据输入到解码器中进行解码还原。这对于实时流媒体传输、视频录制和播放等应用非常有用。

MediaCodec还提供了对多种常见音视频编码格式的支持,如H.264、H.265、MPEG-4、AAC等。开发人员可以根据需要选择合适的编码器和解码器进行处理。

总的来说,MediaCodec是Android平台上用于多媒体编解码的重要API,可以帮助开发人员实现高效的音视频处理和传输。

二.H264

https://blog.csdn.net/locahuang/article/details/113906660

  1. SRS服务器地址:http://10.161.9.80:8066
    在这里插入图片描述
  2. 下载ffmpeg.exe推流:
    链接: https://pan.baidu.com/s/1WBtuubfj_ZpcTNneoAKv8Q?pwd=csck 提取码: csck 复制这段内容后打开百度网盘手机App,操作更方便哦

.\ffmpeg.exe -re -i 视频名称.mp4 -vcodec libx264 -acodec aac -f flv
rtmp://10.161.9.80/live/livestream

  1. 拉流测试:http://10.161.9.80:8066/live/livestream.flv
    在这里插入图片描述

二.使用Nginx搭建自己的rtmp服务器

1.nginx是什么?

nginx是一款优秀的反向代理工具,通过nginx可以实现搭建高可用的轻量级web服务器,除此之外,通过Nginx自带的rtmp模块,也可以实现rtmp服务器的搭建。

2.环境准备

1.系统版本
Ubuntu 18.04.4

2.nginx版本
nginx/1.21.6

三、搭建过程

1.安装编译 nginx 所需要的库

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

2.下载 nginx-1.21.6.tar.gz

wget http://nginx.org/download/nginx-1.21.6.tar.gz

3.下载 nginx-rtmp-module

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

4.解压

1)解压nginx文件

tar -zxvf nginx-1.21.6.tar.gz

2)解压rtmp模块

unzip master.zip

5.编译

1)进入解压后的nginx路径

cd nginx-1.21.6

2)编译

./configure --with-http_ssl_module
–add-module=…/nginx-rtmp-module-master

3)安装

make
sudo make install

6.启动nginx,检测nginx是否能成功运行

sudo /usr/local/nginx/sbin/nginx

如果没有提示报错,则说明运行成功了

7.配置nginx使用RTMP, /usr/local/nginx/conf/nginx.conf

rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;}} }

8.重启nginx服务器

sudo /usr/local/nginx/sbin/nginx -s stop sudo
/usr/local/nginx/sbin/nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/631655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Go语言处理Excel文件的完整指南

xcel文件是广泛用于存储和处理数据的常见文件格式。在Go语言中,有许多库和工具可用于处理Excel文件。本文将介绍如何使用Go语言处理Excel文件,包括读取、写入和修改Excel文件,以及处理单元格、行和列等操作。无论是从头开始创建Excel文件&…

算法练习-长度最小的子数组(思路+流程图+代码)

难度参考 难度:简单 分类:数组 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。 题目 给定一个含有个正整数的数组和一个正整数s,找…

android 中一个app中打开另一个app

Android 在一个APP里打开另一个APP_android apk 内嵌其他apk的窗口-CSDN博客 项目:DemoA,DemoB

智慧门店:如何利用AI视频智能监管与存储技术让门店降本增效?

一、行业背景 TSINGSEE青犀视频智慧门店解决方案是一种集成了人工智能、大数据、物联网等技术的零售解决方案,目的是提高门店的运营效率、用户体验和业绩。随着数字化转型的加速,连锁门店需要跟上时代的步伐,需要利用数字化手段提高运营效率…

【记录】解决 git 仓库突然出现连接失败

问题描述 今天在 push 代码代码的时候突然发现无法 push(但是我可以正常打开 Gihub),这可不行,我可是 git 的重度使用者😍,我所有的代码都托管在了 Github 上,没有它我的日子怎么活啊!!&#x…

Linux系统三剑客之grep和正则表达式的介绍(一)

1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 ? 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用: 语法: 说明: 选项:options 重点 实例 3.后面的下次再更新。 …

cf-920-div3

title: cf 920 div3 date: 2024-01-17 20:10:16 tags: vp categories: 比赛 A. Square 题目大意 给出四个坐标点,求正方形面积 解题思路 最小的最小,最大的最大。 代码实现 void solve() {int xmax -1e9, xmin 1e9, ymax -1e9, ymin 1e9;for (int …

始祖鸟母公司亚玛芬冲刺IPO:持续大额亏损,凸显安踏全球化野心

2024年赴美上市第一枪,由户外运动品牌始祖鸟母公司亚玛芬打响。 近日,安踏体育(HK:02020,下称“安踏”)旗下合营公司Amer Sports Holding(Cayman)Limited(下称“AS Holding”&#…

Pyspark 安装(Mac M2版)

引言 本文为个人本地部署pyspark遇到的问题以及解决办法,包含个人的一些理解,仅供参考。设备: Mac M2 安装过程 安装HomeBrew Mac 上用来管理安装包的,可能早期的 Macos 自带但是起码我个人的 Mac 是需要安装的(以下安装方法个…

Jmeter-BeanShell脚本中for循环里面使用random随机数函数,每次生成的都一样

预想的是每次循环生成的随机数不一样,但实际使用Random函数生成的是重复的。 以下是部分原代码: List updateList new ArrayList(); for(Object o: fieldList){Map map new HashMap();map.put("id", o.get("id"));map.put("…

异步Merkle Tree

1. 引言 前序博客: 利用多核的Rust快速Merkle tree Anoushk Kharangate 2023年论文《Asynchronous Merkle Trees》,其对Merkle tree数据结构进行修改,使得可跨多线程异步计算。 开源代码实现见: https://github.com/anoushk1…

【MySQL】所有文章传送门【自用】(暂不更新)

目录 1. MySQL 教程2. MySQL 实战项目 1. MySQL 教程 MySQL教程【自用,暂不公开】【数据库——MySQL】(1)数据库原理与设计【数据库——MySQL】(2)数据库和表的操作【数据库——MySQL】(3)对于…

Java SE入门及基础(19)

二维数组 1. 数组的本质 数组从本质上来说只有一维,二维数组是指在一维数组中再放入一个一维数组。三维数组、四维数组依次类推。 2. 二维数组的定义 语法 数据类型[][] 数组名 new 数据类型[数组的长度][数组的长度]; 示例 public static void main ( Str…

解密Oracle数据库引擎:揭开数据存储的神秘面纱

目录 1、介绍Oracle数据库引擎 1.1 什么是Oracle数据库引擎 1.2 Oracle数据库引擎的作用和功能 1.3 Oracle数据库引擎的历史和发展 2、Oracle数据库引擎的体系结构 2.1 Oracle数据库实例的组成部分 2.2 Oracle数据库引擎的层次结构 2.3 Oracle数据库引擎的关键组件 3、…

Uniapp多选Popup(弹出层)

uniapp中多选组件很少,故个人简单开发了一个,可简单使用,也可根据个人需求稍微改进 支持的功能 单选多选(默认)限制选择数量默认选中禁用选项 属性说明 属性默认值说明singlefalsetrue为开启单选,否则为…

FFMPEG命令生成各国国旗

文章目录 亚洲篇中国~待完善朝鲜~待补充韩国~待补充蒙古~待补充日本越南~待补充老挝 欧洲篇挪威~待补充瑞典~待补充芬兰~待补充冰岛~待补充丹麦~待补充爱沙尼亚拉脱维亚立陶宛白俄罗斯~待补充乌克兰摩尔多瓦~待补充俄罗斯德国 亚洲篇 中国~待完善 先画个五角星 在100x100的画…

Tokenization 指南:字节对编码,WordPiece等方法Python代码详解

在2022年11月OpenAI的ChatGPT发布之后,大型语言模型(llm)变得非常受欢迎。从那时起,这些语言模型的使用得到了爆炸式的发展,这在一定程度上得益于HuggingFace的Transformer库和PyTorch等库。 计算机要处理语言,首先需要将文本转…

在自定义数据集上训练 YOLOv8 进行目标检测

这是目标检测中令人惊叹的 AI 模型之一。在这种情况下,您无需克隆存储库、设置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那样。 在 YOLOv8 中,不需要执行这些手动任务。您只需安装 Ultralytics 即可,我将向您展示如何…

uniapp开发小程序—scroll-view实现内容滚动时, 标题也滚动

一、需求 scroll-view实现内容滚动时&#xff0c; 标题也滚动 二、效果 三、代码实现 <template><view class"content"><view class"head">头部固定区域</view><view class"list_box"><!-- 菜单左边 -->&l…

React16源码: React中的beginWork的源码实现

beginWork 1 &#xff09;概述 在 renderRoot 之后&#xff0c;要对我们的 Fiber 树每一个节点进行对应的更新更新节点的一个入口方法&#xff0c;就是 beginWork这个入口方法会有帮助我们去优化整棵树的更新过程 react 它的节点其实是非常多的&#xff0c;如果每一次子节点的…