apan media encoding

35
Video encoding for Web and Archive High Definition Video Working Group APAN Bandung 2014 Andrew Howard - The Australian National University

Upload: andrew-howard

Post on 17-May-2015

179 views

Category:

Education


2 download

DESCRIPTION

APAN 2014 Bandung HDWG Session presentation Video Encoding for Web and Archive

TRANSCRIPT

Page 1: Apan media encoding

Video encoding for Web and Archive

High Definition Video Working Group APAN Bandung 2014

Andrew Howard - The Australian National University

Page 2: Apan media encoding

Background• Significant Digital Humanities media asset library

stored on film, video, audio tapes, portable hard drives, CD, DVD and Blu-Ray

• Some assets reaching end of life requiring ongoing preservation activity

• Also need to handle media stored on online services like youtube and vimeo

• Build on experience with encoding for Digital Lecture Delivery system and iTunesU

Page 3: Apan media encoding
Page 4: Apan media encoding
Page 5: Apan media encoding

Problem Space• Media degradation

• Maintain quality, original format, encapsulation of propriety playback system/application/OS environment using emulator and/or virtual machine

• Encode to an industry standard archive format at high bitrate to support re-encoding using evolving compression standards

• Deliver to a range of target playback systems

• Organise, Identify and Describe assets and the content of assets

• Cost of ingest, conversion, classification, storage and delivery

Page 6: Apan media encoding

Some actual collections

Seismology data !(586 DAT tapes)

Page 7: Apan media encoding

Media Degradation• Digital Media

• DVD

• Physical damage

• Dye process

• Storage

• Hard drives

• Physical damage

• Magnetic coherence

Page 8: Apan media encoding

Media Degradation• Tape media (Video, Reel to Reel, DAT, Magtape)

• Storage

• Physical

• Replay devices

Page 9: Apan media encoding

Content Management• Organisation, Classification and Description of

assets and the content of the assets

• E-Culture WG Session on Linked Data

Page 10: Apan media encoding

Media preparation Video

• Video tape

• Format: PAL,NTSC,SECAM,HDV

• Aspect ratio: 4:3, 16:9, 3:2, 8:5, Anamorphic

• Frame type: Interlaced or Progressive

• Pixel format: Rectangular or Square

Page 11: Apan media encoding

Media preparation Video

• Video tape - General Information

• Clean the VCR heads regularly

• Use a video enhancer hardware device like the Canopus to provide additional signal stabilisation, chroma correction and retiming

• Adjust VCR tracking

• Use highest available device resolution for capture

• Use highest available device connect for capture

• DV

• S-Video

• Composite

Page 12: Apan media encoding

Media preparation DVD

• DVD

• Format: PAL,NTSC,SECAM,HDV

• Aspect ratio: 4:3, 16:9, Anamorphic

• Frame type: Interlaced or Progressive

• Region coding and DRM

Page 13: Apan media encoding

DVD Encoding Tools• Older tools:

• (Windows)

• DVD Decrypter

• DVD Shrink

Page 14: Apan media encoding

DVD ingest• Experienced problems on both commercial and

user created DVD media from both controlled and uncontrolled environments

• Best results using a Blu-Ray drive to read media which standard DVD drives failed to read

Page 15: Apan media encoding

Encoding Tools• Contemporary tools (OSX & Windows):

• Handbrake

• DVD decoding

• DVD and file Encoding into many formats

• VLC

• The “Swiss Army Knife” for media

Page 16: Apan media encoding

Cataloging, Tagging and Identification

• XMP:Description

• MP3 tags

• iTunes tags

• Tools

• exiftool

• read and write asset metadata

• mkvinfo

• Face and Object recognition with CoreImage and OpenCV

Page 17: Apan media encoding

Command line tools

• ffmpeg

• VLC

• vpxenc

• MKVToolNix

Page 18: Apan media encoding

ffmpeg recipesGenerate a JPEG poster frame from the video at #SECONDS from start (15-20) is typical. !ffmpeg -i {INPUT} -y -f mjpeg -vf scale="320:trunc(ow/a/2)*2" -vframes 1 -ss {#SECONDS} {OUTPUT} !

Page 19: Apan media encoding

ffmpeg recipesTheora Video @1.2M, Vorbis Audio @128k !ffmpeg -i {INPUT} -y -codec:v libtheora -b:v 1200k -qscale:v 6 -codec:a libvorbis -qscale:a 5 -b:a 128k -ar 22050 {OUTPUT}

Page 20: Apan media encoding

ffmpeg recipesH.264 Video @10Mbs, AAC Audio @384k, Lossless, width: preserve !ffmpeg -i {INPUT} -metadata media_type=10 -metadata hd_video=0 -threads 0 -acodec libfaac -ac:a 2 -b:a 384000 -vcodec libx264 -pix_fmt yuv420p -b:v 10240k -preset veryslow -tune film -qp 0 -movflags +faststart {OUTPUT}

Page 21: Apan media encoding

ffmpeg recipesH.264 Video @1.2Mbs, AAC Audio @128k, scaled to height: 320, width: matching input ratio ffmpeg -i {INPUT} -metadata media_type=10 -metadata hd_video=0 -threads 0 -acodec libfaac -ac:a 2 -b:a 128000 -vcodec libx264 -pix_fmt yuv420p -b:v 1200k -vf scale="320:trunc(ow/a/2)*2" -profile:v main -preset medium -crf 18 -level 3.1 -movflags +faststart {OUTPUT}

Page 22: Apan media encoding

ffmpeg recipesWebM (VP8) Video @1.2Mbs, Vorbis Audio @128k !ffmpeg -i {INPUT} -y -threads 8 -codec:v libvpx -qscale:v 6 -b:v 1.2M -codec:a libvorbis -crf 10 -qscale:a 5 -b:a 128k -ar 22050 !!

Required for multi threading

-threads 0 doesn’t work

Page 23: Apan media encoding

Playback• Target: Web browsers & mobile devices using

HTML5 <VIDEO> and <AUDIO>

Firefox IE Chrome Safari/Webkit

H.264/AAC x xWebM x x x

Theora/Vorbis x x

FLV x x

MP3 x x x

YouTube html5

Page 24: Apan media encoding

Web playback HTML5 and flash fallback for H.264

• Examined a range of open source players

• Projekktor, osmplayer, JWplayer and MediaElement

• Selected MediaElement for quality of API, documentation, support of SRT subtitles and plugin support

• mediaelementjs.com

Page 25: Apan media encoding

Archive• Maintain original format to provide for re-code at

later time

• Generate a high quality 2-pass H.264 version

• Generate a high quality DVD version

Page 26: Apan media encoding

Future Codecs• Increased range of macro block forms

• Larger inter frame comparison

• Decreased file sizes allow better bandwidth utilisation for existing assets and the delivery of higher definition and clarity operating on existing transmission systems

• H.265/HEVC

• VP9

• Jan 2014 code release

Page 27: Apan media encoding

VP9• Google next generation codec

• libvpx code available

• Latest VLC and Chrome will play

• YouTube is a significant market driver

Page 28: Apan media encoding

VP9• Google next generation codec

• Original video size: 108,887,661 (108.9Mb)

• x264 encode fps:

• VP8

• Single pass ffmpeg encode size: 122,716,927 (122.7Mb) includes Audio

• vpxenc 2pass size: 24,488,846 bytes (24,5Mb) Video only,

• encode fps:

• Pass 1/2 frame 3857/3858 555552B 1152b/f 27327b/s 131187 ms (29.40 fps)

• Pass 2/2 frame 3857/3857 24452079B 50717b/f 1202781b/s 118922 ms (32.43 fps)

• VP9

• Single pass encode vpxenc --codec=vp9 -t 7 -o APAN_demo_nasa.vp9.webm -w 1280 -h 720 --cpu-used=4 -p 1 --target-bitrate=1200 —kf-max-dist=360 APAN_demo_nasa.vp8_1.y4m

• Pass 1/1 frame 3857/3857 24813041B 51465b/f 1220537b/s 998347 ms (3.86 fps)

• vpxenc 2 pass encode fps:

Page 29: Apan media encoding

File size comparison preliminary testing results

Video Sample MOV Mb AVI Mb Encode

FPS

Original 108,887,661 108 591,552,512 591.5

vp8 39,153,628 39.1 444,498,772 444.4 ~30

vp9 31,741.303 31.7 216,773,028 216.7 ~3-4

x264 97,624,542 97.6 379,207,254 379.2 ~450

Page 30: Apan media encoding

VP8 and VP9 tools• vpxdec

• Extract a yuv4 uncompressed video • vpxdec --progress --postproc --mfqe -t 7 -o APAN_demo_nasa.vp8.y4m APAN_demo_nasa.vp8.webm

• mkvextract tracks

• mkvextract tracks "APAN_demo_nasa.vp8.webm" 1:APAN_demo_nasa.vp8.ogg

• mkvmerge

Page 31: Apan media encoding

HEVC/H.265• svn checkout https://hevc.hhi.fraunhofer.de/svn/

svn_HEVCSoftware/tags/HM-1.0/ HM-1.0

• Still testing encoding

Page 32: Apan media encoding

HM software: Encoder Version [1.0][Mac OS X][GCC 4.2.1][64 bit] !Input File : APAN_demo_nasa.vp8_1.y4mBitstream File : APAN_demo_nasa.vp8_1.binReconstruction File : APAN_demo_nasa.vp8_1_enc.yuvReal Format : 1280x720 30HzInternal Format : 1280x720 30HzFrame index : 0 - 8 (9 frames)Number of Ref. frames (P) : 1Number of Ref. frames (B_L0) : 1Number of Ref. frames (B_L1) : 1Number of Reference frames : 1CU size / depth : 128 / 5RQT trans. size (min / max) : 4 / 32Max RQT depth inter : 2Max RQT depth intra : 1Motion search range : 128Intra period : 32QP : 32.00GOP size : 8Rate GOP size : 8Bit increment : 4Luma interpolation : Samsung 12-tap filterChroma interpolation : Bi-linear filterEntropy coder : CABAC!TOOL CFG: ALF:1 IBD:1 HAD:1 SRD:1 RDQ:1 SQP:0 ASR:0 PAD:0 LDC:0 NRF:1 BQP:0 GPB:0 FEN:0 RQT:1 MRG:1 !POC 0 ( I-SLICE, QP 32 ) 928 bits [Y 68.0431 dB U 71.3615 dB V 99.9900 dB] [ET 32 ] [L0 ] [L1 ] POC 8 ( P-SLICE, QP 33 ) 123656 bits [Y 39.3042 dB U 43.1461 dB V 45.9746 dB] [ET 77 ] [L0 0 ] [L1 ] POC 4 ( B-SLICE, QP 34 ) 17248 bits [Y 40.1223 dB U 44.9601 dB V 47.3997 dB] [ET 412 ] [L0 0 ] [L1 8 ] POC 2 ( B-SLICE, QP 35 ) 6576 bits [Y 44.9149 dB U 48.0378 dB V 51.2781 dB] [ET 351 ] [L0 0 ] [L1 4 ] POC 6 ( B-SLICE, QP 35 ) 10208 bits [Y 37.7147 dB U 42.0799 dB V 45.0517 dB] [ET 479 ] [L0 4 ] [L1 8 ] POC 1 ( B-SLICE, QP 36 ) 984 bits [Y 63.3660 dB U 50.5459 dB V 51.4867 dB] [ET 195 ] [L0 0 ] [L1 2 ] POC 3 ( B-SLICE, QP 36 ) 2376 bits [Y 40.5029 dB U 45.3647 dB V 48.8884 dB] [ET 398 ] [L0 2 ] [L1 4 ] POC 5 ( B-SLICE, QP 36 ) 1864 bits [Y 37.1593 dB U 42.6453 dB V 45.4117 dB] [ET 322 ] [L0 4 ] [L1 6 ] POC 7 ( B-SLICE, QP 36 ) 5856 bits [Y 35.2758 dB U 40.2356 dB V 43.8896 dB] [ET 291 ] [L0 6 ] [L1 8 ] !SUMMARY -------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR 9 a 565.6533 45.1559 47.5974 53.2634 !!I Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR 1 i 27.8400 68.0431 71.3615 99.9900 !!P Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR 1 p 3709.6800 39.3042 43.1461 45.9746 !!B Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR 7 b 193.3371 42.7223 44.8385 47.6294 ! Total Time: 2558.456 sec.

Page 33: Apan media encoding

Next Generation Codecs• Trade increased encoding time and cpu for

decreased bandwidth

• Promise of significant gains in compression

• Reference code and specifications now available

• Still tuning for performance

• Google VP9 developer videos on YouTube

Page 34: Apan media encoding

VP9 test sequence• Convert input video to vp8

• Encode to vp9

• 2 pass ! vpxenc --codec=vp9 -t 7 -o APAN_demo_nasa.vp9_2_pass_clang.webm -w 1290 -h 720 --cpu-used=4 -p 2 --target- bitrate=1200 --kf-max-dist=360 APAN_demo_nasa.vp8_1.y4m

Page 35: Apan media encoding

Summary• Media preparation

• ffmpeg recipes for media encoding for Web and Archive

• Next Generation Codecs