[FFmpeg-devel] avcodec/proresenc_aw : add interlace encoding support
Kieran O Leary
kieran.o.leary at gmail.com
Sun Feb 10 11:44:15 EET 2019
Hi,
On Sat, Feb 9, 2019 at 6:10 PM Martin Vignali <martin.vignali at gmail.com>
wrote:
> Hello,
>
> Patchs in attach add interlace encoding support to prores aw encoding
>
Thanks so much for adding this. I can really only judge by the metadata for
now, but this all looks good to me (ffmpeg encode and mediainfo check):
$ ./ffmpeg -f lavfi -i testsrc -field_order tt -flags ildct -c:v prores_aw
-t 10 tt_ildct_aw.mov && mediainfo tt_ildct_aw.mov |grep -i scan
ffmpeg version N-93103-gd20902fd23 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration:
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.100 / 58. 47.100
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
Input #0, lavfi, from 'testsrc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
[SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
File 'tt_ildct_aw.mov' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> prores (prores_aw))
Press [q] to stop, [?] for help
[prores_aw @ 0x55b56f330c80] encoding with ProRes 4444 (ap4h) profile
[prores_aw @ 0x55b56f334180] encoding with ProRes 4444 (ap4h) profile
[prores_aw @ 0x55b56f337580] encoding with ProRes 4444 (ap4h) profile
[prores_aw @ 0x55b56f33aa00] encoding with ProRes 4444 (ap4h) profile
[prores_aw @ 0x55b56f305ec0] encoding with ProRes 4444 (ap4h) profile
Output #0, mov, to 'tt_ildct_aw.mov':
Metadata:
encoder : Lavf58.26.101
Stream #0:0: Video: prores (prores_aw) (4444) (ap4h / 0x68347061),
yuv444p10le(top first), 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25
fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.47.100 prores_aw
frame= 250 fps=0.0 q=-0.0 Lsize= 10145kB time=00:00:09.96
bitrate=8344.2kbits/s speed=26.8x
video:10143kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.017619%
Scan type : Interlaced
Scan type, store method : Separated fields (2 fields per
block)
Scan order : Top Field First
>
> Use +ildct flag to switch between progressive and interlace encoding
>
> Use AVFrame flag to switch between tff and bff frame organization.
>
Is this what you mean by altering the -setparams filter?
> If AVFrame->interlaced value is not set to 1, but +ildct is set (interlace
> encoding of progressive frame), define field order to top (most common case
> for prores file)
>
It appears that prores_ks defaults to BFF?
$ ./ffmpeg -f lavfi -i testsrc -flags ildct -c:v prores_ks -t 10
ildct_ks.mov && mediainfo ildct_ks.mov |grep -i scan
ffmpeg version N-93103-gd20902fd23 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration:
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.100 / 58. 47.100
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
Input #0, lavfi, from 'testsrc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
[SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
File 'ildct_ks.mov' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> prores (prores_ks))
Press [q] to stop, [?] for help
[prores_ks @ 0x557a246a5f80] Autoselected 4:4:4:4 profile because of the
used input colorspace. It can be overridden through -profile option.
[prores_ks @ 0x557a246b0e00] Autoselected 4:4:4:4 profile because of the
used input colorspace. It can be overridden through -profile option.
[prores_ks @ 0x557a246bbdc0] Autoselected 4:4:4:4 profile because of the
used input colorspace. It can be overridden through -profile option.
[prores_ks @ 0x557a246c6e40] Autoselected 4:4:4:4 profile because of the
used input colorspace. It can be overridden through -profile option.
[prores_ks @ 0x557a24677d80] Autoselected 4:4:4:4 profile because of the
used input colorspace. It can be overridden through -profile option.
Output #0, mov, to 'ildct_ks.mov':
Metadata:
encoder : Lavf58.26.101
Stream #0:0: Video: prores (prores_ks) (ap4h / 0x68347061),
yuv444p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 12800
tbn, 25 tbc
Metadata:
encoder : Lavc58.47.100 prores_ks
frame= 72 fps=0.0 q=-0.0 size= 2816kB time=00:00:02.68
bitrate=8607.6kbits/frame= 144 fps=144 q=-0.0 size= 5632kB
time=00:00:05.56 bitrate=8298.0kbits/frame= 216 fps=144 q=-0.0 size=
8704kB time=00:00:08.44 bitrate=8448.2kbits/frame= 250 fps=141 q=-0.0
Lsize= 10434kB time=00:00:09.96 bitrate=8582.2kbits/s speed=5.63x
video:10433kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.017018%
Scan type : Progressive
Original scan type : Interlaced
Original scan order : Bottom Field First
Best,
Kieran O'Leary
Irish Film Institute.
More information about the ffmpeg-devel
mailing list