@@ -764,8 +764,8 @@ func (r FFmpegRunner) Start(ctx context.Context, session *Session, request Reque
764764 args := buildFFmpegArgs (session , request , r .Options )
765765 playlist := filepath .Join (session .Dir , "master.m3u8" )
766766 logPath := filepath .Join (session .Dir , "ffmpeg.log" )
767- logging .Infof ("transcode start id=%s segment=%d" , session .ID , session .SegmentStartIndex )
768- logging .Debugf ("ffmpeg start id=%s item=%s media_source=%s start_ticks=%d segment_start=%d path=%s input=%s playlist=%s media=%s" , session .ID , session .ItemID , session .MediaSourceID , session .StartTimeTicks , session .SegmentStartIndex , r .Path , redactURLString (request .InputURL ), playlist , session .Media .Summary ())
767+ logging .Infof ("transcode start id=%s segment=%d decode=%s audio=optional-aac log=%s " , session .ID , session .SegmentStartIndex , ffmpegOptionsSummary ( r . Options ), logPath )
768+ logging .Debugf ("ffmpeg start id=%s item=%s media_source=%s start_ticks=%d segment_start=%d path=%s input=%s playlist=%s media=%s args=%s " , session .ID , session .ItemID , session .MediaSourceID , session .StartTimeTicks , session .SegmentStartIndex , r .Path , redactURLString (request .InputURL ), playlist , session .Media .Summary (), redactFFmpegArgs ( args ))
769769 cmd := exec .CommandContext (ctx , r .Path , args ... )
770770 stdin , err := cmd .StdinPipe ()
771771 if err != nil {
@@ -781,7 +781,7 @@ func (r FFmpegRunner) Start(ctx context.Context, session *Session, request Reque
781781 _ = logFile .Close ()
782782 return nil , fmt .Errorf ("start ffmpeg: %w" , err )
783783 }
784- logging .Debugf ("ffmpeg started id=%s pid=%d" , session .ID , cmd .Process .Pid )
784+ logging .Infof ("ffmpeg started id=%s pid=%d decode=%s " , session .ID , cmd .Process .Pid , ffmpegOptionsSummary ( r . Options ) )
785785 process := & execProcess {cmd : cmd , logFile : logFile , stdin : stdin , doneCh : make (chan struct {})}
786786 go func () {
787787 err := cmd .Wait ()
@@ -799,6 +799,31 @@ func (r FFmpegRunner) Start(ctx context.Context, session *Session, request Reque
799799 return process , nil
800800}
801801
802+ func ffmpegOptionsSummary (options FFmpegOptions ) string {
803+ mode := strings .ToLower (strings .TrimSpace (options .HardwareDecode ))
804+ if mode == "" || mode == "none" || mode == "off" || mode == "false" {
805+ return "software"
806+ }
807+ device := strings .TrimSpace (options .HardwareDevice )
808+ if device == "" {
809+ return mode
810+ }
811+ return mode + ":" + device
812+ }
813+
814+ func redactFFmpegArgs (args []string ) string {
815+ redacted := append ([]string (nil ), args ... )
816+ for i := 0 ; i < len (redacted )- 1 ; i ++ {
817+ switch redacted [i ] {
818+ case "-i" :
819+ redacted [i + 1 ] = redactURLString (redacted [i + 1 ])
820+ case "-headers" :
821+ redacted [i + 1 ] = "REDACTED"
822+ }
823+ }
824+ return strings .Join (redacted , " " )
825+ }
826+
802827func buildFFmpegArgs (session * Session , request Request , options ... FFmpegOptions ) []string {
803828 playlist := filepath .Join (session .Dir , "master.m3u8" )
804829 segmentPattern := filepath .Join (session .Dir , "segment_%05d.ts" )
0 commit comments