skm*_*asu 19 flash mp4 ffmpeg video-conversion
我正在寻找一个批处理脚本来将swf转换为mp4,无损.我尝试使用ffmpeg和handbrake,但显然swf是压缩的,我无法通过这种方式转换它们.
ffmpeg -i input -c:v libx264 -preset ultrafast -qp 0 output.mkv
HandBrakeCLI -i source -o destination
Run Code Online (Sandbox Code Playgroud)
我知道我使用像xilisoft这样的工具,但我有超过3000个视频,需要自动运行.是否有可以帮助我自动完成此过程的脚本/算法?
jay*_*oby 21
获取gnash:
git clone git://git.sv.gnu.org/gnash.git
Run Code Online (Sandbox Code Playgroud)
在构建它之前,你需要一堆依赖项(应该能够apt-get all):
libsdl-dev
libboost-dev
libagg-dev
Run Code Online (Sandbox Code Playgroud)
然后配置并构建gnash视频转储程序:
cd gnash
./autogen.sh
./configure --enable-renderer=agg \
--enable-gui=dump \
--disable-menus \
--enable-media=ffmpeg \
--disable-jemalloc
make
Run Code Online (Sandbox Code Playgroud)
然后你可以在swf上指向dump-gnash,它将渲染原始视频和音频
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 \
Run Code Online (Sandbox Code Playgroud)
这将写出/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
Run Code Online (Sandbox Code Playgroud)
因为它的原始视频,ffmpeg需要知道colourspace(rga32)维度和输入fps.我们告诉它结合音频(160kbps mp3),以30fps的速度渲染视频
你需要额外的标志来获得无损mp4.
OS: Ubuntu (Linux)
Run Code Online (Sandbox Code Playgroud)
我不知道这是否无损,但至少我让转换部分工作(ffmpeg).
sudo apt-get install ffmpeg swftools
Run Code Online (Sandbox Code Playgroud)
首先我使用swfcombine解压缩:
swfcombine -d file.swf -o file_new.swf
Run Code Online (Sandbox Code Playgroud)
接下来我使用ffmpeg进行转换,这些参数可能不会无损
ffmpeg -i file.swf video.mp4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35249 次 |
最近记录: |