怎么把WMV转换成MP4?


Answers:


49

您可以使用FFmpeg(适用于Mac,Linux和Windows的免费命令行工具)将WMV编码为MP4。这是一个示例语法:

ffmpeg -i input.wmv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

这将使用默认质量将视频编码为H.264视频和AAC音频。要更改视频质量,请使用其他CRF值,其中CRF值越低越好,例如20或18。对于音频,默认质量为100%。增加价值以获得更好的质量。

具体来说,对于AppleTV,这就是Apple表示支持的功能:

最高1080p的H.264视频,每秒30帧,高或主要配置文件级别4.0或更低,基准配置文件级别3.0或更低,具有AAC-LC音频,每通道高达160 kbit / s,48 kHz,立体声音频为.m4v ,.mp4和.mov文件格式

因此,您可以使用以下命令强制设置30 Hz帧频和High profile:

ffmpeg -i input.wmv -c:v libx264 -crf 23 -profile:v high -r 30 -c:a libfaac -q:a 100 -ar 48000 output.mp4

10
我只是尝试在Fedora 19上使用此解决方案,然后遇到错误:未知编码器'libaac'似乎,在某个发行版之后,ffmpeg不包含带有libfaac支持的二进制发行版本,因此您需要从源代码构建。相反,我将'libfaac'更改为'aac',并添加了--strict -2标志,并且转换成功进行。
roartechs

4
无法识别选项'C:V'无法为选项C:V'设定值'libx264'
E-info128

5
我遇到了与roartechs完全相同的问题,并使用ffmpeg -i input.wmv -c:v libx264 -crf 23 -c:a aac -strict -2 -q:a 100 output.mp4
Jeremy Tammik

警告,在大多数情况下,23与20有显着差异,而22几乎没有引起注意,并且18很难发现与原始版本之间的任何差异。
德米特里

18

手刹。多平台且免费。

HandBrake是GPL许可的开源多平台多线程视频转码器,可用于MacOS X,Linux和Windows。

支持的来源:

  • libavformat和libavcodec支持的最常见的多媒体文件。

  • 任何不受复制保护的DVD或类似Bluray的源。(不支持删除复制保护)

输出:

  • 档案格式:MP4(M4V)和MKV

  • 视频:H.264(x264),MPEG-4(ffmpeg),MPEG-2(ffmpeg)或Theora(libtheora)

  • 音频:AAC,CoreAudio AAC / HE-AAC(仅OS X),MP3,Flac,AC3或Vorbis。AC-3,DTS,DTS-HD,AAC和MP3直通。

2
HandBrake无效。我收到一条错误消息,提示“找不到标题。请确保您选择了有效的,不受复制保护的源。您的源可能受复制保护,掌握不当或Handbrake不支持的格式。” 而且我认为HandBrake不支持wmv。
09年

7
很抱歉听到。它通过了“在我的机器上工作”测试:

为我工作了0.9.4手刹。
塞巴斯蒂安

@RandolphWest您的机器是什么,如果可以使用的话?
bwerks

@ burnt1ce在得到完全相同的错误之后,只有先使用Citrix的g2mtranscoder.exe转码,然后再使用Handbrake 0.9.8,才能够使用Handbrake转换GoToMeeting wmv。
bwerks

4

如果您尝试转换由GoToMeeting创建的WMV文件(又称SEO目的是Go2Meeting ),则上述所有解决方案都可能会失败,因为视频是使用特定于citrix的g2m4编解码器编码的,这会使转码器感到窒息。

我发现此页面指导使用getomeeting提供的g2mtranscoder.exe从g2m到常规WMV的转码,该页面将对视频进行转码,以便您随后可以使用常规工具将其转码成您选择的格式(如本文档中的其他答案)线)。


您确定FFmpeg不执行GoToMeeting编解码器吗?它列在中 ffmpeg -codec,但是没有D标志,所以我不知道它是否完全受支持。
slhck 2012年

@slhck第一步,我自己尝试了FFmpeg,虽然确实将视频编解码器标识为Video:g2m(G2M4 / 0x344D3247),但出现错误“无法将选项值“ -1”解析为像素格式” 。用g2mtranscoder进行就地转码后,我便能够使用手刹正常地进行转码。我确实计划尝试使其与FFmpeg一起使用,以便使此过程完全自动化。
bwerks

2
./ffmpeg -y -i input.wmv -vcodec libx264 -acodec libfaac -ab 128k -ac 2 -b 300 -threads 4 -flags +loop -cmp +chroma -partitions 0 -subq 1 -trellis 0 -refs 1 -coder 0 -bufsize 10M  -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 output.mp4

我不知道所有选项/标志的含义,但这似乎可以正常工作并获得Flash流式MP4文件,但是视频质量不是很高。

我安装的编解码器库是用于H.264AAC视频和音频编解码器的libx264和libfaac 。


2

www.media-convert.com是一项免费的基于Web的服务,可转换各种音频和视频格式。无需安装任何软件。忽略添加项,只需从下拉菜单中选择文件类型。


1
但是,非常有趣的是,它不会输出720p +品质的视频。mp4的最大分辨率为640x480。但是肯定是+1。
09年

1

MediaCoder应该做得很好!

自2005年以来,MediaCoder是一个免费的通用媒体转码器。它以一种优雅,透明的方式将大多数流行的音频/视频编解码器和工具集成到一个多合一的转码解决方案中。通过灵活且可扩展的体系结构,最新的编解码器和工具会不断更新。MediaCoder打算一直是进行媒体转码的瑞士军刀。


酷,我现在下载它。
09年



0

我无法在Ubuntu Server 14.10(Utopic Unicorn)上安装FFmpeg ,因此我使用了HandBrake。安装后,我使用了thanhsiang.org/faqing的脚本:

  1. 创建一个.sh文件,例如, convert.sh
  2. chmod +x convert.sh
  3. 配置SRC和DEST目录+ DEST_EXT
  4. ./convert.sh

文件convert.sh

#!/bin/bash

# This script is to convert automatically a folder of video files to MP4.
# You need to change SRC -- Sourse folder and DEST -- Destination folder
# The MP4 format is 480x270.

SRC=/home/video/
DEST=/home/www/mp4files/
DEST_EXT=mp4
HANDBRAKE_CLI=HandBrakeCLI

for FILE in `ls $SRC`
do
        filename=$(basename $FILE)
        extension=${filename##*.}
        filename=${filename%.*}

        $HANDBRAKE_CLI -i $SRC/$FILE -o $DEST/$filename.$DEST_EXT -e x264 -q 22 -r 12 -B 64 -X 480 -O
done

对我来说,这是最快的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.