音频和视频转码

时间:2020-03-05 18:38:47  来源:igfitidea点击:

对音频和视频进行转码以显示在网络上的最佳方法是什么?

我需要以编程方式进行。我想做类似YouTube或者Google Video的事情,用户可以上传他们想要的任何格式,然后将其编码为flv,mp3和/或者mp4. 我可以在我们的服务器上执行此操作,但是我更愿意使用EC2实例甚至Web服务。我们有一台Windows 2008服务器。

解决方案

回答

ffmpeg可以做到这一点,它是使用libavcodec的命令行工具。可以处理大多数视频格式的转换。如果需要,它的许可证是LPGL。我们可以通过编程方式将其用作单独的过程,或者,如果我们感觉很顽固,则可以自己使用libavcodec库直接进行编码。

回答

请注意,ffmpeg的某些部分在GPL之下。我相信libpostproc模块是,如果我没记错的话,这是在转码中使用的。确保此许可证与我们正在执行的操作兼容。

回答

当我们想转码为Flv(这可能是最适合网络的代码)时,我可以使用以下代码:

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

它在Linux下当然很好用:-)。

回答

我来看看Main Concept的参考SDK:

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

它是为转码而构建的,并且由于它是经过许可的SDK,因此与ffmpeg / libavcodec无关,没有任何法律问题。

回答

具体取决于我们要花费多少。如果这是一个崭新的(且几乎没有资金)的想法,那就走ffmpeg的路线,但是当我们扩展规模并希望提高质量时,请考虑可以自动使用的更专业的编码工具之一( 3个选项)。

回答

如果我们正在寻找GPL版本的东西:

对于音频混浊,请尝试sox。很强大!它做很多!它包含在大多数linux发行版中。

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

对于视频,mencoder令人印象深刻!它是mplayer软件包的一部分。它将处理大多数视频格式的转换。远远超过我梦dream以求的存在。 (有关文档,请参阅第9章MEncoder的基本用法和第10章MEncoder编码。)

关于它可以创建什么的限制。但是它确实支持mpeg4,mpeg2,dvd-mpeg,flv等。 (虽然我自己还没有尝试过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视频的宽屏播放器上播放,我曾使用" aspect = 16/9","-vf scale = 560:480,expand = 720:480,harddup"之类的暴行。)我们不想浪费编码黑条的位。)

到目前为止,这不是Mencoder的最有效的选择!运行可能很耗时。但是我还有其他目标...

回答

Rhozet Carbon Coder可以处理多种格式,此外我们还可以使用插件来更改视频(例如添加水印)

回答

我强烈推荐ffmpeg。在Windows上,我发现此站点托管良好的二进制文件。