2015-10-15 117 views
1

我需要使用ffmpeg命令(命令行)將swf文件轉換爲mp4文件。 swf文件中的文本也必須轉換。 但是當我轉換使用swf文件下面的ffmpeg命令文本文件不會轉換爲MP4 /沒有文字是在MP4文件中看到:使用ffmpeg將swf文件轉換爲mp4

ffmpeg -i file.swf video.mp4 

是否有任何其他命令將文本轉換?

回答

3

ffmeg不支持shapes and spritesswf。它只能轉換包含在swf文件中的視頻(Sorenson Spark,VP6),音頻(pcm,adpcm,mp3)和圖像(jpeg)。你將不得不尋找另一種工具。

+0

感謝您的回覆!你知道任何其他轉換工具嗎? – Hussnain

+0

不幸的是,我不知道任何第三方工具。如果我沒有記錯,Adobe Flash可以選擇將動畫導出爲視頻。 – aergistal

1

我有同樣的問題。我的四處走動是使用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 
+0

如何在您的示例中將聲音添加到結果MP4中? –

+0

在這裏回答:http://stackoverflow.com/a/39304403/630169 –

相關問題