Jump to content

How do I use /opt/emby-server/emby-ffmpeg script properly?


Recommended Posts

Posted (edited)

I'm attempting to figure out how I can reproduce a transcode from an interactive session as the emby user on my linux server. 

For instance, playing a video shows the following command being issued inside of a remux log 
 

/opt/emby-server/bin/ffmpeg -loglevel +timing -y -print_graphs_file "/mnt/wflx2/emby/logs/ffmpeg-remux-635e50a2-802e-43cc-be58-eeef5828cfa8_1graph.txt" -copyts -start_at_zero -f matroska,webm -noaccurate_seek -c:v:0 h264 -i "https://tvnow.best/api/stream/username/password/movie/tt22890246" -map 0:0 -map 0:1 -sn -c:v:0 copy -bsf:v:0 h264_mp4toannexb -c:a:0 libmp3lame -ab:a:0 192000 -ac:a:0 2 -metadata:s:a:0 language=eng -filter:a:0 "volume=2" -disposition:a:0 default -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format mpegts -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 0 -write_header_trailer 0 -segment_write_temp 1 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_%d.ts" -map 0:2 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s2.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s2_%d.vtt" -map 0:3 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s3.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s3_%d.vtt" -map 0:4 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s4.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s4_%d.vtt" -map 0:5 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s5.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s5_%d.vtt" -map 0:6 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s6.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s6_%d.vtt" -map 0:7 -vn -an -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -segment_format webvtt -segment_list "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s7.m3u8" -segment_list_type m3u8 -segment_time 00:00:06.000 -segment_start_number 0 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:00:00.000 "/mnt/wflx2/emby/transcoding-temp/CF9CCC/CF9CCC_s7_%d.vtt"

However, if I su into the emby account and try to run that command it fails because of missing libraries. 
I figured out that I can get further if I call /opt/emby-server/bin/emby-ffmpeg,  but modifying the command above to use the wrapper script causes the following error
 
....
15:24:31.957       NUMBER_OF_BYTES : 26539
15:24:31.957       DURATION        : 01:25:24.565000000
15:24:31.957   Stream #0:8(tur): Subtitle: subrip
15:24:31.957     Metadata:
15:24:31.957       BPS             : 41
15:24:31.957       NUMBER_OF_FRAMES: 983
15:24:31.957       NUMBER_OF_BYTES : 26303
15:24:31.957       DURATION        : 01:25:23.712000000
15:24:31.958 Could not write header for output file #1 (incorrect codec parameters ?): No such file or directory
15:24:31.958 Error initializing output stream 1:0 --
15:24:31.958 Stream mapping:
15:24:31.958   Stream #0:0 -> #0:0 (copy)
15:24:31.958   Stream #0:1 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
15:24:31.958   Stream #0:2 -> #1:0 (subrip (srt) -> webvtt (native))
15:24:31.958   Stream #0:3 -> #2:0 (subrip (srt) -> webvtt (native))
15:24:31.958   Stream #0:4 -> #3:0 (subrip (srt) -> webvtt (native))
15:24:31.958   Stream #0:5 -> #4:0 (subrip (srt) -> webvtt (native))
15:24:31.958   Stream #0:6 -> #5:0 (subrip (srt) -> webvtt (native))
15:24:31.958   Stream #0:7 -> #6:0 (subrip (srt) -> webvtt (native))
    Last message repeated 1 times


For a transcode the error is slightly different

....
14:13:31.783       NUMBER_OF_BYTES : 26539
14:13:31.783       DURATION        : 01:25:24.565000000
14:13:31.783   Stream #0:8(tur): Subtitle: subrip
14:13:31.783     Metadata:
14:13:31.783       BPS             : 41
14:13:31.783       NUMBER_OF_FRAMES: 983
14:13:31.783       NUMBER_OF_BYTES : 26303
14:13:31.783       DURATION        : 01:25:23.712000000
14:13:31.783 Output #0, segment, to '/mnt/wflx2/emby/transcoding-temp/7095DD/7095DD_%d.ts':
14:13:31.783 Output file #0 does not contain any stream


I thought the arguments might not be passed through the wrapper script properly but I've tested setting the environment variables manually in the shell session but the same errors are encountered.   The only thing I can figure now is that bash isn't liking the way I'm trying to invoke the command, or maybe there is more to the environment that needs to be tweaked. 

Edited by bruor
Posted
Quote

 The only thing I can figure now is that bash isn't liking the way I'm trying to invoke the command

Hi, maybe this is it?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...