专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 使用开源实用工具避免 A/V 文件的数据使用过量 »正文

使用开源实用工具避免 A/V 文件的数据使用过量

来源: 发布时间:星期三, 2010年5月26日 浏览:0次 评论:0
  介绍

  我们在网站WebSite上播放视频是为了娱乐和获得新闻我们在网络研讨会、基于 Web 教程、广告和执行概要中嵌入视频以增强文字效果我们将电影上载到服务器供用户下载到他们计算机所有这些举动都会消耗数据传输文件越大所消耗数据传输越多

  最近我这个视频使用者变身成了名视频开发人员我接到了个视频播放器项目要求我转换个颁奖仪式 DVD 文件以供远程 Web 展示播放时间很长 — 1 个小时文件很大 — 接近 1 GB

  我先是转换了这些视频文件并使用个 FTP 将它们上载到我远端站点然后将它们下载到我计算机上视频播放器反复转换文件必然会推高我无线服务账单金额我超出了我无线服务提供商每月给我在我计算机和远端服务器间传输数据最高限额 在上载过程中长时间播放视频速度持续下降是很明显

  为了减少文件大小和数据传输速度我用我备份计算机开始查找有无开源实用工具可用并找到了 WinFF 来转换文件它对很多平台 — Windows 和 Linux® 都是免费可用

  开源 WinFF

  在我进行下载的前我等到了下个月在这无线卡服务提供商会把我主计算机上数据传输量归为零为了下载 WinFF系统提示我选择是 Windows、基于 Red Hat 发行版、Ubuntu 存储库或 Debian 存储库安装指导我转到 Ubuntu 并单击 Applications > Accessories > Terminal我将代码从 安装指导 粘贴到提示符后如清单 1 所示

清单 1. Ubuntu 安装指导

sudo apt-get update && sudo apt-get  winff 

  我提供了我密码我执行个管理功能软件Software自动下载和安装脚本运行完毕后在提示符后输入 WinFF 并关闭此终端现在从 Applications 下 Sound and Video 访问 WinFF

  WinFF 是命令行视频转换器 FFmpeg 个 GUI 前端WinFF 让您可以从下拉列表中选择个想要转换到文件格式友好用户名WinFF 和 FFmpeg 接口让您可以看到 FFmpeg 内命令行代码是何模样您可以在 WinFF 主窗口内更改某些参数值在阅读了个在线 FFmpeg 文档后您可能会想要在命令行内更改这些参数值和语法WinFF 不是和 FFmpeg 接口应用您也可以构建和 FFmpeg 接口其他应用

  FFmpeg 命令行依赖于两个库 — libavformat 和 libavcodec — 来提供对很多编码解码器和文件格式支持这两个库均在 FFmpeg 源代码中可以找到在如下 4个转换例子中涉及文件格式转换均无需任何外部库

  如图 1 所示WinFF 主窗口包含 5个部分:文件列表(空白)、按钮、菜单、Output Details 块以及 Additional Options 块

  为了向列表中添加个 audio/video (A/V) 文件单击 Add如果做了选择可以使用 Remove 或 Delete 将其删除若要清空此列表可使用 Clear为了不转换文件就播放可单击 Play Convert 会在个 shell/command 窗口中对这些文件运行 FFmpeg

图 1. WinFF 主窗口




  Output Details 块让您可以为转换选择 Device Pre如果想要更改这些预设置可以转到 Edit 菜单并打开 Pre Editor 以便进行添加或更新如果已经以 .wff 文件扩展名保存了个预设置那么可以转到 File 菜单来导入它Options 菜单允许显示要运行脚本(而不是转换)、在转换末尾暂停脚本以及在结束转换时关闭计算

  转换举例 1: Flash

  选择想要转换为 Flash 视频文件单击 Add 获得列表中这个文件然后转到 Output Details 块并单击第个下拉箭头从类别列表中选择 Websites如图 2 所示

图 2. 类别下拉列表




  在 Device Pre我选择了 Flash Video (FLV) for Web use Fullscreen如图 3 所示需要指定将所转换视频文件置于何处作为输出

图 3. 设备预设置下列列表


  预设置编辑器

  WinFF 还可以帮助生成正确 FFmpeg 命令行但繁多选项可以使的变得非常复杂不过还是建议捕获完整 FFmpeg 语法以便用在脚本或其他批处理要察看命令行代码需要两个步骤首先单击 Options 并确保 CMD 行已选中然后选择 Edit > Pres 打开这个编辑器如图 4 所示

图 4. Flash 文件 Edit Pres




  预设置列表

  这个编辑器左上角框内显示了预设置列表为了进行选择单击 Website然后单击右上角框内预设置标签以便填充剩余您可以添加或更新这些预设置系统会要求您确认进行这次添加或更新添加或导入了预设置后它就会出现在主窗口中以供使用但还需要单击 Save 才能将它保存到磁盘在导入时WinFF 会提问您是否想要替换现有预设置您可以将个预设置导出到您磁盘上库内

  预设置名称、标签和文件扩展名

  默认情况下Web 站点预设置名称为 FLVwebFS只允许个单词我选择 Flash Video (FLV) for Web use Fullscreen 作为此预设置标签如果需要也可以更改预设置名称和标签并保存但是需要确保新预设置名不会和已有预设置名重复否则已有预设置名会被这个新所取代Output File 扩展指定了输出文件文件扩展名为了更改类别输入个新名称

  预设置命令行

  现在我们来到了最有趣部分 — 预设置命令行它显示了预设置 FFmpeg 参数使用现有预设置命令行来了解特定 A/V 文件 FFmpeg 基本要素并在此基础上改进文件质量您还可以使用此命令行来找到某特定文件格式大小为区别文件格式进行这个操作并对比每大小您无需键入输入和输出文件名称 WinFF 会通过从主窗口上输入文件列表和 Output Details 获得信息而自动处理它们

  清单 2 显示了预设置 FLVwebFS Pre Command Line 代码个部分

清单 2. 预设置命令行部分

-vcodec FLV -f FLV -r 29.97 -s 320x240 -aspect 4:3 -b 300kb -g 160 -cmp dct -subcmp dct  

  清单 3 显示了预设置 FLVwebFS 相同代码第 2部分

清单 3. Flash 第 2部分

-mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -ab 56kb 

  表 1 列出了上述两个清单大多数参数意义此外还包括了这些参数默认值FFmpeg 要求以 FLV 作为文件格式设置帧速为每秒 29.97 帧覆盖了默认值 25并设置 VGA 屏幕大小为 320x240如果您想要在个宽屏上使用这个 Web 站点可以将 -aspect 4:3 改为 -aspect 16:9视频比特率设置为 300 Kbs大大快于默认 200 Kbs不过音频质量则要低于默认值

  这个命令行少了 3个参数:前两个分别是命令行前面 -i 选项和命令行末尾输出文件名第 3个少参数是缓冲选项如果有缓冲问题则需要该选项缓冲选项 -bufsize 用来设置缓冲区大小单位为比特若要设置最大视频比特率(-maxrate bitrate)则会需要它

  表 1 中列出了些重要参数供快速查阅

表 1. Flash 文件参数

参数 描述 Flash 视频 默认
-ab 设置音频比特率 56 KB 64 KB
-ac 设置声道 1 1
-ar 设置音频采样频率 22050 Hz 44100 Hz
-aspect 设置屏幕高宽比 4:3  
-b 设置视频比特率 300 Kbs 200 Kbs
-bufsize 设置缓冲区大小单位为比特    
-f 强制文件扩展为文件格式 FLV  
-g 设置组图片大小 160  
-maxrate bitrate 设置最大视频比特率    
-r 设置每秒帧速 29.97 25
-s 设置帧大小 320x240 (VGA)  
-vcodec 强制视频编解码器为种文件格式(比如 FLV) FLV  



  编辑此编辑器并使用 Convert 打开 shell/command 窗口来查看大小为 728 MB 文件转换过程FFmpeg 显示了它在当前文件上完成运行要花费时间(秒)若此脚本运行得过快可以通过单击 Pause 使脚本暂停(通常是在键盘右上角)以便进步查看结果如果您计算机有双处理器可以转到 Edit > Preferences 并复选 Multithreading for Dual Processors

  我转换文件大小为 723 MB文件类型为 MPEG-4在我将文件转换成 FLV 格式时文件大小急剧减少到了 1.28 MB

  转换举例 2:Windows Media Player

  如图 5 所示选择 WMV 作为转换格式WMV for Web Use 作为 Device Pre

图 5. Windows Media Player 输出细节




  然后转到 Edit Pres找到 Pre Command Line

  清单 4 显示了预设置 WMV2broadband Pre Command Line

清单 4. Windows Media Player 预设置命令行

-vcodec WMV2 -acodec wmav2 -b 640kb -ab 128kb -r 29.97 -s 320x240 

  音频和视频比特率均高于 FLV 时比特率帧速和大小则和 FLV 时相同它使用值 1 作为声道默认值使用值 44100 Hz 作为默认音频采样频率

  音频比特率值为 128 KB是默认值 64 KB 两倍而高宽比参数则没有包括该参数已经由 Windows Media Player 提前确定好了转换后文件大小为 345 MB大大高于 Flash 文件 1.28 MB

  在更改参数以进步减小 Windows Media Player 文件大小的前应该先导出该文件并保存它为了避免在 FFmpeg 命令行内插入参数使用 WinFF 主窗口来设置音频和视频选项

  图 6 显示了视频比特率、帧速、视频大小和高宽比视频设置项复选 2 pass 来在视频上轧制两个 FFmpeg 道次以获得较高质量复选 Deerlace 来从视频删除间行

图 6. 视频设置




  图 7 显示了音频比特率、采样率以及声道音频设置项

图 7. 音频设置


  转换举例 3:QuickTime

  让我们来看看 QuickTime如图 8 所示

图 8. QuickTime 预设置




  图 8 显示了对于 QuickTime 文件有 4个预设置标签可用它们是 mov 和 H.264(高、很高和超高)为了演示我选择了 mov

  清单 5 显示了预设置 qmov 命令行代码

清单 5. QuickTime 预设置命令行

-f mov -acodec libfaac -b 1250kb -r 25 -ab 128kb -s 640x480 -ac 2 -ar 48000 

  QuickTime 文件视频比特率高于 Windows Media Player 文件视频比特率虽然帧速稍低于 Windows Media Player但帧大小较高 — 两倍于 Flash 和 Windows Media Player 文件声道有两个多于 FLV 和 WMV 文件QuickTime 音频采样频率高于默认 44100 Hz低于 Flash 文件转换后文件大小为 598 MB在 Windows Media Player 文件 345 MB 和 Flash文件 1.2 MB 的间

  表 2 是对表 1 扩充除了 QuickTime 参数外还包括了 Windows Media Player 和 Flash 参数以便于比较

表 2. 对比 3种视频文件

参数 描述 Flash 视频 Windows Media Player QuickTime 默认
-ab 设置音频比特率 56 KB 128 KB 125 KB 64 KB
-ac 设置声道 1   2 1
-ar 设置音频采样频率 22050 Hz   44800 Hz 44100 Hz
-aspect 设置屏幕高宽比 4:3      
-b 设置视频比特率 300 Kbs 640 Kbs 1250 Kbs 200 Kbs
-bufsize 设置缓冲区大小单位为比特        
-f 强制文件扩展即为文件格式 FLV   mov  
-g 设置组图片大小 160      
-maxrate bitrate 设置最大视频比特率        
-r 设置每秒帧速 29.97 29.97 25 25
-s 设置帧大小 320x240 (VGA) 320x240 (VGA) 640x480  
-acodec 强制音频编解码器为个文件格式   wmav2 libfaac  
-vcodec 强制视频编解码器为个文件格式 FLV WMV2 FLV  



  对文件大小贡献按重要性顺序依次是视频比特率、音频采样频率、音频比特率然后是帧速Flash 音频采样频率和音频比特率均低于默认 44100 Hz而 Windows Media Player 和 QuickTime 则高于默认值这意味着 Flash 文件音频质量不如其他两种文件

  为了提高 Flash 文件音频质量需要将音频采样频率和音频比特率值更改为默认值或高于默认值这么做会提高 Flash 文件大小但不会达到 Windows Media Player 和 QuickTime 大小

  转换举例 4: BlackBerry

  让我们假设您想要制作您桌面 Web 站点移动版本播放时间很短这是避免数据传输过量种方式

  使用 Edit Pres 屏幕来寻找个针对移动 Web 站点视频格式我从标签列表中选择了预设置 BlackBerry然后是 BlackBerry Curve Fullscreen输出文件格式是 MP4

  清单 6 显示了 BlackBerry Curve 预设置命令行

清单 6. BlackBerry Curve 预设置命令行

-vcodec mpeg4 -s 320x240 -qscale 10 -b 250 -ab 48k -ar 22050 -ac 2 -acodec aac 

  除了 MP4 的外BlackBerry Curve 还支持大量视频格式包括 3PG、MP3、AAC、WAV、WMA 音频以及 MPEG4、H.263 和 WMV如果您想要使用 3PG 文件格式作为输出文件格式就需要将文件扩展名更改为该格式

  结束语

  随着消费者对视频需求增长您将需要在提供视频方面有极大灵活性本文可帮您轻松地将视频转换成区别格式来在适当时候使用适当风格这样就可以为您和您用户节省宝贵带宽并确保终端使用最佳质量您还能够轻松地体验区别选项并能进行自动文件处理

标签:
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: