Archived flashes:
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2247 · P4493

<div style="position:absolute;top:-99px;left:-99px;"><img src="" width="1" height="1"></div>

Required text body length: 2 characters. Maximum: 15000 characters.
A file is optional.

Age: 1570.7d   Health: 100%   Posters: 12   Posts: 40   Replies: 33   Files: 0

>>!///SWFAnts  #ADMIN#  5jun2015(fr)05:58  No.20447  SWF  P1

All discussion of goes here.

Trivia: SwfH264 took exactly 10 days to develop.

>>Anonymous  5jun2015(fr)23:07  No.20464  A  P2R1
Sorry for being stupid,
but what's the difference to flvmaker, which can also embed flv into swf. From what I've seen I assume the flvs with flvmaker cannot be used by this program, can they?
>>!///SWFAnts  #ADMIN#  6jun2015(sa)01:09  No.20467  SWF  P3R2
You can use .flv-files created with FLV Maker in SwfH264 but there isn't much point in doing so.

FLV files created in FLV Maker are encoded using VP6 + Mp3. These can be embedded into the main timeline of a swf, having the benefit of being seekable to every frame and being streamed (you can start watching the video before downloading the entire flash).

FLV files created for SwfH264 are encoded using H.264 + AAC (newer codecs). Those will produce much better quality than the old VP6/Mp3 combo but cannot be embedded into the main timeline of a swf. Flashes created from SwfH264 simulates that the FLV is being downloaded from somewhere else and due to how byte arrays are embedded into swf files the flash must be fully downloaded before the video can start to play.

If you use a VP6/Mp3 kind of FLV with SwfH264 there will be no increase in quality per byte, the streaming feature will just be sacrificed for nothing. Also, FLVs that are created with FLV Maker must still have their metadata fixed or else they won't be seekable in the flash created with SwfH264 (the reason that they are seekable in flashes created with the toolkit in FLV Maker is because they are able to be embedded on the main timeline - and then they are more accurately seekable because they don't rely on keyframes in the video).

>>!///SWFAnts  #ADMIN#  9jun2015(tu)20:20  No.20509  SWF  P4
Version 1.1.0 has been released

If you discover any bugs or anything else that looks weird please mention it here.

>>Horsie  14jun2015(su)01:41  No.20601  B  P5R3
Why I can't save the SRT file I created from the app? If I want to correct any mistakes or make a better version, must I start from zero?
Or better, make an option to save all the options plus the subtitles to a file that you can load after.
Also, if the subtitles have more than two lines of text, from the third line, the text is cut.

Fun little app to play with. I posted my experiment with it here:

>>!///SWFAnts  #ADMIN#  14jun2015(su)03:27  No.20605  SWF  P6R4
Glad to see it being used! All the things you mentioned are already noted on the "Possible Improvements"-list towards the bottom of the project page, except that part about subtitle text being cut from the third line. I'll make a note of that and will look into it the next time I make an update.

For now I recommend that you always create the subtitles using a proper .srt program. It's mentioned on the project page as well in the example (next to the third screenshot).

I didn't want to go overboard with the initial features in SwfH264, as with most of what I do I try not to waste too much time on something until I see it actually being used by people. Further development of SwfH264 depends on if I start seeing many flashes created by it, or if people demonstrate interest in the program by posting here.

>>Anonymous  14jun2015(su)21:39  No.20617  A  P7R5
I've seen one or two created already on /f/ as well.
>>Anonymous  15jun2015(mo)00:42  No.20624  C  P8R6
> Gulim.ttc 13,525,204 bytes
> Meiryo.tcc 9,749,256 bytes
> Anzumoji.ttf 5,552,040 bytes

How in the hell can vector fonts be that large? Did they include every Unicode code point in existence?

>>Anonymous  15jun2015(mo)01:58  No.20626  C  P9
To be more constructive about that:
Gulim, Meiryo and Arial Black are bundled with Windows. You could reduce your distribution size by 11MB by dropping them and fetching them from "%windir%/fonts". You could check "/usr/share/fonts/", "~/.local/share/fonts", "/Library/Fonts" and "/System/Library/Fonts" as well to make Mac/Linux people happy.

Or just:
java.awt.GraphicsEnvironment.getLocalGraphicsEnvi ronment().getAllFonts()
to get every font installed on the system, regardless of platform.

>>!///SWFAnts  #ADMIN#  15jun2015(mo)02:34  No.20629  SWF  P10R7
I included those just to be sure they would always be available, though I was thinking about dropping Gulim and Meiryo since they are so large. They probably won't be used much and should be available anyway when needed. Might replace them in future versions with something more fun, especially Meiryo since it's a bit luxurious to have two Japanese fonts when I think about it. Arial Black is so small (just 117 KiB) so might as well keep that one since it's the initial font for the source bar.

The default behavior of loading a font in Java should be cross-platform, as far as I know it always searches all available locations for the entered font name and should find it as long as it's installed.

>>Anonymous  5jul2015(su)17:35  No.21198  D  P11R8
Could you share sources for template.swf for people who want to change preloader animation?

I tried to decompile it and managed to build a working version. Unfortunately video/subtitles embedded data was loaded in frame 1 (instead of frame3) meaning that preloader didn't work at all. My Flash/AS3 knowledge is too weak to fix that.

>>Aedako  5jul2015(su)20:48  No.21201  C  P12R9
You could try manually moving the embedded data using Flashbulb. Click a DefineBinaryData tag, click the right-facing green arrow, click the red X to delete the original tag, click a tag with a "3" next to it, press the curvy left-facing arrow to insert the tag into frame 3 of the file. 'course you'd have to do this for every file you made. If you upload the swf somewhere I'll do it for you, out of curiosity to see if it'll work.

Flashbulb's here if you want to try:

>>Aedako  5jul2015(su)20:59  No.21203  C  P13
Correction: you actually wouldn't have to do it every time. Flashbulb should be able to import FLVs directly into the DefineBinaryData tag, so you could swap out videos that way. Captions may be another story.
>>Aedako  5jul2015(su)21:10  No.21206  C  P14
Yep, just checked. The FLV can be swapped out. Swapped out captions in SRT format are displayed but with dropped characters.
>>Aedako  5jul2015(su)21:19  No.21207  C  P15
Thinking about it, Flash only stores the characters it actually uses in its font tags. If you used SwfH264 to make a video with subtitles with every alphanumeric character, then replaced the fonts of your template file with the ones from that video, you would be able to freely swap out captions too.

I seriously need to stop replying to myself.

>>!///SWFAnts  #ADMIN#  6jul2015(mo)02:21  No.21211  SWF  P16R10
Not ready to open source anything for this project, at least not yet. But I'll make a TODO of trying to add the possibility of a custom preloader, or the option of removing the preloader completely.

>Unfortunately video/subtitles embedded data was loaded in frame 1 (instead of frame3) meaning that preloader didn't work at all.
With the .fla project open go to "File" > "ActionScript Settings..." to open the Advanced ActionScript 3.0 Settings window. There you change "Export classes in frame" from 1 to 3. Perhaps that will get your hack to work?

>>Anonymous  6jul2015(mo)19:34  No.21230  D  P17R11
Thanks, both methods work. Though obviously just changing settings in Adode Flash is much simpler.
>>godk  18sep2015(fr)19:36  No.23709  E  P18R12
sauce now please

C'mon, do the right thing and release sourcecode. No point in keeping progression of this app in the gutter. Once the source is released, we can get on about fixing the loose ends and wrapping it in a proper WYSIWYG interface for those who don't into Adobe+Sony. (parametric controls are for linuxfhags, not humanz)

>>Anonymous  21sep2015(mo)16:51  No.23794  F  P19R13
Could you add more non-fancy fonts? Maybe something with serifs…
>>!///SWFAnts  #ADMIN#  21sep2015(mo)20:14  No.23798  SWF  P20R14
I intend to improve the program myself but I'm busy with another project at the moment. Sorry man.

I'll probably include less fonts in the next version to be honest. It's because you can use any font that is installed on your computer, go to Control Panel > Fonts to browse everything you can use in SwfH264.

However if you have a suggestion for a super good font that people usually don't have installed by default in Windows please let me know!

>>Anonymous  26jan2016(tu)23:28  No.27211  G  P21R15
Is there anyway to force an output resolution?

The biggest issue is that 4:3 videos that look great at 360p are expanded by default to a great size, even larger than my web browser window.

If it would possible to just have a patched release that outputs smaller defaults, that would be fine also.

>>!///SWFAnts  #ADMIN#  27jan2016(we)00:33  No.27212  SWF  P22R16
The swf file is stretching the video inside of it, the actual video is still 360p so there's no actual change in the video's resolution. If you're worrying about any change in the video file you don't need to, SwfH264 doesn't change the video at all. There is no upscaling. You can resize the swf player to a smaller size if you'd like to. Er, I guess it was a strange decision of me to make the player always have a certain size. I think my reasoning at the time was that I wanted people to be able to open the flash and watch it immediately without having to put it in fullscreen (since low resolution videos otherwise would be so small on a modern screen). I'll add another TODO to the pile though. If you really, really want a smaller swf file I think it would be safe to hack the output swf and just change the resolution in its header. If you intend to embed it on a webpage you can just change its width/height with HTML. The key thing to remember is that the size of the swf doesn't affect the quality or resolution of the embedded video.
>>Anonymous  27jan2016(we)05:56  No.27216  G  P23R17
Thanks, editing the resolution in JPEXS did the trick.

Its just kind of ugly when a low bitrate >360p video is enlarged to nearly the entire browser window.

>>!Wulf.Eb.mY  2feb2016(tu)00:47  No.28388  H  P24R18
Just a heads up for the ffmpeg thing, it's better to put the -ss before the -i as doing it with -i first causes ffmpeg to load the entire file before skipping to the piece of time you want, while -ss being first makes it skip to that time and then load the remaining.

Also a tip about the AAC codec: ed_Audio_Coding#Encoders_.2F_Decoders_.28Supported _Platforms.29
Check the table on the right. Not trying to push you toward, just giving you the information I've been told, in case you were wondering ever at some point. I personally use FDK.

>>!///SWFAnts  #ADMIN#  2feb2016(tu)08:46  No.28394  SWF  P25R19
I appreciate all the help I can get with making the best possible general-solution ffmpeg options to come bundled with SwfH264. I know that there are people that encode a lot more stuff than I.

Have a few notes on what to change in the next version of SwfH264. Here's all the changes so far:


ffmpeg.exe -ss 00:00:00.000 -i "input.mp4" -vb 555k -t 99:00:00.000 -r 18.0 -vf crop=iw-0000*2:ih-0000*2,scale=-1:ih*1.00 -keyint_min 9 -g 180 -pass 1 -passlogfile pinfo_delme -tune grain -pix_fmt yuv420p -profile:v high -level 5.2 -preset veryslow -max_interleave_delta 0 -vcodec libx264 -sn -acodec aac -strict experimental -ac 2 -ar 44100 -ab 64k -cutoff 18000 -f flv -y NUL
ffmpeg.exe -ss 00:00:00.000 -i "input.mp4" -vb 555k -t 99:00:00.000 -r 18.0 -vf crop=iw-0000*2:ih-0000*2,scale=-1:ih*1.00 -keyint_min 9 -g 180 -pass 2 -passlogfile pinfo_delme -tune grain -pix_fmt yuv420p -profile:v high -level 5.2 -preset veryslow -max_interleave_delta 0 -vcodec libx264 -sn -acodec aac -strict experimental -ac 2 -ar 44100 -ab 64k -cutoff 18000 -f flv -y "output.flv"


Note that this might change when the time comes. Especially "-tune grain", which wants the input video to be of excellent quality. "-acodec libvo_aacenc" was replaced with "-acodec aac -strict experimental" because the native experimental AAC encoder is supposed to give better quality than libvo_aacenc from what I've read. I'd like to make the new acodec "libfdk_aac" instead (for Fraunhofer AAC encoder) if I can get a compiled version of ffmpeg.exe with the codec installed. Don't know if Apple AAC is possible? That sounds very licence-esque.

The bundled general-solution will be 2-pass since that improves quality further, even if that means changing stuff on two lines. Question is if it always improves it or if it could make it worse sometimes? I actually did try 2-pass out for the first version of SwfH264 but I must have fucked it up because I didn't notice any quality improvement and decided to skip it for simplicity's sake. But since then I've noticed that yes of course it improves the final result. If someone sees this that happens to be an expert on making 2-pass encodings with ffmpeg please post any advice that you can! Maybe there's more to it than I've written in this post?

>>Le Circleloader  10feb2016(we)03:10  No.28622  I  P26R20

Two-pass encoding is used when you want a consistent average video quality throughout a video at a specific resulting file size. What is really going on behind the scenes is on the first pass, ffmpeg analyzes the file and builds a data structure that indicates where more bits are needed than others to maintain an average q level throughout. Then on the second pass, that analysis is used to vary the bitrate as necessary to reach closer to a specific file size.

This is nice because if you want a file that is 10MiB in size, it is much easier to get a result close to that with two pass encoding. You divide the file size (as kbit) by duration (in seconds) then subtract the audio bitrate and then subtract maybe 2% of the resulting value to account for overhead and you get an appropriate value for where you would want your bitrate to be.

So for example, you have a 60 second video, you know your audio is going to be 32kbit/s. Take 10 MiB * 1024 = 10240 KiB * 8 = 81920 Kbit / 60 secs = 1365.3 Kbit/s - 32 Kbit/s = 1333.3 - 2% = 1306 Kbit/s approx.

What you are seeing by using 2 pass encoding is that certain scenes that would look much better take a quality hit so that more complex scenes can maintain consistent quality with the less complex scenes. For /f/ and the like, this is acceptable.

>if I can get a compiled version of ffmpeg.exe with the codec installed. Don't know if Apple AAC is possible? That sounds very licence-esque.

You can't legally distribute ffmpeg with libfdk_aac built in. That changes its license to non-free. However, it would be very beneficial to indicate an easy solution to this because libfdk_aac supports high efficiency AAC (aac-he). AAC-HE can be used at low bitrates (think 32k and lower) and still sound passable. I usually use it around 32K because the native aac encoder doesn't even sound comparable at 64k with normal aac.

Even 64k sounds better


64k AAC-HE d+Faced+Umi-chan%27s+Munchy+Monk.swf

32k AAC-HE!ME!ME!+Full+HQ.s wf

You could nudge people to use this to autobuild a static copy of ffmpeg. Just *don't* build mediainfo or it bombs out, and its not necessary to build all the extra binaries so long as you just want ffmpeg. ite

>>!///SWFAnts  #ADMIN#  10feb2016(we)22:33  No.28642  SWF  P27R21
Thanks for the input! Hm, sounds like there won't be anything more fancy than "-acodec aac -strict experimental" then since I want things to be ready out-of-the-box for people that use SwfH264. I doubt I have the capability of nudging people into going through all the hassle of compiling their own version of ffmpeg for those extra few percentages in sound quality. Usually regular AAC is "good enough", I figure only when you hear two demo samples played after each other you'd be able to pinpoint the difference. It'd be worth it for longer videos but will the regular Joe really bother? But I should probably at least mention somewhere that a better audio codec exists, for those that need it and are willing to go though the effort to obtain it.
>>Le Circleloader  10feb2016(we)23:29  No.28643  I  P28R22
Right, self-compilation is a pain in the ass. In my mind, it'd be kinda nice if the general tool could take into consideration at least some of the optimizations. I had something like that for myself but I lost it with my last OS reload :(

There's been some pushback on /f/ because the average joe doesn't look further than the general tool, and so the results have been poor. I think the options you've got now will help a fair bit but IMO anything that can be done to take tweaking steps out of the hands of average joe would help the appeal of this tool.

>>Anonymous  11feb2016(th)00:25  No.28645  G  P29R23
swfH264 is having problems with this FLV I made:
And the resulting swf: (Resolution resized with FFDEC, but keeping the original resolution makes no difference)

This was the encoding settings I performed:
ffmpeg -i jkjtxf.flv -acodec copy -preset placebo -threads 1 -b:v 110k -subq 10 -sc_threshold 10 -bf 16 -b_strategy 1 -x264opts aq-mode=2:merange=100:direct=auto:partitions=all: 8x8dct:qpstep=7:frameref=16:fast_pskip=0 -vcodec libx264 -tune animation -qcomp 1 -refs 16 -me_method full -threads 1 -trellis 2 -qmin 30 -vf scale=640:360 -pass 1 kog.flv

The audio is 32k AAC_HEv2

>>Le Circleloader  11feb2016(th)02:37  No.28649  I  P30R24
AAC-HEv2 is not supported by flash. Use version 1 instead :^)

If you use the animation tune you don't really need to set the other things, like trellis and the like. This would work just about as well, but you can try adding on options slowly if you want after.

ffmpeg.exe -y -i jkjtxf.flv -vb 110k -vcodec libx264 -sn -acodec libfdk_aac -profile:a aac_he -ac 2 -ar 44100 -ab 32k -cutoff 18000 -pass 1 -tune animation -profile:v high -preset veryslow -f flv dump.flv
ffmpeg.exe -y -i jkjtxf.flv -vb 110k -vcodec libx264 -sn -acodec libfdk_aac -profile:a aac_he -ac 2 -ar 44100 -ab 32k -cutoff 18000 -pass 2 -tune animation -profile:v high -preset veryslow -f flv output2pass.flv

Run both in that order. Delete dump.flv afterwards or if using linux change dump.flv to /dev/null

If your ffmpeg build does not have libfdk_aac then you'll have to use the native encoder most likely or build ffmpeg with libfdk so you can use AAC-HE.

If your audio source is 32k however, you might try to get a higher quality source video if possible.

>>Anonymous  14feb2016(su)07:18  No.28742  G  P31R25
Arch Linux has the AUR package "ffmpeg-full" which is relatively painless for installation.

Anyway, while we are talking about features, I would request the ability to loop back to a previous time. Like
>Video Starts from 0:00
>Video hits 1:24 that repeats at 0:54
>Video loops 0:54 to 1:24 indefinitely

>>!///SWFAnts  #ADMIN#  14feb2016(su)08:52  No.28745  SWF  P32R26
Would be a good feature, especially since it differentiates the video played through flash from the video on YouTube. I was also thinking about being able to detach audio and video so one could use SwfH264 to make flash loops... Phew, the TODO is getting heavy.
>>Anonymous  2mar2016(we)04:35  No.29383  G  P33R27
Concerning the preloader, would "-movflags faststart" be of any help?
It moves the moov atom to the beginning of the file, assisting in loading.
>>!///SWFAnts  #ADMIN#  2mar2016(we)05:50  No.29387  SWF  P34R28
No, the issue is that the bytes of the whole movie is embedded into ActionScript 3 and flash loads all of its classes on a single frame so you have to load it all at the same time. Even if the bytes are split up into several classes all classes have to be loaded on the same frame.

I have thought up a workaround that involves loading chunks of movie bytes as jpg images, which don't have to all be loaded on the same frame. You basically have to trick flash into thinking it's loading a jpg when it's really just an array of bytes. When the fake image is loaded you extract the bytes from it and append it to the main byte array of the movie. Storing the bytes as audio data would probably be better or even easier than doing it as fake images... Flash is great at streaming audio chunks from the main timeline and those are expected to contain all kinds of random bytes. Anyway, haven't put it into practice yet but in theory it should be possible.

While I'm rambling, wonder if Adobe will add H.265 support to flash? That would basically mean twice the quality for the same file size, judging from what I've seen of the codec so far. If nothing else it would mean that Flash keep up with the times.

>>Le Circleloader  4mar2016(fr)04:54  No.29509  I  P35R29
I can't see them adding H.265. Partly because they themselves are progressively changing their toolset to work with HTML5, and partly because it is heavily patent encumbered.

Another problem with that codec is it is the available encoders are rather difficult to tune correctly such that they were compete well on quality with H.264. This will need further attention to rectify.

>>Le Circleloader  4mar2016(fr)04:58  No.29510  I  P36

Fug, I mean H.265 can't really compete with H.264 well on quality at any rate without significantly more work outside of benchmarks.

>>Anonymous  24may2016(tu)14:43  No.33480  J  P37R30
Is this project currently on hiatus?
>>!///SWFAnts  #ADMIN#  24may2016(tu)21:21  No.33489  SWF  P38R31
Yeah but I'll be releasing something new soon. Hopefully this week. It won't feature what SwfH264 has to offer initially but I plan to have it eventually replace SwfH264. I'm always open to suggestions or general feedback if you had something in mind.
>>Anonymous  26may2018(sa)11:22  No.59976  K  P39R32
Can you release the source code for this now?
>>!///SWFAnts  #ADMIN#  29may2018(tu)20:04  No.60037  SWF  P40R33
Sorry I'm still not ready to open-source... I want to wrap things up with Swiff Army Knife and maybe release the source then if I think it's presentable, although I don't know when I'll be able to do it. I'm willing to answer questions on how I've done stuff in SwfH264 if you have anything specific that you are interested in knowing.
Created: 5/6 -2015 05:58:43 Last modified: 22/9 -2019 22:40:47 Server time: 22/09 -2019 22:45:37