利用mencoder进行视频分割和合并
2010-09-25 19:11
211 查看
在ubuntu下,可以十分简单的安装好mplayer和mencoder,没有安装的时候,按照提示可以输入万能的sudo apt -get ***,就解决问题了。所以用起来很顺手啊~~
我利用mencoder主要干的两个事情就是视频的分割和合并。如果要对视频进行分割,最好提前知道它的总时间长度,而mplayer提供了这个命令。
获得视屏文件相关信息的命令为: mplayer -identify fileName -nosound -vc dummy -vo null
一 我首先对一个avi格式的视频文件进行了分割和合并,视频文件的名字为1.avi。
分割命令为: mencoder fileName -ovc copy -oac copy -o outputFile -ss BeginTime -endpos LastTime
我开始不知道在endpos后面接的参数何意,时间区间到底是[beginTime,lastTime]还是[beginTime, beginTime+lastTime],通过我的实验发现,后一个是正确的,也就说LastTime解释为持续时间。例如50秒的视频文件的分割参数可以为(0:00, 0:20),(0:21,0:20),(0:42,0:18)。ok,接下来一切就顺利了。
合并命令: mencoder file1Name file2Name ... filenName -ovc copy -oac copy -o outputFileName
在合并之后,发现合并的副本视频文件的总时间虽然和源文件的一样,但是大小变化了。不过还好,用播放器打开副本视频文件,肉眼基本看不出什么太大的问题。
我的下一个任务就是研究一种视频文件格式,能够创建一个空白的视频文件,要有完整的头部,最重要的就是当播放器打开的时候,有总时间的显示。而且我能够修改这个总时间。
看了下avi的格式,我的天~~自己太愚钝了,所以gg了,想着去看看最流行的flv格式。
好了,下面就是flv格式视频文件的分割和合并了。
二 flv格式视频文件的分割和合并
在flv文件的分割和合并之前,很重要的一件事情就是进行视频格式的转换。视频格式转换命令如下:
mencoder fileName -of lavf -ofps 24 -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 -srate 22050 -oac mp3lame -o outputFileName
我开始转换的时候没有加上 -of lavf -ofps 24 -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56导致转换的视频中,里面的视频流和音频流不匹配。
转换好了之后,分割命令为:
mencoder fileName -ovc copy -oac copy -of lavf -lavfopts format=flv -o outputFileName -ss BeginTime -endpos LastTime
合并命令为:
mencoder file1Name file2Name ... filenName -ovc copy -oac copy -of lavf -lavfopts format=flv -o outputFileName
虽然能够成功的分割和合并,但是有个重要的问题就是,合并的副本视频文件大小比原来小多了,利用播放器打开视频文件,发现其中有效果模糊的情况,可能是在合并的时候出现了掉帧的情况。这个问题一时还没有想到解决的方法,上网搜了下在windows下可以用copy命令,我搞之,结果failed。后来baidu才知道,原来并不是能用copy合并所有视频文件,只对只有MPG、AVI等可以(万恶的托拉斯!)。目前的问题有两个,搞定flv格式,能够随心建立空的flv文件;第二个就是我要不要把视频文件格式定义为mpg,这样还能用copy命令,就没有效果模糊丢帧的情况了,不过只要我搞定了flv格式的文件,我可以手动的进行文件的合并,这样也是十分可行的方案~
我利用mencoder主要干的两个事情就是视频的分割和合并。如果要对视频进行分割,最好提前知道它的总时间长度,而mplayer提供了这个命令。
获得视屏文件相关信息的命令为: mplayer -identify fileName -nosound -vc dummy -vo null
一 我首先对一个avi格式的视频文件进行了分割和合并,视频文件的名字为1.avi。
分割命令为: mencoder fileName -ovc copy -oac copy -o outputFile -ss BeginTime -endpos LastTime
我开始不知道在endpos后面接的参数何意,时间区间到底是[beginTime,lastTime]还是[beginTime, beginTime+lastTime],通过我的实验发现,后一个是正确的,也就说LastTime解释为持续时间。例如50秒的视频文件的分割参数可以为(0:00, 0:20),(0:21,0:20),(0:42,0:18)。ok,接下来一切就顺利了。
合并命令: mencoder file1Name file2Name ... filenName -ovc copy -oac copy -o outputFileName
在合并之后,发现合并的副本视频文件的总时间虽然和源文件的一样,但是大小变化了。不过还好,用播放器打开副本视频文件,肉眼基本看不出什么太大的问题。
我的下一个任务就是研究一种视频文件格式,能够创建一个空白的视频文件,要有完整的头部,最重要的就是当播放器打开的时候,有总时间的显示。而且我能够修改这个总时间。
看了下avi的格式,我的天~~自己太愚钝了,所以gg了,想着去看看最流行的flv格式。
好了,下面就是flv格式视频文件的分割和合并了。
二 flv格式视频文件的分割和合并
在flv文件的分割和合并之前,很重要的一件事情就是进行视频格式的转换。视频格式转换命令如下:
mencoder fileName -of lavf -ofps 24 -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 -srate 22050 -oac mp3lame -o outputFileName
我开始转换的时候没有加上 -of lavf -ofps 24 -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56导致转换的视频中,里面的视频流和音频流不匹配。
转换好了之后,分割命令为:
mencoder fileName -ovc copy -oac copy -of lavf -lavfopts format=flv -o outputFileName -ss BeginTime -endpos LastTime
合并命令为:
mencoder file1Name file2Name ... filenName -ovc copy -oac copy -of lavf -lavfopts format=flv -o outputFileName
虽然能够成功的分割和合并,但是有个重要的问题就是,合并的副本视频文件大小比原来小多了,利用播放器打开视频文件,发现其中有效果模糊的情况,可能是在合并的时候出现了掉帧的情况。这个问题一时还没有想到解决的方法,上网搜了下在windows下可以用copy命令,我搞之,结果failed。后来baidu才知道,原来并不是能用copy合并所有视频文件,只对只有MPG、AVI等可以(万恶的托拉斯!)。目前的问题有两个,搞定flv格式,能够随心建立空的flv文件;第二个就是我要不要把视频文件格式定义为mpg,这样还能用copy命令,就没有效果模糊丢帧的情况了,不过只要我搞定了flv格式的文件,我可以手动的进行文件的合并,这样也是十分可行的方案~
相关文章推荐
- 利用mencoder进行视频分割和合并
- mencoder进行视频分割合并
- mencoder和ffmpeg分割合并视频(1)--基础命令
- 使用mencoder进行视频分割
- 利用FFmpeg进行视频文件进行分割
- mencoder和ffmpeg分割合并视频
- Android 使用mp4parser进行视频的分割与合并
- 利用FFMPEG进行视频分割
- 利用FFmpeg进行视频文件进行分割
- 基于USB摄像头视频数据采集和利用FFMPEG库函数进行视频数据压缩
- 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
- 利用OpenCV进行【视频的读取】与【保存视频文件或者图像】源码!~
- 用Mencoder进行任意视频格式转换成flv
- 利用VTD-XML剪切、粘贴、分割以及合并XML文档
- 利用Flash获取摄像头视频进行动态捕捉
- 在android中进行视频的分割
- 视频无损剪切分割截取合并工具
- 利用ffmpeg来合并视频
- Android利用mediacodec进行视频H264编码解码播放
- 简单的实现了利用plist进行大图分割小图