【问题标题】:Convert swf file to mp4 using ffmpeg使用 ffmpeg 将 swf 文件转换为 mp4
【发布时间】:2016-01-14 02:39:50
【问题描述】:

我需要使用 ffmpeg 命令(命令行)将 swf 文件转换为 mp4 文件。 swf 文件中有文本也必须转换。 但是当我使用以下 ffmpeg 命令转换文件时,swf 文件中的文本不会转换为 mp4 / mp4 文件中没有可见的文本:

ffmpeg -i file.swf video.mp4

还有其他的文字转换命令吗?

【问题讨论】:

  • 经过几个小时的搜索,我发现这个应用程序可以将 .swf 转换为 mp4 和 html5,声音和所有内容都同步,还有许多其他格式也可以批量处理:iDealshare_VideoGo_6.0.6.5638

标签: flash command-line ffmpeg command-line-arguments mp4


【解决方案1】:

ffmeg 不支持swf 中的shapes and sprites。它只能转换swf 文件中包含的视频(Sorenson Spark,VP6)、音频(pcm、adpcm、mp3)和图像(jpeg)。您将不得不寻找其他工具。

【讨论】:

  • 感谢您的回复!你知道有什么其他工具可以进行转换吗?
  • 不幸的是,我不知道任何第 3 方工具。如果我没记错的话,Adobe Flash 可以选择将动画导出为视频。
【解决方案2】:

我遇到了同样的问题。我的做法是使用 gnash 的原始输出。

以下 bash 脚本总结了单个步骤。

#!/bin/bash

SWFFILE=$1
MP4FILE=${SWFFILE%.*}.mp4
TMPFILE=/tmp/$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 32 | head -n 1).bin
TMPMP4=/tmp/$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 32 | head -n 1).mp4

# create raw-dump
GNASHCMD="dump-gnash -1 -r 1 -D $TMPFILE $SWFFILE"
OUTPUT="$(exec $GNASHCMD)"

# extract parameters
WIDTH="$(echo $OUTPUT | grep -o 'WIDTH=[^, }]*' | sed 's/^.*=//')"
HEIGHT="$(echo $OUTPUT | grep -o 'HEIGHT=[^, }]*' | sed 's/^.*=//')"
FPS="$(echo $OUTPUT | grep -o 'FPS_ACTUAL=[^, }]*' | sed 's/^.*=//')"

# create raw, uncompressed mp4 file
mplayer $TMPFILE -vo yuv4mpeg:file=$TMPMP4 -demuxer rawvideo -rawvideo fps=$FPS:w=$WIDTH:h=$HEIGHT:format=bgra

# create compressed mp4 (ffmpeg should work as well)
avconv -i $TMPMP4 $MP4FILE

# clean up
rm -rf $TMPFILE
rm -rf $TMPMP4

【讨论】:

  • 如何在您的示例中将声音包含到结果 MP4 中?
猜你喜欢
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2017-02-16
  • 1970-01-01
相关资源
最近更新 更多