[FFmpeg-user] CodecPrivateData is empty when h264_vaapi encoder used

w_boba w_boba at hotmail.com
Tue Feb 28 18:45:57 EET 2017

I am trying to use new CPU with VA-API enabled h264 encoder on FFmpeg (ffmpeg
version n3.2.4-4-g36fff6c).

I have no issues encoding "offline" files with h264_vaapi encoder, but when
I try to encode live streams and push output to SmoothStream server (using
ISMV muxer) new streams do not work. 

Exactly same configuration works fine with libx264 encoder.

So far I figured that after libx264 encoder ffmpeg correctly sets
"CodecPrivateData" field data but h264_vaapi sends empty data field.

Old command line (works fine):
ffmpeg -y -i "udp://" -g 30 -r ntsc -movflags
isml+frag_keyframe -sc_threshold 0 -c:v libx264 -c:a aac -ac 2 -b:a 128k
-b:v 3072k -f ismv ""

New command line (encoding works, but streams do not play):
ffmpeg -y -vaapi_device /dev/dri/renderD128 -i "udp://" -vf
'format=nv12,hwupload' -g 30 -r ntsc -movflags isml+frag_keyframe
-sc_threshold 0 -c:v h264_vaapi -c:a aac -ac 2 -b:a 128k -b:v 3072k -f ismv

View this message in context: http://www.ffmpeg-archive.org/CodecPrivateData-is-empty-when-h264-vaapi-encoder-used-tp4679371.html
Sent from the FFmpeg-users mailing list archive at Nabble.com.

More information about the ffmpeg-user mailing list