On Sat, Mar 16, 2024 at 11:31 AM David Johansen <[email protected]> wrote:
> On Sat, Mar 16, 2024 at 12:56 AM Def Etienne <[email protected]> wrote: > >> >> Sent from my iPhone >> >> > On 16 Mar 2024, at 06:44, David Johansen <[email protected]> >> wrote: >> > >> > I've used ffmpeg to convert an H.264 .mp4 to segments for HLS playback >> and >> > it works. I'd like to then transcode them to H.265 so that it's >> available >> > as well, and I'd like to process them as individual segments so it can >> be >> > done in parallel. >> > >> > I'm doing that by creating a manifest that has the init.mp4 and single >> > segment and then outputting just that segment, but when I do that, it >> will >> > only playback the first segment and then stop. I believe that something >> is >> > going wrong with the PTS and/or DTS values when I do this. >> > >> > I tried using -copyts but it didn't change the output and I also >> disabled >> > B-frames because it made the PTS values of the resulting HLS appear in >> > sequential order as the original one does, but it still won't play in >> the >> > browser. >> > >> >> The command you used and the complete uncut console output (a good >> posting guideline) is always a good starting point for anyone who wants to >> help. >> > > Sorry, I should have included that. > > Here's the command to convert the file to HLS segments: > ffmpeg -i input.mp4 -c:v copy -c:a copy -map v:0 -map a:0 -tag:v hvc1 > -hls_segment_type fmp4 -hls_init_time 5.9 -hls_time 6 -hls_list_size 10000 > -hls_flags "independent_segments+program_date_time+temp_file" > -master_pl_name index.m3u8 -var_stream_map "v:0,agroup:aud > a:0,agroup:aud,default:yes" -f hls "%v/index.m3u8" > > Then I make a manifest file for each segment that looks like this: > #EXTM3U > #EXT-X-TARGETDURATION:6 > #EXT-X-MAP:URI=init.mp4 > #EXTINF:<duration> > <segment.m4s> > #EXT-X-ENDLIST > > And then I run this command to transcode each segment: > ffmpeg -i segment.m3u8 -c:v libx265 -tag:v hvc1 -x265-params > "log-level=warning:no-wpp=1:lookahead-slices=0" -hls_segment_type fmp4 > -hls_init_time 5.9 -hls_time 6 -f hls video.m3u8 > > I tried adding bframes=0 to -x265-params and that made the PTS values be > sequential like the original input, but the player still only showed the > first segment. I also tried adding -copyts and -muxdelay 0 but that didn't > change the output. > It appears that the issues is that that libx265 encoder is ignoring the input PTS values, so is there a way to tell it to use those or pass in a value to use? (I tried using -bsf:v setts but then it set every frame to that PTS value and I could get it to do anything else) _______________________________________________ ffmpeg-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
