![](https://www.alaica.com/wp-content/uploads/linux-62.png)
我下载了ogg格式的文件,不受软件专利的限制。但是,我的视频编辑应用程序不接受 .ogv 视频文件。如何使用 Linux 或 Unix bash 命令行选项将 .ogv 转换为 .avi?
您可以使用以下任一命令将 .ogv 转换为 .avi 视频/音频格式。
[a] mencoder(MPlayer 的电影编码器)是一个简单的电影编码器,旨在将 MPlayer 可播放的电影编码为其他 MPlayer 可播放的格式。它通过 1、2 或 3 次编码为 MPEG-4 (DivX/Xvid)(libavcodec 编解码器之一)和 PCM/MP3/VBRMP3 音频。此外,它还具有流复制功能、强大的过滤系统(裁剪、扩展、翻转、后处理、旋转、缩放、噪声、RGB/YUV 转换)等。
[b] FFmpeg – 另一个适用于 Linux 和 Unix 类操作系统的视频转换器命令行应用程序。
使用 mencoder 命令将 .ogv 视频文件转换为 .avi
键入以下命令:
mencoder 输入.ogv -ovc lavc -oac mp3lame -o输出.avi
在哪里,
- input.ogv :您的 .ogv 文件。
- -ovc lavc :使用 libavcodec 编解码器进行编码。
- -oac mp3lame :使用 lamp mp3 音频编解码器进行编码。
- -o output.avi :输出文件,即.avi 文件。
验证文件类型,输入:
$ file my-demo-video.ogv
示例输出:
my-demo-video.ogv:Ogg 数据,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 团队 成功:格式:0 数据:0x0 - 0x3cd7b3 检测到 libavformat 文件格式。 [ogg @ 0x2b6b100] 达到 max_analyze_duration [lavf] 流 1:视频(theora),-vid 0 视频:[theo] 1264x848 0bpp 15.000 fps 0.0 kbps(0.0 kbyte/s) [V] filefmt:44 fourcc:0x6F656874 大小:1264x848 fps:15.000 ftime:=0.0667 打开视频过滤器:[expand osd=1] 展开:-1 x -1, -1 ; -1,osd:1,纵横比:0.000000,圆形:1 =================================================== ======================= 打开视频解码器:【ffmpeg】FFmpeg的libavcodec编解码器家族 选择的视频编解码器:[fftheora] vfm:ffmpeg(FFmpeg Theora) =================================================== ======================= 电影宽高比为 1.49:1 - 进行预缩放以纠正电影宽高比。 视频编解码器:libavcodec (1264x848 fourcc=34504d46 [FMP4]) 正在写标题... ODML:方面信息尚不可用或未指定,未写入 vprp 标头。 正在写标题... ODML:方面信息尚不可用或未指定,未写入 vprp 标头。 Pos: 0.1s 2f (12%) 0.00fps Trem: 0min 0mb AV:0.000 [0:0] [VD_FFMPEG] DRI 失败。 Pos: 42.8s 642f (100%) 143.88fps Trem: 0min 2mb AV:0.000 [494:0] 刷新视频帧。 写索引... 正在写标题... ODML:方面信息尚不可用或未指定,未写入 vprp 标头。 视频流:494.277 kbit/s (61784 B/s) 大小:2644380 字节 42.800 秒 642 帧
使用 ffmpeg 命令将 .ogv 视频文件转换为 .avi
键入以下命令:
$ ffmpeg -i my-demo-video.ogv -vcodec mpeg4 -sameq -acodec libmp3lame my-demo-video.avi
示例输出:
FFmpeg 版本 SVN-r0.5.9-4:0.5.9-1,版权所有 (c) 2000-2009 Fabrice Bellard 等人。 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%
Converting many files
Create a shell script called ovg2avi as follows:
#!/bin/bash # ovg2avi - Covert ovg to avi # Author: Vivek Gite <www.example.com> Under GPL 2.0+ # ------------------------------------------------------- input="$1" output="${input%%.ogv}.avi}" die(){ echo -e "$@" exit 1 } [ $# -eq 0 ] && die "Usage: $0 input.ovgntI will convert .ovg file to .avi format." [ ! -f "$input" ] && die "Error $input file not found." if [ -f " $output " ] then read -p "警告输出文件$output存在。覆盖 (y/n)?" ans case $ans in y | 是| 是| 是的) mencoder " ${input} " -ovc lavc -oac mp3lame -o " ${output} " ;; esac 网络
要隐藏许多文件,只需使用 bash for 循环,如下所示:
for o in * .ogv do / path / to / ovg2avi " $o " 完成