Codec profile - full frame rate deinterlacing?
Added by John Blumpy over 6 years ago
Hi all,
I'm playing with Tvheadend and would like it to replace my current setup. I am enjoying it so far but I have an issue though: I cannot get Tvheadend to transcode DVB-T/S streams in the way I'd like. I have a Stream Profile using the built-in Codec Profile "webtv-h264" and it seems to work fine for my clients but I want it to perform full deinterlacing using yadif2x and there doesn't seem to be an option for this. The included "deinterlace" option seems to be half-frame-rate deinterlacing (e.g. 50 fields to 25 frames), which isn't good enough for my purposes.
Normally I'd do this by editing the ffmpeg parameters (something like -vf "yadif=1" -r 50) but I can't see a way to do this in Tvheadend. The included "Parameters" option is just for libx264 parameters which doesn't help. I can see in the debug log that Tvheadend is setting some parameters that look similar to ffmpeg parameters (e.g. bit rate, width, height, etc.) but I have no idea how to override any of these.
Is what I want possible? It is bizarre to me that overriding the ffmpeg parameters isn't included as an option when so many other customisation options exist!
OS: Ubuntu Server 16.04 LTS
Version: ubuntu-xenial-unstable (4.3-1292~g9b9ee68)
Replies (33)
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Add some info for OS and TVH version.
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
Sorry, added. I was originally using 4.2-stable but that doesn't have any codec profiles at all so I'm using the latest version.
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Do you try with Parameters: of h264 video codec profile?
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
Yes, I already stated that: the "parameters" box is for libx264 parameters, not ffmpeg parameters. libx264 doesn't do deinterlacing itself.
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Then you must use pipe ffmpeg transcoding, when client can not do de-interlace.
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
OK thanks, are there any guides for how to set that up for Tvheadend? I can see this how-to guide:
https://tvheadend.org/projects/tvheadend/wiki/Custom_MPEG-TS_Input
but I don't understand where to set this up in the GUI?
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Use MPTEG-TS Spawn profile.
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
Thanks, I've set up a new MPEG-TS Spawn profile and used an ffmpeg string that works for a local file on the machine. However, I cannot select that new profile in TVHClient (Android app). Any ideas?
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Recreate connection
With app is this?
restart on error
very useful
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
As I said, the app is TVHClient, as listed here:
https://tvheadend.org/projects/tvheadend/wiki/Clients
I tried recreating the connection but it still only sees those 5 profiles.
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro over 6 years ago
Try with dream Player for TVHeadend
at less its free
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
OK I've tried with Dream Player for TVHeadend and although it can see my new profile, no videos play when using it. I've confirmed the ffmpeg command works from the command line so I'm guessing something to do with the pipe or mime type is wrong? The error in the log is:
[ ERROR]:pass: Unable to start pipe 'pipe:///usr/bin/ffmpeg -loglevel fatal -threads 4 -i INPUTLINK -codec:v libx264 -b:v 2904k -vf "yadif=1:-1:1, scale=1280:720" -profile:v baseline -preset:v faster -coder 1 -tune zerolatency -mbd rd -codec:a aac -b:a 96k -ac 2 -strict experimental -async 1 -sn -fflags +genpts -metadata service_provider=STRING -metadata service_name=STRING -f mpegts pipe:1' (wrong executable?)
The profile settings are the same as in the screenshot from my previous post. Even if I change the command line to something really basic it produces the same error:
[ ERROR]:pass: Unable to start pipe 'pipe:///usr/bin/ffmpeg -loglevel fatal -i INPUTLINK -vcodec libx264 -acodec aac -strict -2 pipe:1' (wrong executable?)
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy over 6 years ago
I've now tried to use the example from https://tvheadend.org/projects/tvheadend/wiki/Custom_MPEG-TS_Input verbatim:
pipe:///usr/bin/ffmpeg -loglevel fatal -i INPUTLINK -vcodec libx264 -acodec aac -strict -2 -mbd rd -copyinkf -flags +ilme+ildct -fflags +genpts -metadata service_provider=STRING -metadata service_name=STRING -f mpegts -tune zerolatency pipe:1
and it still just says "Unable to start pipe". Running /usr/bin/ffmpeg from the command line as the "hts" user works fine. Removing the "-loglevel fatal" switch doesn't provide any more information either.
Is the pipe feature just broken in 4.3-1292?
RE: Codec profile - full frame rate deinterlacing? - Added by Rotarum Rotarum about 6 years ago
John Blumpy wrote:
I've now tried to use the example from https://tvheadend.org/projects/tvheadend/wiki/Custom_MPEG-TS_Input verbatim:
pipe:///usr/bin/ffmpeg -loglevel fatal -i INPUTLINK -vcodec libx264 -acodec aac -strict -2 -mbd rd -copyinkf -flags +ilme+ildct -fflags +genpts -metadata service_provider=STRING -metadata service_name=STRING -f mpegts -tune zerolatency pipe:1
and it still just says "Unable to start pipe". Running /usr/bin/ffmpeg from the command line as the "hts" user works fine. Removing the "-loglevel fatal" switch doesn't provide any more information either.
Is the pipe feature just broken in 4.3-1292?
Same here
"pass: Unable to start pipe 'pipe:///usr/bin/ffmpeg"
Using latest unstable version 1496
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy about 6 years ago
Rotarum Rotarum wrote:
John Blumpy wrote:
I've now tried to use the example from https://tvheadend.org/projects/tvheadend/wiki/Custom_MPEG-TS_Input verbatim:
pipe:///usr/bin/ffmpeg -loglevel fatal -i INPUTLINK -vcodec libx264 -acodec aac -strict -2 -mbd rd -copyinkf -flags +ilme+ildct -fflags +genpts -metadata service_provider=STRING -metadata service_name=STRING -f mpegts -tune zerolatency pipe:1
and it still just says "Unable to start pipe". Running /usr/bin/ffmpeg from the command line as the "hts" user works fine. Removing the "-loglevel fatal" switch doesn't provide any more information either.
Is the pipe feature just broken in 4.3-1292?
Same here
"pass: Unable to start pipe 'pipe:///usr/bin/ffmpeg"
Using latest unstable version 1496
FYI I figured this out: you have to remove the "pipe://" part. I haven't been able to test if the transcoding works as expected yet though since I can't find a client that supports HTTP streams from Tvheadend.
RE: Codec profile - full frame rate deinterlacing? - Added by Rotarum Rotarum about 6 years ago
OMG i've done it
First he was saying:
"spawn: Output #0, mpegts, to 'pipe:0':
spawn: Output file #0 does not contain any stream"
So i have replaced a new input like this:
ffmpeg -i pipe:0
and at the end of the line:
pipe:1
working now
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy about 6 years ago
Rotarum Rotarum wrote:
OMG i've done it
First he was saying:
"spawn: Output #0, mpegts, to 'pipe:0':
spawn: Output file #0 does not contain any stream"
So i have replaced a new input like this:
ffmpeg -i pipe:0
and at the end of the line:
pipe:1
working now
Thanks for this tip! The examples on the wiki page use "INPUTLINK" as the input stream but you're right, it needs to be "pass:0".
I'm now trying to figure out how to choose a particular audio stream to pass to the input...
RE: Codec profile - full frame rate deinterlacing? - Added by Rotarum Rotarum about 6 years ago
Normally like this:
-map 0:0 -map 0:1
First map to pickup video 0:0 and second map for audiostream 0:1 for example
Good luck
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy about 6 years ago
Rotarum Rotarum wrote:
Normally like this:
-map 0:0 -map 0:1
First map to pickup video 0:0 and second map for audiostream 0:1 for example
Good luck
Yep I'll give that a try. I am not sure if it'll work though because I have a feeling the audio streams for HD channels are in the opposite order compared to SD channels (e.g. SD: 0 = normal, 1 = narration, HD: 0 = narration, 1 = normal).
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy about 6 years ago
John Blumpy wrote:
Rotarum Rotarum wrote:
Normally like this:
-map 0:0 -map 0:1
First map to pickup video 0:0 and second map for audiostream 0:1 for example
Good luck
Yep I'll give that a try. I am not sure if it'll work though because I have a feeling the audio streams for HD channels are in the opposite order compared to SD channels (e.g. SD: 0 = normal, 1 = narration, HD: 0 = narration, 1 = normal).
I think I'm slightly misunderstanding how this works. If I use:
-map 0
Then I get both audio streams. This is fine but presumably it's encoding both audio streams? If so, that's a waste of bandwidth on mobile. If I instead add:
-map 0:0 -map 0:1
I just get the narration audio stream. If I use:
-map 0:0 -map 0:2
I get no audio at all. :/
Any ideas?
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro about 6 years ago
use ffprobe to analise stream
then
https://trac.ffmpeg.org/wiki/Map
Example 4
RE: Codec profile - full frame rate deinterlacing? - Added by John Blumpy about 6 years ago
saen acro wrote:
use ffprobe to analise stream
then
https://trac.ffmpeg.org/wiki/Map
Example 4
Thanks. As I suspected, HD and SD channels use different stream IDs. For audio I need to use stream ID 4 for HD channels and stream ID 2 for SD channels. What's the best way to deal with this?
RE: Codec profile - full frame rate deinterlacing? - Added by saen acro about 6 years ago
Use build-in stream filter in TVH
RE: Codec profile - full frame rate deinterlacing? - Added by Rene Wagler almost 5 years ago
How can i create a spawn profile? I have TVH 4.2.8-36 and i cant find these profiles to select it. I simply want to pre- deinterlace, no transcode
RE: Codec profile - full frame rate deinterlacing? - Added by Rene Wagler almost 5 years ago
How can i create a spawn profile? I have TVH 4.2.8-36 and i cant find these profiles to select it. I simply want to pre- deinterlace, no transcode