`
univasity
  • 浏览: 809659 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[视频处理] 视频网站截图转换一网打尽 [转]

阅读更多

<!-- 旧帖转移,2011-01-03 -->

原文链接:http://eatsalt.blog.163.com/blog/static/87940266200811206461548/

 

有很多软件能够截取影片图像、合并图像,但如果影片太多,比如视频网站为用户上传的图像生成预览图之类的,人工在gui方式下操作就不可取了,我们需要在命令行方式下来截取、合并。

 

首先,截取影片图像使用最多的就是mplayer或者ffmpeg,我用mplayer比较熟,本文就以此为例了,ffmpeg功能也是非常强大的,但据说支持的文件格式却不丰富。mplayer截取影片图像的基本命令为:

 

mplayer -ss START_TIME -noframedrop -nosound -vo jpeg -frames N NAME_OF_VIDEO_FILE

上例中,-ss指定开始的时间,结合-frames参数,限定从某个时间开始、截取几帧图像。为了体现整个影片的内容,我需要在影片中间隔时间相同 的几个点、每个点截取1帧图像,所以按道理应该用-frames 1,但是mplayer这样截图的情况下,第一帧似乎永远都会截取到一个黑屏,所以我常用-frames 2。截取下来的图像保存在了当前目录,名称从00000001.jpg开始依次递增,按照-frames 2,就是取00000002.jpg为结果,删除00000001.jpg即可。经过简单实验,在截取wmv、rmvb影片时,前面的好几帧都会是黑屏, 也只能参考上面的做法多取几帧了。

 

为了取影片中间隔大致相同的几个点,可以用-ss指定时间,也可以用-sb指定开始字节,在我的实际使用中,使用-sb只会得到黑屏,所以通过文件 大小来设置间隔点的办法不行,只能用-ss时间间隔了,这就需要首先得到影片的总时间。好在mplayer为我们提供了类似的功能:

 

mplayer -identify movie-filename -nosound -vc dummy -vo null

这样会输出一大堆影片信息,从中截取所需内容即可,在bash shell中,取得影片总时间长度(以秒为单位)的命令如下:

 

FILESIZE=`mplayer -identify -nosound -vc dummy -vo null $1 | grep ID_LENGTH | sed -r ’s/ID_LENGTH=([[:digit:]]*)(\.[[:digit:]]*)?/\1/g’`

有了影片的总时长,我们就可以根据所要截取的帧数,计算出每个间隔点的时间位移了。不过要注意一般影片的开始-ss 0和结束-ss TOTAL_TIME_OF_VIDEO截取下来都会是黑屏,在处理的时候要分别加上和减去若干秒。

 

截取工作完成后,我们拥有了一堆000000xx.jpg文件,如果能把这些文件都放到一个文件中,每行2张,成为一张大图片,在发布的时候会很方便。所以,我们使用imagemagick中的montage命令来实现:

 

montage -geometry +0+0 -tile 2 *.jpg montage.jpg

-geometry +0+0是设定使用原始图片大小,-tile 2参数设定每行放2张图片,最后一个参数是要生成的目标文件名,现在,我们就能够得到像刚才那张一样的图片了。

 

下面再列一些在网上找到的其他mplayer、mencoder、ffmpeg的使用实例:

 

mplayer获取影片信息
mplayer -identify movie-filename -nosound -vc dummy -vo null
从所有输出中可以grep到如下信息:
- filetype: ASF file format detected.
- dimensions and format: VIDEO: [MP43] 320×240 24bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
- video format: ID_VIDEO_FORMAT=MP43
- width (dimensions): ID_VIDEO_WIDTH=320
- height (dimensions): ID_VIDEO_HEIGHT=240
- length in seconds: ID_LENGTH=98.00

 

mencoder图片做成电影
#用当前目录中的所有JPEG文件创建DivX4文件:
mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi
#用当前目录中的一些JPEG文件创建DivX4文件:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi \*.jpg
#用当前目录中的所有JPEG文件创建Motion JPEG(MJPEG)文件:
mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o output.avi \*.jpg
#用当前目录中的所有PNG文件创建一个非压缩的文件:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb -o output.avi \*.png
简单用法:
mencoder *.jpg -mf on:fps=15 -o output.avi -ovc xvid

 

ffmpeg屏幕录像
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024×768 ~/test.avi
  其中,-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 1024×768 指录制视频的大小为 1024×768。录制的视频文件为 test.avi,将保存到用户主目录中。其他选项可查阅其说明文档。
  如果你只想录制一个应用程序窗口或者桌面上的一个固定区域,那么可以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数。
  你也可以重新调整视频尺寸大小,如:./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi。

 

mplayer对video进行截屏 截图(wmv mpeg mov flv all works)
mplayer 78.mov -ss 1 -nosound -vo jpeg:outdir=./ -frames 2
我截的第一张图不知为何全部都是黑屏

 

转换为flv文件
mencoder NOW.wmv -ffourcc FLV1 -of lavf -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 -srate 22050 -oac mp3lame -o NOW.flv
ffmpeg -i a.asf -ab 56 -ar 22050 -b 500 -r 15 -s 320×240 asf.flv
--------------------------------------

 

mencoder转制:

mencoder NOW.wmv -ffourcc FLV1 -of lavf -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 -srate 22050 -oac

mp3lame -o NOW.flv

NOW.wmv : 转制的源文件及地址

-ffourcc FLV1 -of lavf -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 :转制格式编码以及声音编码

-srate 22050: 声音采样率,22050hz

-o NOW.flv 输出文件及地址

下面是大概的转制速度:
rm 速度:300k/s
rmvb 速度:1000k/s
wmv 速度:1000k/s
avi 速度:1000k/s
mov 速度:300k/s
mp4 速度:700k/s

ffmpeg转制:

asf: ffmpeg -i a.asf -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 asf.flv 速度:600k/s

wmv: 支持wmv8以下版本

抓图:

使用ffmpeg可以很方便的抓图:
jpg: ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 -ss a.jpg //注意-ss就是要提取视频文件中指定时间的图像
jpg: ffmpeg -i asf.flv -y -f image2 -t 1 asf.jpg
gif: ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

----------------------------------------------

 

使用ffmpeg抓图
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352×240 b.jpg
jpg: ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352×240 -ss a.jpg //注意-ss就是要提取视频文件中指定时间的图像
jpg: ffmpeg -i asf.flv -y -f image2 -t 1 asf.jpg
gif: ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

 

如何合并几个视频片段
mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi
* 其中,-oac copy 选项告诉 mencoder 要正确拷贝音频流。而 -ovc copy 选项则是拷贝视频流。
* 如果在视频文件中没有找到索引的话,那么 -idx 选项会要求 mencoder 建立它。
* -o 选项指定输出文件的名称。
* 最后几个参数为需要合并的几个视频片段。

分享到:
评论

相关推荐

    影音转霸|视频加水印合并转换格式一网打尽

    "影音转霸"是一款强大的视频处理软件,它集视频加水印、合并与格式转换功能于一体,满足了用户多样化的需求。 首先,关于视频水印。在当前版权意识日益增强的环境下,为自己的作品添加水印是保护原创的重要手段。...

    艾奇MTS视频格式转换器绿色特别版

    一款很专业视频个转换器软件,好多专业视频制作网站都是用这个软件,支持视频、音频、DVD格式转换的终极解决方案。它可以高速转换任何视频格式、音频格式、DVD,输出100多种格式的音视频格式,RM、AVI、WMV、MP4、...

    一网打尽中文编码转换---6种编码30个方向的转换

    中文编码转换是编程中不可或缺的一部分,特别是在处理中文字符时。本文将深入探讨6种主要的中文编码:GB2312、Big5、GBK、Unicode(小端序)、Unicode(大端序)以及UTF-8,并阐述它们之间的30种转换路径。编码转换...

    qcp转换MP3 QCP转换wav 手机录音转换任意格式

    在IT领域,音频格式转换是一项常见的任务,尤其对于手机用户来说,处理各种录音文件格式是必要的。本话题主要关注如何将QCP格式的音频文件转换为MP3或WAV等常见格式,以及如何实现手机录音的万能转换。QCP是一种由...

    旋风转换器v6.8.0.0免费安装版

    旋风转换器是文件格式转换工具,是专业智能的办公软件,支持上百种文件格式转换与操作,将你的办公需求一网打尽。能够转换多种格式互相转换,还能够进行图片压缩。 软件特色 支持pdf转word,pd

    ultra video converter

    "Ultra Video Converter",这款软件在视频处理领域中享有盛誉,它是一款功能强大的视频文件转换工具,旨在帮助用户轻松应对各种视频格式之间的转换问题。无论是AVI、DivX、XviD这类常见的编码格式,还是MPEG、DAT、...

    网站效果后台管理一网打尽

    【标题】:“网站效果后台管理一网打尽” 在当今数字化时代,网站的后台管理系统扮演着至关重要的角色,它负责网站内容的维护、用户管理、数据处理等核心功能。本资源集合涵盖了“java模板”、“jsp网站模板”、...

    一网打尽Linux核心技能 面试、升职必备视频教程

    给大家分享一套课程,一网打尽Linux核心技能 面试、升职必备视频教程,希望对大家学习有帮助。

    AVI MPEG WMV RM to MP3 Converter

    "AVI MPEG WMV RM to MP3 Converter"正是这样一款能够解决多种音频格式转换问题的软件,它将各种音频格式一网打尽,让用户告别因格式不兼容带来的不便。 AVI、MPEG、WMV和RM是常见的视频格式,它们内含的音频部分...

    PDF TO CAD

    "ZOL壁纸-提供高清桌面壁纸下载,美女、动漫、非主流、小清新、爱情、风景、唯美、星空等十几种不同风格的海量高清壁纸一网打尽、一键收藏.url"看似与PDF转CAD无关,可能是一个链接到壁纸下载网站的快捷方式,但在...

    大数据技术之DolphinScheduler2.x视频教程

    视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台,致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程...

    考研必考词汇辨析一网打尽

    处理、处置,常与 of 连用,表示“除掉、扔掉”。例如:“After your picnic, please dispose of the litter.”(野餐后请清除掉垃圾。) 5. erase v. 除去字迹、声音等,有意识地擦掉。例如:“I erased the music...

    小巧且功能全的截屏工具

    对于那些需要捕捉整个网页或者长对话的人来说,滚动截图功能尤为实用,它能够自动捕获屏幕滚动条下隐藏的内容,将整个页面一网打尽,避免了多次截图的繁琐。 在录屏方面,FSCapture同样表现出色。用户可以选择录制...

    ITK VTK 好资料一网打尽

    ITK (Insight Segmentation and Registration Toolkit) 和 VTK (Visualization Toolkit) 是两个在计算机视觉、医学图像处理和科学可视化领域广泛应用的开源库。本文将深入探讨这两个库的核心概念、功能以及它们在...

    一网打尽_最好的软件学习网站

    无可挑剔的学习网站大集合,涵盖网页设计类、图象处理类、动画设计类、网页素材类、网页代码类、WEB技术类、加盟网站类、FLASH站点等各方面,难能可贵,特此无私奉献给大家,希望对大家的学习有所帮助~~~~~

    一网打尽Android-UI

    本文将深入探讨“一网打尽Android-UI”中的关键知识点,包括各种UI组件的使用和功能。 1. **关于Android的一些设计**: Android的设计原则强调简洁、直观和一致。开发者应遵循Material Design指南,提供清晰的层次...

    垃圾焚烧厂渗滤液处理技术的特点、重点及难点,一网打尽!.docx

    垃圾焚烧厂渗滤液处理是一项复杂且至关重要的环保任务,涉及到多个关键技术和难点。渗滤液因其独特的特性,包括高浓度有机污染物、高氨氮含量、高盐分以及水质水量的大幅波动,使得处理过程充满挑战。以下是这些特点...

    一网打尽sap各类用户疑难杂症

    首先,文档标题《一网打尽sap各类用户疑难杂症》暗示了文档的主旨,是为了解决在使用SAP系统时可能遇到的各类问题。SAP是全球领先的企业资源规划(ERP)软件供应商,其产品被广泛应用于企业资源管理、客户关系管理、...

Global site tag (gtag.js) - Google Analytics