[FFmpeg-user] Deinterlace and change framerate with -vcodec copy
pbasista at hotmail.com
Sat May 21 14:54:09 CEST 2011
>> Hello everyone!>>>> I would like ask for an advice.>>>> I have some mpegts files captured from DVB card.>> They contain some video streams and some audio streams.>> I know how to extract the streams from the mpegts file>> and how to use them to create a mkv file, for example.>> I do it like this:>> ffmpeg -i DVBchannel.mpegts -vcodec copy -acodec copy movie.mkv>>>> But I have a problem with the resulting file. The original>> video streams (in file DVBchannel.mpegts) are interlaced at 50fps.
> No, I very much doubt that is true. There are no DVB broadcasters that I> know of which transmit at 100 fields per second, which is what you are> implying. Please supply the output of "ffmpeg -i DVBchannel.mpegts"
Okay, I am sorry, you are right. I have posted somethingthat is definitely confusing.
I should have written 50 fields per second, not frames per second.By "interlaced at 50fps" I was trying to tell that the video contains50 fields (or half frames) per second. But I did not know aboutthe difference between frames and fields before you replied.So, thank you for pointing that out.
You wanted me to post output from ffmpeg -i DVBchannel.mpegts, so here it is:
Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 50.00 (50/1)Input #0, mpegts, from 'DVBchannel.mpegts': Duration: 01:23:55.58, start: 54068.412678, bitrate: 5916 kb/s Program 1 Stream #0.0[0x44d]: Video: h264 (Main), yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 55.22 fps, 50 tbr, 90k tbn, 50 tbc Stream #0.1[0x44e](eng): Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
I have reformulated the remaining part of my original email, so I repost it.
I want the final file to play as simply as possible(e.g. without the deinterlace filters), so I would like to deinterlacethe video in advance. But I assume it is not possible with -vcodec copy.Or am I mistaken?
My point here is that I do not want to reencode the video "just"to deinterlace it. I want to do it as simply as possible, utilizingas much previous encoding work as possible. But as far as I know,it is necessary to completely reencode the video in order touse the deinterlacing filters. Am I correct?
To my knowledge, the deinterlace filters just somehowcombine the fields (half frames) together, but they do not changethe framerate. So, my first question is: Is there a video codecfor which it is possible to deinterlace video with -vcodec copy?I would really appreciate if it would be possible for h264.
And my second question is about the framerate itself.
Let's say I have managed to get a 25fps noninterlaced file movie.mkv.Is there any "easy" way to change the framerate to 24fps?By "easy" I mean without reencoding (or: with -vcodec copy).
This, in my opinion, should be possible, because it seems likea rather minor change. Here I would like to emphasize thatwhat I want to change is the framerate, not the number of frames.
So, I expect the video to be longer (take more time to play)after such a framerate change. Here:http://www.hdslr-cinema.com/news/workflow/convert-between-framerates/the author mentions that such a framerate changeis referred to as "conforming".
I tried the intermediate rawvideo format method describedon the mentioned website, but it is of no use for me,because it requires reencoding. I would really like to do itwith -vcodec copy. Is is possible? If it is, which codecsallow for framerate changes like this? Does h264 support it?
Thank you for your time.
More information about the ffmpeg-user