[FFmpeg-trac] #10667(avcodec:new): [Android] MediaCodec h264 encoder cannot output to Matroska container on stdout
FFmpeg
trac at avcodec.org
Fri Nov 17 13:17:10 EET 2023
#10667: [Android] MediaCodec h264 encoder cannot output to Matroska container on
stdout
-------------------------------------+-------------------------------------
Reporter: bubbleguuum | Type: defect
Status: new | Priority: normal
Component: avcodec | Version:
| unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Using FFmpeg 6.1 Android custom build.
Using the MediaCodec h264 encoder for output in a matroska container on
stdout fails:
{{{
./ffmpeg -hide_banner -i /sdcard/Movies/bigbuckbunny1080p.mp4 -c:v
h264_mediacodec
-profile:v high -level 4.1 -b:v 2000k -an -f matroska - > /dev/null
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
'/sdcard/Movies/bigbuckbunny1080p.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2013-03-23T02:39:38.000000Z
encoder : HandBrake 0.9.8 2012071800
Duration: 00:09:56.50, start: 0.000000, bitrate: 4421 kb/s
Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661),
yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 4087 kb/s,
24 fps, 24 tbr, 90k tbn (default)
Metadata:
creation_time : 2013-03-23T02:39:38.000000Z
vendor_id : [0][0][0][0]
encoder : JVT/AVC Coding
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 329 kb/s (default)
Metadata:
creation_time : 2013-03-23T02:39:38.000000Z
vendor_id : [0][0][0][0]
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_mediacodec))
Press [q] to stop, [?] for help
[h264_mediacodec @ 0xb400007959a1bef0] Use 1 as the default MediaFormat i
-frame-interval, please set gop_size properly (>= fps)
[h264_mediacodec @ 0xb400007959a1bef0] Mediacodec encoder doesn't support
AV_CODEC_FLAG_GLOBAL_HEADER. Use extract_extradata bsf when necessary.
[out#0/matroska @ 0xb4000078f9a1bfd0] Could not write header (incorrect
codec parameters ?): Invalid data found when processing input
Error while filtering: Invalid data found when processing input
[out#0/matroska @ 0xb4000078f9a1bfd0] Nothing was written into output
file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=N/A bitrate=N/A speed=N/A
Conversion failed!
}}}
It works fine using libx264 encoder:
{{{
./ffmpeg -i /sdcard/Movies/bigbuckbunny1080p.mp4 -c:v libx264 -preset
veryfast
-profile:v high -level 4.1 -b:v 2000k -an -f matroska - > /dev/null
...
output omitted
...
}}}
It would be great to have it working with h264_mediacodec. Use case is
generating an in-memory MKV on the fly for live transcoding.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10667>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list