こんにちは。
python ファイル内で ffmpeg(4.3.1) を subprocess.call() 関数を使って実行しています。
python
1cmd = f'ffmpeg -y -i "{mv_temp_out_path}" -vcodec h264 "{mv_ffmpeg_path}"' 2# cmd = f'ffmpeg -y -i "{mv_temp_out_path}" -vcodec h264_nvenc "{mv_ffmpeg_path}"' # gpu 3subprocess.call(cmd, shell=True)
しかし、python ファイルを gunicorn で動作させるとき、-D オプションをつけて動かす(デーモン化)した際、エラーが発生します。-D オプションをつけずに動かすと正常に動作します。gpu が使えてないのかと思い、cpu を使うようにしても同じエラーが発生します。
実行結果は以下の通りです。
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './Outputs/TempSaveMovie/200703_4_short_5fr_p2(100_20)_r(50_20).mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.35.100 Duration: 00:00:06.15, start: 0.000000, bitrate: 10246 kb/s Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 10244 kb/s, 13 fps, 13 tbr, 13312 tbn, 13 tbc (default) Metadata: handler_name : VideoHandler Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (h264_nvenc)) Press [q] to stop, [?] for help [mpeg4 @ 0x55cec17c5480] header damaged [mpeg4 @ 0x55cec17c6840] header damaged [mpeg4 @ 0x55cec1855f80] header damaged [mpeg4 @ 0x55cec1866e00] header damaged Output #0, mp4, to './Outputs/MovieOutputs/200703_4_short_5fr_p2(100_20)_r(50_20).mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.45.100 Stream #0:0(und): Video: h264 (h264_nvenc) (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 13 fps, 13312 tbn, 13 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.91.100 h264_nvenc Side data: cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: N/A Error while decoding stream #0:0: Invalid data found when processing input [mpeg4 @ 0x55cec17c8780] header damaged Error while decoding stream #0:0: Invalid data found when processing input [mpeg4 @ 0x55cec17c5480] header damaged ... ... ... [mpeg4 @ 0x55cec1855f80] header damaged Error while decoding stream #0:0: Invalid data found when processing input [mpeg4 @ 0x55cec1866e00] header damaged Error while decoding stream #0:0: Invalid data found when processing input Last message repeated 3 times frame= 83 fps=0.0 q=14.0 Lsize= 1800kB time=00:00:06.30 bitrate=2337.4kbits/s dup=76 drop=0 speed=18.7x video:1799kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.064613% Conversion failed!
同じエラーを解決した方がいらっしゃれば共有いただけると幸いです。
追記1
エラーは生じていますが、変換自体はされています。しかし、フレームが欠落しています(fps-1だけ欠落している様子)。
追記2
mv_ffmpeg_path = 'xxx.mp4' try: self.__main_detection(filename, mv_original_path, mv_temp_out_path, downward_config, beam_config, interval) except TypeError as e: traceback.print_exc() else: cmd = f'ffmpeg -y -i "{mv_temp_out_path}" -vcodec h264_nvenc "{mv_ffmpeg_path}"' subprocess.call(cmd, shell=True)
回答1件
あなたの回答
tips
プレビュー