[PYTHON] Résoudre les erreurs d'exécution en arrière-plan de ffmpeg

environnement

os:ubuntu18.0.4(ec2:g4.xlarge) Python:3.7.7 ffmpeg:4.3.1

Conclusion

Ajoutez l'option -nostdin``` lors de l'exécution de ffmpeg dans un processus d'arrière-plan.

cmd = f'ffmpeg -nostdin -y -i "{mv_input_path}" -vcodec h264_nvenc "{mv_ffmpeg_path}"'
subprocess.call(cmd, shell=True)

Contexte

Après avoir traité la vidéo téléchargée avec cv2, j'ai créé un programme qui la convertit et la compresse à l'aide de ffmpeg '' et l'enregistre dans s3. Quand j'ai fait du programme un démon, j'ai obtenu une erreur ```Données non valides trouvées lors du traitement de l'entrée` dans `` `ffmpeg```.


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!

La conversion semble être terminée, mais la trame 76/83 est dupliquée comme dans dup = 76 ''`. Lorsque je lis la vidéo, cela semble être une vidéo 1fps. À la suite de la vérification, il semble que cette erreur ne se produise que lorsqu'elle est transformée en démon. À la suite de tout cela et de cela, j'ai réussi à le résoudre en créant un Docker qui n'utilise que ffmpeg et en le convertissant. Cependant, comme mentionné précédemment, il pourrait être résolu simplement en ajoutant l'option -nostdin```. .. .. Je n'ai trouvé aucun article similaire et j'ai passé énormément de temps à trouver cette option, je vais donc la partager.

référence

https://unix.stackexchange.com/questions/222847/how-to-stream-with-ffmpeg-in-a-separate-process

Recommended Posts

Résoudre les erreurs d'exécution en arrière-plan de ffmpeg