音视频开发常用软件 技术创作101训练营

2020-09-22 10:24:44 浏览数 (1)

引言

编写目的

主要是介绍几款媒体常用软件,方便进行媒体类问题的定位分析,软件大部分是开源的,方便学习相关知识。

适用范围

预期读者为媒体开发人员作为入门文档,用来分析对比,定位问题。也可作为音视频爱好者日常使用。

只是简单介绍常用的使用方法。其他用法可以在网络查询。

同时大部分软件是开源软件,可以多看看源码,学习相关知识。

推荐一些个人认为比较好的书籍

软件简介及说明

Mediainfo

官方地址:https://mediaarea.net/en/MediaInfo

MediaInfo是一款非常实用的视频参数检测工具,除了可以对视频进行编码分析查询,还可以对音频文 件的编码及信息进行检测,该款工具软件是一款开源免费软件。linux系统下为英文,windows下可选择中文。同时可以下载软件源码进行学习。

VLC

官方地址:https://www.videolan.org/

VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频 与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast 或 multicast的流式服务器在IPv4或 IPv6的高速网络连接下使用。它融合了FFmpeg计划的解码器与 libdvdcss程序库使其有播放多媒体文件及加密DVD影碟的功能。同时可以下载软件源码进行学习。

  • 用来对比播放视频,排除视频源本身的问题。
  • 用来搭建流媒体服务器,测试客户端软件播放。
  • 用来作为自己播放器,跨平台,免费,无广告,功能强大。

wireshark

官方地址:https://www.wireshark.org/

推荐书籍:《Wireshark网络分析就这么简单》,《Wireshark网络分析的艺术》

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并 尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。同时可以下载软件源码进行学习。

wireshark功能强大,网络相关开发,学习网络协议的必备工具,多媒体开发一般用来抓包分析媒体播放中的网络因素引起的问题。如播放卡顿

android开发中需要使用tcpdump来抓取android设备的网络包,再使用wireshark分析。

抓包方式:

adb shell

命令行tcpdump -i any -p -s 0 -w /sdcard/tcpdump.pcap

adb pull /sdcard/tcpdump.pcap . 将网络包文件拉到本地来分析

小技巧:

“contains”操作符允许一个过滤器搜索一串字符,其形式为字符串,或者字节,或者字节组。例如在搜索一个HTTP URL地址,可以使用下面的过滤器: http contains “http://www.wireshark.org”; “contains”操作符不能被用于原子型的字段,比如数字和ip地址。

ffmpeg

官方地址:http://ffmpeg.org/

同时可以下载软件源码进行学习。音视频开发必备知识储备。建议认真学习源码及使用。

推荐书籍:《ffmpeg从入门到精通》刘歧(ffmpeg官方推荐中文书籍),英文能力强的直接看官方网址说明文档是最好的资料。

中文论坛:http://bbs.chinaffmpeg.com

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

FFmpeg是音视频开发中必须了解掌握的开源项目。FFMPEG是特别强大的专门用于处理音视频的开源库。你可以使用它的API对音视频进行处理,也可以使用它提供的命令行工具,如ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。命令行工具强烈推荐大家学习使用,刚开始可能很不习惯,坚持下来就会体会到ffmpeg命令行的强大

列出部分常用命令(linux平台),方便查询:

  • ffmpeg 通过ffmpeg –help可以看到ffmpeg常见的命令,ffmpeg一般用作视频转换 命令格式: ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件] ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
  • ffprobe 可以使用ffprobe --help来查看详细的帮助信息,ffprobe用作分析视频 命令格式 ffprobe [参数选项] [输入文件名] ffprobe [OPTIONS] [INPUT_FILE] 小技巧: 格式化 ffprobe的命令的输出格式 默认的输出格式都是以key - value的格式的方式,ffprobe支持多种格式的输出,包括XML、INI、JSON、CSV、FLAT等。使用ffprobe -print_format 或者 ffprobe -of 来格式化输出。 ffprobe -of csv -show_frames input.mp4 > 1.csv 使用wps或excel打开1.csv,查看超级方便。
  • ffplay 可以使用ffplay --help来查看详细的帮助信息,一般用来对比播放,比vlc功能多但不直观 ffplay [参数选项] 输入文件名 ffplay [options] input_file 小技巧: 使用ffplay播放yuv数据 播放NV21 ffplay -i nv21.yuv -pix_fmt nv21 -s 640x480 播放YUV420P ffplay -i yuv420p.yuv -pix_fmt yuv420p -s 640x480

音视频开发书籍推荐

《在线视频技术精要》,《音视频开发进阶指南》,《Android音视频开发》,《FFmpeg从入门到精通书籍》

《视频编码全角度详解》

其他常用软件

我个人不常用,在此列出,方便有需要的人使用

Bento4是一套开源库,专用于mp4格式文件的读写,同时还提供一套开源工具,支持的功能非常多

FLVmeta本来是一个编辑flv文件的metadata的工具,但其实它也可以用来做flv文件的码流分析

tsr(TS码流分析工具)是一款针对(Tsr)MPEG-2压缩打造的TS流分析器,可以清楚地看到码流的信息。

EASYICE支持HLS协议的免费分析软件。通过HLS 缓冲分析模块,可以一目了然的看到播放器的缓冲状态。当你的节目出现卡顿,观察缓冲状态就可以知道是否数据到达太慢。HLS分析支持直播与点播业务。

LIVE555 是一个为流媒体提供解决方案的跨平台的C 开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。

PixStream WinSend是一款以把本地文件发送成流推送到组播地址的组播测试工具,软件的功能十分的全面,且自身十分的小巧,软件可以用来发送TS流,播放流文件时,但要注意选择H264的ts文件,使用VLC打开组播IP及端口号。

技术创作101训练营

0 人点赞