okikio / inthistweet

✨ Futuristic ✨ twitter image, gif and video downloader. Enter a Tweet URL, click search, and download the image/videos in it.
https://inthistweet.app
MIT License
174 stars 16 forks source link

M3U8 to MP4 broken #3

Open Chungmire opened 3 months ago

Chungmire commented 3 months ago

.m3u8 files which I can convert with FFmpeg from the command line cannot be converted here. I'll add that they're from twitter and I actually had to prepend https://video.twimg.com before each link in the m3u8 file itself since it wouldn't work otherwise, but after that it works.

Example Link: https://video.twimg.com/dm_video/1764737084227534848/pl/avc1/720x1280/NpkjnUNEEYnrPQd3FtKKlbt0iRjzhtGqWnrknkvYjDE.m3u8?container=cmaf

FFmpeg playground does produce an output file, but it's a 262 byte file with a black screen when the input was a 32 second video. Here's my console log, which admittedly does not look super helpful. I have my own project which does the conversion correctly if you'd like to use my methods. I just don't have the time to go through this codebase and make the changes myself.

[fferr] [mov,mp4,m4a,3gp,3g2,mj2 @ 0x105c140] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv), 720x1280): unspecified pixel format
ffmpeg.min.GWVwatVC.js:1 [fferr] Consider increasing the value for the 'analyzeduration' and 'probesize' options
ffmpeg.min.GWVwatVC.js:1 [fferr] Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.m3u8':
ffmpeg.min.GWVwatVC.js:1 [fferr]   Metadata:
ffmpeg.min.GWVwatVC.js:1 [fferr]     major_brand     : iso5
ffmpeg.min.GWVwatVC.js:1 [fferr]     minor_version   : 1
ffmpeg.min.GWVwatVC.js:1 [fferr]     compatible_brands: iso6iso5cmf2dash
ffmpeg.min.GWVwatVC.js:1 [fferr]     creation_time   : 2024-03-04T19:38:34.000000Z
ffmpeg.min.GWVwatVC.js:1 [fferr]     encoder         : GPAC-2.2.1-revrelease
ffmpeg.min.GWVwatVC.js:1 [fferr]   Duration: N/A, bitrate: N/A
ffmpeg.min.GWVwatVC.js:1 [fferr]     Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none(tv), 720x1280, SAR 1:1 DAR 9:16, 9000k tbr, 9000k tbn, 18000k tbc (default)
ffmpeg.min.GWVwatVC.js:1 [fferr]     Metadata:
ffmpeg.min.GWVwatVC.js:1 [fferr]       handler_name    : Twitter-vork muxer
ffmpeg.min.GWVwatVC.js:1 [fferr] Output #0, mp4, to 'video.mp4':
ffmpeg.min.GWVwatVC.js:1 [fferr]   Metadata:
ffmpeg.min.GWVwatVC.js:1 [fferr]     major_brand     : iso5
ffmpeg.min.GWVwatVC.js:1 [fferr]     minor_version   : 1
ffmpeg.min.GWVwatVC.js:1 [fferr]     compatible_brands: iso6iso5cmf2dash
ffmpeg.min.GWVwatVC.js:1 [fferr]     encoder         : Lavf58.45.100
ffmpeg.min.GWVwatVC.js:1 [fferr]     Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none(tv), 720x1280 [SAR 1:1 DAR 9:16], q=2-31, 9000k tbr, 9000k tbn, 9000k tbc (default)
ffmpeg.min.GWVwatVC.js:1 [fferr]     Metadata:
ffmpeg.min.GWVwatVC.js:1 [fferr]       handler_name    : Twitter-vork muxer
ffmpeg.min.GWVwatVC.js:1 [fferr] Stream mapping:
ffmpeg.min.GWVwatVC.js:1 [fferr]   Stream #0:0 -> #0:0 (copy)
ffmpeg.min.GWVwatVC.js:1 [fferr] frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
ffmpeg.min.GWVwatVC.js:1 [fferr] video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
ffmpeg.min.GWVwatVC.js:1 [ffout] FFMPEG_END
ffmpeg.min.GWVwatVC.js:1 [info] run FS.readFile video.mp4
ffmpeg.min.GWVwatVC.js:1 [Program terminated with exit(0)] undefined
okikio commented 1 month ago

I apologize, I haven't had as much time recently. I have a potential fix in the works and a long term plan to rework the site, thanks for using the project