[Cin] I tried to add AVC-Intra 100 output profiles

Andrew Randrianasulu randrianasulu at gmail.com
Fri Mar 20 22:00:21 CET 2020


But not sure if I did this correctly.

https://en.wikipedia.org/wiki/AVC-Intra
says for AVC-Intra 100:

AVC-Intra 100: 
nominally 100 Mbit/s, size of each frame is fixed
CAVLC entropy coding only.
All formats are High 4:2:2 Intra Profile, Level 4.1
4:2:2 chrominance sampling
frames are not scaled

and yeah, this French-language pdf actually says the same:
https://web.archive.org/web/20110720215759/http://www.ficam.fr/upload/documents/AVCIntra.pdf

                        50M                           100M
Standard                     MPEG-4 part10 AVC/H.264
Profile             High 10 Intra                 High 4:2:2 Intra
Level               Level 3.2/4.0                    Level 4.1
Resolution       1440x1080 / 960x720           1920x1080 / 1280x720
Sampling                4:2:0                          4:2:2
Bit rate               54Mbps                        111Mbps
Block size                         Y: 8x8, C: 4x4
Intra Prediction                Y: 9mode, C: 4mode
MBAFF                                   Yes
De-block filter                         No
Slice/frame                             10
Entropy coding        CABAC                          CAVLC

so, I looked up ffmpeg cmd line
https://trac.ffmpeg.org/ticket/3597

ffmpeg -v info -i /mnt-data/backup4/vol0/export/CUHK\ 2014-1/V017b.mov 
-vcodec libx264 -intra -pix_fmt yuv422p10le -vb 100M -x264opts avcintra-class=100 
-x264opts colorprim=bt709 -x264opts transfer=bt709 -x264opts colormatrix=bt709
-threads 4 -acodec copy V017b-ffmpeg-git-avcintra100.mov

Huh, said I and entered those params in opts file, actually in two files (mp4 and mov containers)

mov libx264
cin_pix_fmt=yuv422p10le
flags -global_header
keyint_min=0
x264-params=keyint=0:colorprim=bt709:transfer=bt709:colormatrix=bt709
avcintra-class=100
bufsize=100000000
level=4.1

mp4 libx264
cin_pix_fmt=yuv422p10le
flags -global_header
keyint_min=0
x264-params=keyint=0:colorprim=bt709:transfer=bt709:colormatrix=bt709
avcintra-class=100
bufsize=100000000
level=4.1

both for progressive content, for interlace you must add some more flags:
https://lists.ffmpeg.org/pipermail/ffmpeg-user/2017-January/035049.html

-flags +ildct+ilme
-x264opts interlaced=1

Also, there is still lack of (GUI) user notification if file writing failed due to 
NO SPACE on device :}

FFStream::write_packet: write packet failed.
file:/dev/shm/avci_new.mp4
  err: На устройстве не осталось свободного места
FFStream::encode_frame: encode failed.
file: /dev/shm/avci_new.mp4
  err: На устройстве не осталось свободного места
FFStream::flush failed
:file:/dev/shm/avci_new.mp4
  err: Операция не позволена
Render::render_single: Session finished.
** rendered 273 frames in 85.585 secs, 3.190 fps
Render::render_single: Session finished.
** rendered 273 frames in 85.485 secs, 3.194 fps
Render::render_single: Session finished.
** rendered 273 frames in 82.176 secs, 3.322 fps

Profile sort of assumes you set project to some supported resolution, framerate, etc,
otherwise libx264 will fail with console error message.....

I found some talk about AVC-Ultra, there even was patch for x264, but it was not merged:
https://mailman.videolan.org/pipermail/x264-devel/2015-September/011412.html


Also, I think sound must be uncompressed, but I'm not sure.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AVC_Intra_100.mov
Type: application/octet-stream
Size: 186 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20200321/5270c1cb/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AVC_Intra_100.mp4
Type: application/octet-stream
Size: 186 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20200321/5270c1cb/attachment-0001.obj>


More information about the Cin mailing list