Remote potato is forcing 25Hz so glitches on 30Hz content.

Spotted something that's not working as you think it should? Post bug reports in here and read about the known issues.
Forum rules
No spamming, flaming, or abuse - play nicely!

Remote potato is forcing 25Hz so glitches on 30Hz content.

Postby ianken » Sun Apr 15, 2012 4:53 am

Scenario: Streaming NTSC and ATSC content in 480i, 1080i or 720p variants.
Observed glitching on all but 25Hz content from my media library and on all content from my recorded TV library.

To make sure I got this right I put a shim between ffmpeg.exe and the server to capture the command line and log it.

The server calls ffmpeg.exe with the "-r 25" argument, forcing 25Hz encoding and totally borking any ATSC or NTSC stuff. Folks in PAL rate territories will never see this.

Code: Select all
--segment-length 4 --segment-offset 0 -threads 4 -profile baseline -level 30 -flags +loop -g 30 -keyint_min 1 -bf 0 -b_strategy 0 -flags2 -wpred-dct8x8 -cmp +chroma -deblockalpha 0 -deblockbeta 0 -refs 1 -me_range 12 -subq 6 -partitions +parti4x4+parti8x8 -trellis 0 -coder 0 -sc_threshold 40 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -rc_eq 'blurCplx^(1-qComp)' -i :\RECORD~1\ANCIEN~4.WTV -aspect 1:1 -s 512x288 -deinterlace -y -async 1 -f mpegts -vcodec libx264 -bufsize 1250k -b 1250k -bt +100k -qmax 48 -qmin 2 -r 25 -acodec aac -strict experimental -ab 96k -ar 48000 -ac 2


I've also noted that 720p content is deinterlaced. Looking at the command line, this build of FFMPEG is pretty crufty. Alas, the custom FFMPEG options just don't work, so there's no way to override this in the app.

IMHO, this makes Remote Potato MUCH less attractive for folks in areas with 30Hz and 60Hz broadcasts.

I can only assume that the reason it looks halfway decent on Windows Phone is the transcode pipe is handled differently in that case.

Edit: LOG uploaded.

Here's the libavformat spew for the source (from the log):
Code: Select all
Duration: 01:02:48.46, start: 5.723200, bitrate: 3762 kb/s.
6/15/2012 10:48:05 PM: MediaStreamer: [66928][C]    Stream #0.2[0x29d]: Video: mpeg2video (Main), yuv420p, 704x480 [PAR 10:11 DAR 4:3], 3994 kb/s, 30.59 fps, 29.97 tbr, 10000k tbn, 59.94 tbc.


Here's what's being sent to x264:

Code: Select all
6/15/2012 10:48:06 PM: MediaStreamer: [66928][C]    Stream #0.0: Video: libx264, yuv420p, 640x480 [PAR 3:4 DAR 1:1], q=2-48, 1800 kb/s, 90k tbn, 25 tbc.


This is just plainly a server side bug. If you're in 60Hz land, you're getting poor video.

480i and 1080i should be deinterlaced to 30p (29.97) via yadif. Crop should also be used to trim 8 pixels off the perimeter area to mask VBI data.

720p should be decimated by 2 to 30Hz (29.97)

It's too bad Carlos appears to have set this project aside for now.

Edit: I looked at building the one-off ffmpeg RP uses and modifying it to ignore the -r argument or force it to match input rate. What a fraking PITA. Holy crap. Doing it under mingw on Win7 x64 looks to be possibly impossible depending on what blog posts and how-toos you follow. I don't have the time to setup linux VM to slog through this right now.

-Ian
Attachments
RPServer.zip
The Log...OF DOOOM
(192.94 KiB) Downloaded 343 times
ianken
Hot Potato
 
Posts: 21
Joined: Thu Apr 15, 2010 4:12 am
Location: Redmond WA USA

Return to Support - Bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron