flash - 使用 ffmpeg 将 swf 文件转换为 mp4

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

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

ffmpeg -i file.swf video.mp4

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

最佳答案

我有同样的问题。我四处走动是使用 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

关于flash - 使用 ffmpeg 将 swf 文件转换为 mp4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151918/

相关文章:

java - 使用Red5需要Java吗

linux - 如何以尽可能少的步骤设置所有文件夹和所有文件的权限 CHMOD

linux - 如何从 linux 命令行纵向连接 SVG 文件?

javascript - Node.js 脚本似乎跳过了 fs.readFile 代码块

ffmpeg - 是否可以使用 ffmpeg 在单个命令中进行压缩和缩放?

ios - ActionScript 3 中 iPhone 的垂直滚动

flash - RobotLegs 域逻辑 - 将其放置在何处

linux - 无法使用 Flash Media Live Encoder 连接到 Linux VPS CentOS 服务器上的 Flash Media 服务器

windows - 使用 Windows 批处理脚本为文件夹中的每个文件应用命令

ffmpeg - Avisynth 总帧数不等于 VirtualDub 总帧数