如何Linux将.OGV格式转换为.AVI视频格式
时间:2020-01-09 10:42:07 来源:igfitidea点击:
如何使用Linux或者Unix bash命令行选项将.ogv转换为.avi?
您可以使用以下任一命令将.ogv转换为.avi视频/音频格式。
" mencoder"(MPlayers电影编码器)是一种简单的电影编码器,旨在将MPlayer可播放的电影编码为其他MPlayer可播放的格式。
它以1、2或者3遍编码为MPEG-4(DivX/Xvid),libavcodec编解码器之一和PCM/MP3/VBRMP3音频。
此外,它还具有流复制功能,强大的滤镜系统(裁剪,扩展,翻转,后处理,旋转,缩放,噪点,RGB/YUV转换)等。FFmpeg
另一个适用于Linux和Unix操作系统的视频转换器命令行应用程序。
使用Mencoder命令将.ogv视频文件转换为.avi
执行以下命令:
mencoder input.ogv -ovc lavc -oac mp3lame -o output.avi
其中:
- input.ogv:您的.ogv文件。
- -ovc lavc:使用libavcodec编解码器进行编码。
- -oac mp3lame:使用灯泡mp3音频编解码器进行编码。
- -o output.avi:输出文件,即.avi文件。
验证文件类型,执行:
$ file my-demo-video.ogv
输出示例:
my-demo-video.ogv: Ogg data, Skeleton v3.0
使用Mencoder进行转换,执行:
$ mencoder my-demo-video.ogv -ovc lavc -oac mp3lame -o my-demo-video.avi
输出示例:
MPlayer SVN-r31918 (C) 2000-2010 MPlayer Team success: format: 0 data: 0x0 - 0x3cd7b3 libavformat file format detected. [ogg @ 0x2b6b100] max_analyze_duration reached [lavf] stream 1: video (theora), -vid 0 VIDEO: [theo] 1264x848 0bpp 15.000 fps 0.0 kbps ( 0.0 kbyte/s) [V] filefmt:44 fourcc:0x6F656874 size:1264x848 fps:15.000 ftime:=0.0667 Opening video filter: [expand osd=1] Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1 ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [fftheora] vfm: ffmpeg (FFmpeg Theora) ========================================================================== Movie-Aspect is 1.49:1 - prescaling to correct movie aspect. videocodec: libavcodec (1264x848 fourcc=34504d46 [FMP4]) Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Pos: 0.1s 2f (12%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0] [VD_FFMPEG] DRI failure. Pos: 42.8s 642f (100%) 143.88fps Trem: 0min 2mb A-V:0.000 [494:0] Flushing video frames. Writing index... Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Video stream: 494.277 kbit/s (61784 B/s) size: 2644380 bytes 42.800 secs 642 frames
使用ffmpeg命令将.ogv视频文件转换为.avi
执行以下命令:
$ ffmpeg -i my-demo-video.ogv -vcodec mpeg4 -sameq -acodec libmp3lame my-demo-video.avi
输出示例:
FFmpeg version SVN-r0.5.9-4:0.5.9-1, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.9-1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Jun 10 2012 08:33:06, gcc: 4.4.5 Input #0, ogg, from 'my-demo-video.ogv': Duration: 00:01:01.00, start: 0.000000, bitrate: 522 kb/s Stream #0.0: Invalid Codec type -1 Stream #0.1: Video: theora, yuv420p, 1264x848, PAR 1:1 DAR 79:53, 15 tbr, 15 tbn, 15 tbc Output #0, avi, to 'my-demo-video.avi': Stream #0.0: Video: mpeg4, yuv420p, 1264x848 [PAR 1:1 DAR 79:53], q=2-31, 200 kb/s, 90k tbn, 15 tbc Stream mapping: Stream #0.1 -> #0.0 [mpeg4 @ 0x25ee4c0]removing common factors from framerate Press [q] to stop encoding frame= 642 fps=171 q=0.0 Lsize= 2114kB time=60.00 bitrate= 288.6kbits/s video:2087kB audio:0kB global headers:0kB muxing overhead 1.294511%
转换许多文件
创建一个名为ovg2avi的shell脚本,如下所示:
#!/bin/bash # ovg2avi - Covert ovg to avi # Author: <www.theitroad.local> Under GPL 2.0+ # ------------------------------------------------------ input="" output="${input%%.ogv}.avi}" die(){ echo -e "$@" exit 1 } [ $# -eq 0 ] && die "Usage:for o in *.ogv do /path/to/ovg2avi "$o" doneinput.ovg\n\tI will convert .ovg file to .avi format." [ ! -f "$input" ] && die "Error $input file not found." if [ -f "$output" ] then read -p "Warning output file $output exists. Overwrite (y/n)? " ans case $ans in y|Y|YES|Yes) mencoder "${input}" -ovc lavc -oac mp3lame -o "${output}";; esac fi
要隐藏许多文件,只需使用bash进行循环,如下所示:
##代码##