web-dev-qa-db-fra.com

Je reçois une erreur "Format de pixel obsolète utilisé, assurez-vous que vous avez correctement défini la plage à l'aide de ffmpeg". Quelqu'un peut-il vérifier mon code ci-dessous?

Ceci est mon code en utilisant ffmpeg, je veux avoir une vignette vidéo, mais je ne suis pas familier avec ffmpeg, quelqu'un peut-il connaître l'erreur que j'ai reçue.

[swscaler @ 0x7ff8da028c00] deprecated pixel format used, make sure you did set range correctly
Output #0, mjpeg, to 'image.jpg':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: isommp42
encoder         : Lavf56.36.100
Stream #0:0(und): Video: mjpeg, yuvj420p(pc), 320x240 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc (default)
Metadata:
  creation_time   : 2016-11-06 09:40:22
  handler_name    : ISO Media file produced by Google Inc.
  encoder         : Lavc56.41.100 mjpeg
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=4.8 Lsize=      16kB time=00:00:01.00 bitrate= 129.5kbits/s    
video:16kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

C'est aussi mon code:

$video_url ='https://URL/upload/4b8acab123563649f19e07450d810df6.mp4';


 $ffmpeg = '/opt/local/bin/ffmpeg';
 $image = 'image.jpg';
 $interval = 5;
 $size = '320x240';
 Shell_exec($tmp = "$ffmpeg -i $video_url -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1");  
13
Mavs Mavs

Selon le forum ffmpeg, cela peut être ignoré lorsqu'il est appelé à partir de la ligne de commande et je l'ai toujours ignoré. Une chose que vous pouvez essayer (testez avec un fichier factice S'IL VOUS PLAÎT) est d'ajouter -pix_fmt yuvj422p à votre dernière ligne pour qu'elle ressemble à ceci:

Shell_exec($tmp = "$ffmpeg -i $video_url -pix_fmt yuvj422p -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1");

Comme je l'ai dit, testez-le s'il vous plaît car je ne peux pas garantir les résultats mais en ce qui me concerne, j'ai utilisé ffmpeg des milliers de fois et tout semble très bien même avec l'avertissement.

https://lists.ffmpeg.org/pipermail/ffmpeg-user/2014-F February/020151.html

Afaict, l'avertissement est principalement destiné aux utilisateurs de la bibliothèque, les utilisateurs de ffmpeg ne devraient pas être affectés.

OK, je l'ignorerai alors.

17

Je change juste le chemin de la destination de l'image:

# path of image on the server
$image = '/users/xx/xxxx/sample/upload/image.jpg'; 

Ensuite, j'ai utilisé ce qui suit:

# $ffmpeg - path of ffmpeg on the server
# $video_url - path of the video file on the server

Shell_exec($tmp = "$ffmpeg -i $video_url -pix_fmt yuvj422p -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1");  
1
Mavs Mavs