[FFmpeg-devel] [PATCH v3 1/3] tests/fate/flvenc: add hevc in enhanced flv test case
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Jul 20 13:06:32 EEST 2023
Steven Liu:
> Andreas Rheinhardt <andreas.rheinhardt at outlook.com> 于2023年7月20日周四 16:41写道:
>>
>> Steven Liu:
>>> Andreas Rheinhardt <andreas.rheinhardt at outlook.com> 于2023年7月19日周三 18:32写道:
>>>>
>>>> Steven Liu:
>>>>> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
>>>>> ---
>>>>> tests/fate/flvenc.mak | 7 ++++++-
>>>>> tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
>>>>> 2 files changed, 14 insertions(+), 1 deletion(-)
>>>>> create mode 100644 tests/ref/fate/enhanced-flv-hevc
>>>>>
>>>>> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
>>>>> index 5032fface3..6b2fbe8c89 100644
>>>>> --- a/tests/fate/flvenc.mak
>>>>> +++ b/tests/fate/flvenc.mak
>>>>> @@ -1,5 +1,10 @@
>>>>> FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
>>>>> fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
>>>>>
>>>>> +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
>>>>> +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>>>>> + flv "-vcodec copy -map 0:v -frames 1"
>>>>> +
>>>>> FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>>>> -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>>>> +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>>>> +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>>>> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
>>>>> new file mode 100644
>>>>> index 0000000000..41eaefaf6e
>>>>> --- /dev/null
>>>>> +++ b/tests/ref/fate/enhanced-flv-hevc
>>>>> @@ -0,0 +1,8 @@
>>>>> +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
>>>>> +64396 tests/data/fate/enhanced-flv-hevc.flv
>>>>> +#tb 0: 1/30
>>>>> +#media_type 0: video
>>>>> +#codec_id 0: rawvideo
>>>>> +#dimensions 0: 1920x1080
>>>>> +#sar 0: 0/1
>>>>> +0, 0, 0, 1, 6220800, 0x1f259c93
>>>>
>>>> Why are you restricting this to one frame? And why are you not copying
>>>> the audio, too (this would test multiplexing)? After all, FLV supports AAC.
>>>> Furthermore, you are copying the video when creating the intermediate
>>>> FLV file, yet then you are decoding it at the next stage. This decoding
>>>> would necessitate a dependency on the HEVC decoder (and maybe the parser
>>>> as well as the extract_extradata bsf?). Alternatively, one can just use
>>>> codec copy when reading the intermediate file as well (the latter is my
>>>> preferred approach).
>>>> The same remarks also apply to the other patches.
>>> Hi Andreas,
>>>
>>>
>>> What about do it like this:
>>>
>>> FATE_ENHANCED_FLVENC_FFMPEG-$(call TRANSCODE, RAWVIDEO HEVC, FLV MOV,
>>> HEVCPARSE) += fate-enhanced-flv-hevc
>>> fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>>> flv "-c copy" "-af aresample"
>>>
>>
>> You would not need to resample when you simply copied the stuff instead
>> of decoding.
>
> It will get error message if i don't use resample:
>
> ffmpeg version N-111514-g6efbbe7d25 Copyright (c) 2000-2023 the FFmpeg
> developers
> built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
> configuration: --prefix=/usr/local/ --libdir=/usr/local/lib/
> --cc=clang --enable-htmlpages --enable-libx264 --enable-gpl
> --extra-cflags='-I/usr/local/include/GraphicsMagick/
> -I/usr/local/opt/openssl/include/ -O0 -g3 -fsanitize=address
> -Wno-error -fPIC -I/usr/local/include -fno-omit-frame-pointer'
> --extra-ldflags='-O0 -g3 -fsanitize=address -fno-omit-frame-pointer
> -Wno-error -fPIC -L/usr/local/lib -L/usr/local/opt/openssl/lib -lpng'
> --enable-libfreetype --enable-fontconfig --enable-libspeex
> --enable-libopus --enable-libzmq --enable-libx265 --enable-libass
> --enable-videotoolbox --disable-optimizations --enable-audiotoolbox
> --enable-opengl --disable-stripping --samples=../../fate-suite/
> --enable-encoder=hevc_videotoolbox --enable-hwaccel=hevc_videotoolbox
> --enable-hwaccel=h264_videotoolbox --enable-openssl --enable-nonfree
> --disable-shared --enable-libfdk_aac --enable-libxml2
> --enable-libmp3lame --enable-libaom --enable-lcms2 --enable-libwebp
> --enable-libvpx
> libavutil 58. 14.100 / 58. 14.100
> libavcodec 60. 22.100 / 60. 22.100
> libavformat 60. 10.100 / 60. 10.100
> libavdevice 60. 2.101 / 60. 2.101
> libavfilter 9. 8.102 / 9. 8.102
> libswscale 7. 3.100 / 7. 3.100
> libswresample 4. 11.100 / 4. 11.100
> libpostproc 57. 2.100 / 57. 2.100
> Input #0, flv, from
> '/Users/liuqi/multimedia/upstream_ffmpeg/ufbuild/tests/data/fate/enhanced-flv-hevc.flv':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> com.apple.quicktime.creationdate: 2021-05-29T15:14:19-0400
> com.apple.quicktime.make: Apple
> com.apple.quicktime.model: iPhone 12 mini
> com.apple.quicktime.software: 14.4.1
> Duration: 00:00:03.40, start: 0.000000, bitrate: 8469 kb/s
> Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv,
> bt2020nc/bt2020/arib-std-b67), 1920x1080, 8479 kb/s, 30 fps, 29.97
> tbr, 1k tbn
> Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 148 kb/s
> Stream mapping:
> Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
> Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
> The filters 'Parsed_anull_0' and 'format_out_0_1' do not have a common
> format and automatic conversion is disabled.
> [af#0:1 @ 0x61000000b740] Error reinitializing filters!
> Failed to inject frame into filter network: Invalid argument
> Invalid argument
> Conversion failed!
> threads=1
>
>
The reason for this is that you do not copy the stuff when demuxing the
intermediate file; instead you decode it.
- Andreas
More information about the ffmpeg-devel
mailing list