Opened 8 years ago
Last modified 8 years ago
#5843 reopened enhancement
Read references in swf files
Reported by: | TopsLuo | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | avformat |
Version: | git-master | Keywords: | swf |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description (last modified by )
Summary of the bug:
I am trying to transcode swf to mpegts format,But I failed.
Use the tool to analysis SWF file:
<?xml version="1.0" encoding="utf-8"?> <SWF type="CWS" Version="9" FileLength="257819" width="640" height="480" FrameRate="18" FrameCount="270"> <tags count="302"> <FileAttributes class="zero.swf.tagBodys.FileAttributes" UseGPU="false" UseDirectBlit="false" HasMetadata="false" ActionScript3="false" suppressCrossDomainCaching="false" swfRelativeUrls="false" UseNetwork="true" rest="0x00000000"/> <block swfSrc="aa.swf" offset="27" length="257792"/> </tags> </SWF>
,It says the file have 270 frames,buf FFmpeg only decoded one Frame
$ ./bin/ffmpeg.exe -i ../aa.swf test.ts ffmpeg version N-81635-gbc7066f Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 29.100 / 55. 29.100 libavcodec 57. 55.101 / 57. 55.101 libavformat 57. 48.103 / 57. 48.103 libavdevice 57. 0.102 / 57. 0.102 libavfilter 6. 61.100 / 6. 61.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 1.100 / 2. 1.100 libpostproc 54. 0.100 / 54. 0.100 [swf @ 0000000000726de0] SWF compressed file detected [swf @ 0000000000726de0] Could not find codec parameters for stream 1 (Video: none, none): unknown codec Consider increasing the value for the 'analyzeduration' and 'probesize' options [swf @ 0000000000726de0] Could not find codec parameters for stream 2 (Video: vp6f, none): unspecified size Consider increasing the value for the 'analyzeduration' and 'probesize' options Input #0, swf, from '../aa.swf': Duration: N/A, bitrate: N/A Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 640x480, 18 tbr, 18 tbn Stream #0:1: Video: none, none, 18 tbr, 18 tbn Stream #0:2: Video: vp6f, none, 18 tbr, 18 tbn [swscaler @ 000000000294ae20] deprecated pixel format used, make sure you did set range correctly [mpegts @ 00000000028f7de0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Output #0, mpegts, to 'test.ts': Metadata: encoder : Lavf57.48.103 Stream #0:0: Video: mpeg2video (Main), yuv420p, 640x480, q=2-31, 200 kb/s, 18 fps, 90k tbn, 18 tbc Metadata: encoder : Lavc57.55.101 mpeg2video Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1 Stream mapping: Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg2video (native)) Press [q] to stop, [?] for help frame= 1 fps=0.0 q=5.3 Lsize= 35kB time=00:00:00.00 bitrate=25841454.5kbits/s speed=0.000491x video:32kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.057426%
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.
Attachments (3)
Change History (14)
by , 8 years ago
by , 8 years ago
comment:1 by , 8 years ago
Analyzed by developer: | unset |
---|---|
Component: | ffmpeg → undetermined |
Version: | 3.0.2 → unspecified |
comment:2 by , 8 years ago
Or are you searching for this file?
http://pop.img.ledu.com/5232/flv.f4v
comment:3 by , 8 years ago
Description: | modified (diff) |
---|
comment:4 by , 8 years ago
Tool name is "SWFtoVideoProPortable 3.12.00",it does transcode sucessful.But where should I upload the output file?
comment:5 by , 8 years ago
Tool name is "SWFtoVideoProPortable 3.12.00",it does transcode sucessful.But where should I upload the output file?
follow-up: 7 comment:6 by , 8 years ago
Component: | undetermined → avformat |
---|---|
Priority: | normal → wish |
Reproduced by developer: | set |
Status: | new → open |
Summary: | FFmpeg decode SWF file error → Read references in swf files |
Type: | defect → enhancement |
Version: | unspecified → git-master |
Not sure how likely this is to get implemented.
Does the original file conform to a known specification?
comment:7 by , 8 years ago
Replying to cehoyos:
Not sure how likely this is to get implemented.
Does the original file conform to a known specification?
I think YES.Otherwise the tool can't transcoding.
comment:8 by , 8 years ago
Iiuc, the relevant tag is starting at 0x32f88, a DefineSprite tag (39) with length 886 that contains an DoAction tag (12) with length 842. The first action is an ActionConstantPool (0x88) that defines 30 strings (including the relevant parts of the url http://pop.img.ledu.com/5232/flv.f4v), followed by an ActionDefineFunction (0x9b) with the name "video_replay" and several ActionPush actions.
comment:9 by , 8 years ago
Thank you very much.You mean a SWF file has no real video content, but through the URL to specify the video file?
comment:10 by , 8 years ago
Resolution: | → wontfix |
---|---|
Status: | open → closed |
comment:11 by , 8 years ago
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
I don't disagree strongly but there are quite a few tickets open that are less likely to get implemented.
Does your "tool" allow to transcode the file you provided? Please upload the expected output.
The (uncompressed) file you provided is 257819 bytes. the (second) jpg ends at position 216518. It is very unlikely that 40k provide 270 frames.