ffmpeg - 将压缩的 swf 转换为 mp4

标签 ffmpeg flash mp4 video-conversion

我正在寻找一个将 swf 无损转换为 mp4 的批处理脚本。我尝试同时使用 ffmpeg 和 handbrake,但显然 swf 已被压缩,我无法以这种方式转换它们。

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

HandBrakeCLI -i source -o destination

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

最佳答案

咬牙切齿:

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 需要知道颜色空间(rga32)尺寸和输入 fps。我们告诉它合并音频(160kbps mp3),以 30fps 的速度渲染视频

您需要额外的标志来获得无损 mp4。

关于ffmpeg - 将压缩的 swf 转换为 mp4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194270/

相关文章:

ios - iOS 上的交互式 Flash 内容

flash - 直播摄像头和麦克风不带闪光灯

python - 如何使用Python在网页上显示视频?

Java如何重写MP4视频并改变其方向

format - MP4 文件格式规范

ffmpeg 将 yuv400p16le 转换为 yuv42016le

audio - FFmpeg:如何将所有音频流合并为立体声

video - 从视频中提取图像并使用这些图像重建视频

video - 如何使用ffmpeg获取给定时间戳的帧号

python - 在python中结合mp4和wav