我使用ffmpeg轉碼HDHomerun Prime的實時流。一切都很美好。但是,如果可能的話,我希望能夠改變HDHomerun上的頻道,而不必停止並重新啓動ffmpeg轉碼過程。Ffmpeg在轉換HDHomerun Prime轉換頻道時掛起
我啓動ffmpeg進程開始從HDHomerun讀取UDP源。它使用m3u8播放列表將流寫入一系列* .ts文件。
我使用hdhomerun_config
改變裝置上的信道的第二個,FFMPEG立即報告以下和掛起:
[mpegts @ 0000018b4e05be60] New video stream 0:3 at pos:295211888 and DTS:40884.7s=108 drop=0 speed=1.02x [mpegts @ 0000018b4e05be60] New audio stream 0:5 at pos:295279568 and DTS:40884.4s frame= 4488 fps= 29 q=23.0 q=27.0 q=23.0 size=N/A time=00:02:28.94 bitrate=N/A dup=108 drop=0 speed=0.959x
我使用推出的ffmpeg的命令是:
ffmpeg.exe -t 03:00:00 -i "udp://192.168.1.150:5000?fifo_size=1000000&overrun_nonfatal=1" -vf yadif=0:-1:1 -y -threads 4 -c:v libx264 -s 1280x720 -r 30 -b:v 4500k -force_key_frames expr:gte(t,n_forced*2) -profile:v high -preset fast -x264opts level=41 -c:a libfdk_aac -b:a 96k -ac 2 -hls_time 10 -hls_list_size 6 -hls_wrap 6 -hls_base_url /stream/ -hls_flags temp_file -hls_playlist_type event "C:\temp\streams\4500-stream.m3u8"
是否有一個特定的命令,我可以通過允許ffmpeg從此「恢復」?或者,有沒有一種arg可以防止這種掛起?我正在使用Ubuntu的ffmpeg交叉編譯的最新版v3.4。從ffmpeg.org使用ffmpeg for Windows的穩定版本v3.4也出現了這個問題。
編輯:
一個新發現的問題,但仍然沒有解決: 如果我改變回原來的通道的通道,ffmpeg的是能夠繼續寫入流。
示例:我從頻道X開始.Ffmpeg正在記錄到文件中。我更改爲頻道Y.Ffmpeg輸出類似於上面發佈的消息並「掛起」的消息。我改回到X頻道,ffmpeg從它離開的地方回來,沒問題。
您可能需要腳本獲取新的流。我懷疑FFmpeg是掛着的,它只是你最初從一個流開始,現在有一個新的不相關的流並排運行,沒有來自原始流的更多數據。 – Brad
你的意思是啓動一個新的ffmpeg進程? – devo1929