Hello, after a lot of experimentation I managed to have DASH and HLS output in the same encoding. Only thing I cannot get to work is not encoding the audio multiple times: HLS cannot map a stream multiple times and while tee can duplicate a stream to multiple outputs, it cannot duplicate a stream to the same output (I had a quick look at the source, there is a map input->output, that wouldn't work if you have multiple outputs for one stream). Is there any way to duplicate a stream after it has been encoded?
Or is there any other solution than to encode the audio multiple times? Best regards Stefan Am 09.10.22 um 17:53 schrieb Stefan Oltmanns:
Hello, I would like ffmpeg to transcode a file into different versions for adaptive streaming (different codecs, different resolutions, different bitrates): DASH with webm (av1, opus) and MP4 (h264, aac) HLS with MPEG2-TS (h264, aac) While it is easy to find example command-lines for each of these formats (webm-DASH, MPEG-DASH or HLS) I currently fail at two things: -I would like to use one DASH manifest for webm and mp4 files. I'm not sure if this is possible in general and if supported by ffmpeg. I would like the player (scala with video.js) to choose the best codec for the client. -I would like to prevent unnecessary encoding: The x264 encoder output (same for aac) for each resolution/bandwidth should be used for DASH and HLS. There is the tee-muxer that seems to be designed for that, but I cannot figure out how to use it in such a complex situation. Can somebody give me an example howto a) extend my (simplified) command-line to also generate a HLS output for the h264/aac stream b) generate a DASH manifest for all currently generated output files ffmpeg -i $VIDEO_IN\ -filter_complex '[0:v]split=2[in1][in2];[in1]scale=w=1920:h=1080,split=2[1080a][1080b];[in2]scale=w=1280:h=720,split=2[720a][720b]' \ -map [720a] -keyint_min 100 -g 100 -c:v libsvtav1 -crf:v 25 -maxrate 2000k -bufsize 3M -f webm -dash 1 output_dash/video_720.webm \ -map [720b] -keyint_min 100 -g 100 -c:v libx264 -crf:v 23 -maxrate 2000k -bufsize 3M -f mp4 -movflags dash output_dash/video_720.mp4 \ -map [1080a] -keyint_min 100 -g 100 -c:v libsvtav1 -crf:v 25 -maxrate 5000k -bufsize 8M -f webm -dash 1 output_dash/video_1080.webm \ -map [1080b] -keyint_min 100 -g 100 -c:v libx264 -crf:v 23 -maxrate 5000k -bufsize 8M -f mp4 -movflags dash output_dash/video_1080.mp4 \ -map a:0 -c:a libopus -b:a 64k -ac 1 -ar 48000 -f webm -dash 1 output_dash/audio_mono_64k.webm \ -map a:0 -c:a libopus -b:a 128k -ar 48000 -f webm -dash 1 output_dash/audio_stereo_128k.webm \ -map a:0 -c:a libfdk_aac -b:a 64k -ac 1 -ar 48000 -f mp4 -movflags dash output_dash/audio_mono_64k.mp4 \ -map a:0 -c:a libfdk_aac -b:a 128k -ar 48000 -f mp4 -movflags dash output_dash/audio_stereo_128k.mp4 Best regards Stefan _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
_______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".