转码音频和视频

问题描述:

将音频和视频转码为在网络上显示的最佳方式是什么?转码音频和视频

我需要以编程方式进行。我想做一些类似YouTube或Google Video的内容,用户可以上传他们想要的任何格式,然后将其编码为flv,mp3和/或mp4。我可以在我们的服务器上完成,但我宁愿使用EC2实例甚至是Web服务。我们有一台Windows 2008服务器。

我强烈推荐的ffmpeg。在Windows上,我发现this site承载好的二进制文件。

ffmpeg可以做到这一点,它是一个使用libavcodec的命令行工具。可以处理大多数视频格式的转换。如果符合您的需求,它的许可证是LPGL。您可以通过编程的方式将其作为单独的进程来使用,或者如果您觉得自己的核心,可以直接使用libavcodec库进行编码。

请注意,ffmpeg的某些部分在GPL下。我相信libpostproc模块是,如果我记得正确,这是用于转码。确保此许可证与您正在做的事情兼容。

+0

实际上ffmpeg的GPL部分是可选的,只有在使用--enable-gpl选项运行./configure时才包含。 – mouviciel 2009-02-16 16:19:45

当你要转码的FLV(这可能是最好的网站),然后我用这条线:

ffmpeg -hq -y -i $directory/$file -r 20 -s 300x200 -deinterlace -ar 22050 $directory/$file.flv 1>/dev/null 2>/dev/null 

它非常好,当然在linux的:-)。

我会看看主要概念的参考SDK:

http://www.mainconcept.com/site/developer-products-6/pc-based-sdks-20974/reference-sdk-21221/information-21243.html

它是专为转码,因为它是有执照的SDK它没有任何周围的ffmpeg /法律问题libavcodec的。

类型取决于你想花多少钱。如果这是一个全新的(并且大部分没有基金)的想法,那么去ffmpeg路线,但是当你扩大规模并寻求提高质量时,考虑一种可以自动化的更专业的编码工具(Rhozet,Inlet,Digital Rapids 3个选项)。

如果您正在寻找GPL的东西:

对于音频混日子,尝试sox.很强大!它做了很多!它包含在大多数Linux发行版中。

还有着名的LAME用于mp3 [音频]编码。

对于视频,mencoder令人印象深刻!它是mplayer包的一部分。它将处理大多数视频格式的转换。远远超过我梦寐以求的存在。 (有关文档,请参见Chapter 9. Basic usage of MEncoderChapter 10. Encoding with MEncoder。)

它可以创建的内容稍微有限。但它支持MPEG4 MPEG2DVD-MPEGFLV,等等。 (虽然我自己并没有尝试过flv,但Google显示其他人正在使用它。)

我做的事情,如JPEG +声音 - > Mpeg4电影:

nice +20 $MENCODER mf://${JPEGFILE} -mf w=720:h=480:fps=1/${SOUNDLENGTH}:type=jpeg -audiofile ${SOUNDFILE} -ovc lavc -oac lavc -lavcopts vcodec=mpeg4 -ofps 30000/1001 -o ${MENU_MPG} 

或转码任意格式化的视频到DVD兼容的MPEG:

nice +20 $MENCODER -edl ${EDL} -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=${VBITRATE}:keyint=18:acodec=ac3:abitrate=192:aspect=4/3:trell:mbd=2:dia=4:cmp=3:precmp=3:ildctcmp=3:subcmp=3:mbcmp=3:cbp:mv0:dc=10 -of mpeg -mpegopts format=dvd -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -ofps 30000/1001 -o ./${INFILE}.reformatted ${FILEPATH} 

-edl/-edlout [编辑决策列表]仅用于剪切我想要的视频部分。

对于DVD-mpeg-video,$ {VBITRATE}通常为5000。但如果你有点漏洞,你可以把更多的视频压缩到DVD上。假设你可以容忍这些工件。

scale = 720:480,harddup - 我的dvdplayer的刻度尺出错,harddup在我的“el cheapo”播放器上解决声音 - 视频不同步问题。

(要播放的宽屏播放器,不会处理4x3的视频,我用像暴行“纵横=九分之十六”“-vf规模= 560:480,扩大= 720:480 ,harddup“。但是一般来说,你不想浪费编码黑条的位。)

这不是迄今为止最有效的一组选项到mencoder!运行可能很耗时。但我心中有其他目标......

Rhozet Carbon Coder可以处理wide range of formats再加上你可以使用插件来改变视频(例如添加水印)