音视频技术入门一

音视频的应用

  • 互动直播系统
  • 娱乐直播系统
  • 音视频特效
  • 音视频编辑

音视频常用工具

  • ffmpeg
    FFmpeg是一个开源免费跨平台的视频和音频流方案。
  • ffplay
    ffplayffmpeg源码中提供的一个播放器实现例子。
    很多成熟播放器是基于ffplay修改而来的,如果想基于ffmpeg实现自己的播放器,或者维护一个基于ffmpeg的播放器,ffplay都是一个很好的切入点。
  • vlc
    vlc是一种开源播放器,其中内部调用了ffmpeg部分实现。
    vlc还有一个非常好的功能——播放那些没有下载完整的视频文件。

最简单的直播系统架构模型

在这里插入图片描述

可能产生的问题:
  • 推流失败

    产生问题:
    推流推到一半报如下错:Failed to update header with correct duration Failed to update header with correct filesize 没有正确的时长,正确的文件大小;
    产生原因:
    最主要的原因是时间戳出现了问题。
    因为默认情况下,ffmpeg尝试以尽可能快的速度读取输入。他将音频和视频分开,按最快的方式进行播。导致音频和视频很难同步,时间戳对不上。
    解决方法:
    -re这个选项会将输入的读取速度降低到输入的本地帧速率。它对于实时输出(例如直播流)很有用。

  • 清晰度不高

    原因: 读取音频流和视频流的时候,按照默认的视频质量重新编码了,导致视频质量降低。
    解决:-c 不让他重新编码。
    注意: 丢包,也会造成花屏和卡顿。

Linux基础知识

基本命令:
lscdpwd(查看当前目录的具体位置), mkdircp(拷贝), rm(删除文件或目录), sudo(切换权限),pkg-config(开发c,c++, 链接库使用的)
ls -alt: 当前目录下的所有子目录倒序排序
echo "123" >> 1.txt: 向“1.txt”追加内容“123”
echo "123" > 1.txt:覆盖“1.txt”原内容并重新输入内容"123",若文件不存在则创建文件
rm -rf 111: 循环强制删除, r:循环 f:强制

安装工具:
apt(Linux ubuntu)/brew(Mac)/yum(CentOS)

vim基本操作:
:w 保存文件
:q 退出
i 进入编辑模式
esc 退出编辑模式
h 光标左移
j 光标下移
k 光标上移
l 光标右移
https://www.runoob.com/linux/linux-vim.html

Linux中的环境变量:

  • PATH
  • PKG_CONFIG_PATH 用于放置.pc库
  • LD_LIBRARY_PATH 用于放置.so库

环境变量的变更:
~/.bashrc (linux)
~/.bash_profile (mac)
修改变更环境变量后需要执行:source ~/.bash_profile mac下。 修改的环境变量才生效。

Mac下安装ffmpeg的方式

  • brew 方式
  • 源码方式安装
    • 下载ffmpeg
    • 编译ffmpeg
      • ./configure --prefix=/usr/local/ffmpeg -enable-debug=3
      • make -j 4 指定4个进程进行编译
      • make install 将编译好的ffmpeg进行安装
      • 权限不够的话,前面加上sudo

ffmpeg目录结构:

  • bin 命令工具
    • ffmpeg 音视频处理
    • ffplay 播放器
    • ffprobe 侦测多媒体文件:格式,基本信息等
  • include 头文件 (用ffmpeg进行二次开发的时候需要引用头文件)
    • libavcodec 各种类型声音/图像编解码
    • libavdevice 管理设备
    • libavfilter 各种滤镜
    • libavformat 多媒体文件格式处理
    • libavutil 基本工具
    • libpostproc 后期效果处理
    • libswresample 音频重采样
    • libswscale 视频场景比例缩放、色彩映射转换
  • lib 动态库或静态库
    • .dylib 结尾的为动态库
    • .a 结尾的为静态库
  • share 文档相关
    • man 手册(详细的命令信息)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神小夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值