加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ffmpeg – 将压缩的swf转换为mp4

发布时间:2020-12-15 07:33:35 所属栏目:百科 来源:网络整理
导读:我正在寻找一个批量脚本将swf转换为mp4,无损.我尝试使用ffmpeg和handbrake,但显然swf是压缩的,我不能以这种方式转换它们. ffmpeg -i input -c:v libx264 -preset ultrafast -qp 0 output.mkvHandBrakeCLI -i source -o destination 我知道我使用像xilisoft这
我正在寻找一个批量脚本将swf转换为mp4,无损.我尝试使用ffmpeg和handbrake,但显然swf是压缩的,我不能以这种方式转换它们.

ffmpeg -i input -c:v libx264 -preset ultrafast -qp 0 output.mkv

HandBrakeCLI -i source -o destination

我知道我使用像xilisoft这样的工具,但是我有超过3000个视频,需要自动运行.有没有脚本/算法可以帮助我自动化这个过程?

解决方法

获取gnash:

git clone git://git.sv.gnu.org/gnash.git

您需要一堆依赖关系才能构建它(应该能够让它们全部):

libsdl-dev
libboost-dev
libagg-dev

然后配置和构建gnash视频转储器:

cd gnash

./autogen.sh

./configure --enable-renderer=agg 
               --enable-gui=dump 
               --disable-menus 
               --enable-media=ffmpeg 
               --disable-jemalloc

make

然后,您可以将dump-gnash指向swf,并将渲染原始视频和音频

dump-gnash -1 
                   -D /tmp/out.raw@30 
                   -A /tmp/out.wav                       
                   -P "FlashVars=myURL=http://example.com/blah&online=true" 
                   http://example.com/blah/some.swf 

这将写入/tmp/out.raw(这是bgra aka rgb32视频)在30fps(@ 30位)和/tmp/out.wav

这些需要重新组合到例如mp4使用:

ffmpeg -i /tmp/out.wav 
       -f rawvideo 
       -pix_fmt rgb32 
       -s:v 800x550 
       -r 30 
       -i /tmp/out.raw 
       -c:v libx264 
       -r 30 
       -b 160k 
       /tmp/out.mp4

因为它的原始视频,ffmpeg需要知道colourspace(rga32)的尺寸和输入fps.我们告诉它结合音频(160kbps mp3),渲染视频30fps

您将需要额外的标志来获得无损MP4.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读