Opened 6 months ago

Closed 6 months ago

Last modified 6 months ago

#17441 closed defect (fixed)

Movie encode: "which ffmpeg" does not work on Windows

Reported by: chimerax-bug-report@… Owned by: Zach Pearson
Priority: normal Milestone: 1.10
Component: Input/Output Version:
Keywords: Cc: Greg Couch, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.26100
ChimeraX Version: 1.10.dev202504210655 (2025-04-21 06:55:55 UTC)
Description
Replace this text with list of actions that caused this problem to occur

Log:
Startup Messages  
---  
note | available bundle cache has not been initialized yet  
  
You can double click a model's Name or ID in the model panel to edit those
fields  
UCSF ChimeraX version: 1.10.dev202504210655 (2025-04-21)  
© 2016-2025 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open C:/Users/91880/Desktop/Manoj/Indu_Shekawat/predict/prankweb-
> test_90912_unrelaxed_rank_001_alphafold2_ptm_model_3_seed_000/visualizations/structure.pdb_pymol.pml

Unrecognized file suffix '.pml'  

> help help:quickstart

> open
> C:/Users/91880/Desktop/Manoj/Indu_Shekawat/predict/test_90912.result/test_90912/test_90912_unrelaxed_rank_001_alphafold2_ptm_model_3_seed_000.pdb

Chain information for
test_90912_unrelaxed_rank_001_alphafold2_ptm_model_3_seed_000.pdb #1  
---  
Chain | Description  
A | No description available  
  
Computing secondary structure  

> show atoms

> movie record

> turn y 2 180

> wait 180

> movie encode C:\Users\91880/Desktop\movie1.mp4

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\toolbar\tool.py", line 185, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1419, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\\__init__.py", line 66, in run_provider  
shortcuts.run_provider(session, name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1394, in run_provider  
keyboard_shortcuts(session).try_shortcut(name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 403, in try_shortcut  
self.run_shortcut(keys)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 421, in run_shortcut  
sc.run(self.session, status = self._enabled)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 340, in run  
f(s)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1312, in save_spin_movie  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 537, in run  
run_command(session, command, **kw)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\cli.py", line 3219, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 202, in movie_encode  
encode_op(session, output[-1], format, quality, qscale, bitrate,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 260, in encode_op  
movie.start_encoding(output, f['ffmpeg_name'], output_size, f['ffmpeg_codec'],
"yuv420p", f['size_restriction'],  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\movie.py", line 315, in start_encoding  
self.encoder = ffmpeg_encoder(output_file, output_format, output_size,
video_codec, pixel_format,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\encode.py", line 49, in __init__  
if subprocess.run(["which", "ffmpeg"]).returncode:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 548, in run  
with Popen(*popenargs, **kwargs) as process:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1026, in __init__  
self._execute_child(args, executable, preexec_fn, close_fds,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  

> movie record

> turn y 2 180

> wait 180

> movie encode C:\Users\91880/Desktop\movie1.mp4

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\toolbar\tool.py", line 185, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1419, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\\__init__.py", line 66, in run_provider  
shortcuts.run_provider(session, name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1394, in run_provider  
keyboard_shortcuts(session).try_shortcut(name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 403, in try_shortcut  
self.run_shortcut(keys)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 421, in run_shortcut  
sc.run(self.session, status = self._enabled)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 340, in run  
f(s)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1312, in save_spin_movie  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 537, in run  
run_command(session, command, **kw)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\cli.py", line 3219, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 202, in movie_encode  
encode_op(session, output[-1], format, quality, qscale, bitrate,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 260, in encode_op  
movie.start_encoding(output, f['ffmpeg_name'], output_size, f['ffmpeg_codec'],
"yuv420p", f['size_restriction'],  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\movie.py", line 315, in start_encoding  
self.encoder = ffmpeg_encoder(output_file, output_format, output_size,
video_codec, pixel_format,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\encode.py", line 49, in __init__  
if subprocess.run(["which", "ffmpeg"]).returncode:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 548, in run  
with Popen(*popenargs, **kwargs) as process:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1026, in __init__  
self._execute_child(args, executable, preexec_fn, close_fds,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  

> movie record

> turn y 2 180

> wait 180

> movie encode C:\Users\91880/Desktop\movie1.mp4

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\toolbar\tool.py", line 185, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1419, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\\__init__.py", line 66, in run_provider  
shortcuts.run_provider(session, name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1394, in run_provider  
keyboard_shortcuts(session).try_shortcut(name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 403, in try_shortcut  
self.run_shortcut(keys)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 421, in run_shortcut  
sc.run(self.session, status = self._enabled)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 340, in run  
f(s)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1312, in save_spin_movie  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 537, in run  
run_command(session, command, **kw)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\cli.py", line 3219, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 202, in movie_encode  
encode_op(session, output[-1], format, quality, qscale, bitrate,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 260, in encode_op  
movie.start_encoding(output, f['ffmpeg_name'], output_size, f['ffmpeg_codec'],
"yuv420p", f['size_restriction'],  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\movie.py", line 315, in start_encoding  
self.encoder = ffmpeg_encoder(output_file, output_format, output_size,
video_codec, pixel_format,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\encode.py", line 49, in __init__  
if subprocess.run(["which", "ffmpeg"]).returncode:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 548, in run  
with Popen(*popenargs, **kwargs) as process:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1026, in __init__  
self._execute_child(args, executable, preexec_fn, close_fds,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  

> select :23.a, :120.a, :21.a

Expected an objects specifier or a keyword  

> show sel

> color sel red

> label sel

> hide atoms

> select :1.a, :3.a, :4.a, :5.a, :6.a, :13.a, :15.a, :16.a, :18.a, :21.a,
> :23.a, :26.a, :27.a, :30.a, :31.a, :34.a, :64.a, :65.a, :68.a, :69.a, :70.a,
> :71.a, :74.a, :100.a, :101.a, :102.a, :104.a, :105.a, :106.a, :107.a,
> :108.a, :109.a, :115.a, :123.a, :125.a, :127.a, :142.a, :151.a, :153.a,
> :155.a, :157.a

Expected an objects specifier or a keyword  

> select
> #1:/A:1,3,4,5,6,13,15,16,18,21,23,26,27,30,31,34,64,65,68,69,70,71,74,100,101,102,104,105,106,107,108,109,115,123,125,127,142,151,153,155,157

Expected an objects specifier or a keyword  

> models

Unknown command: models  

> help

> style stick

Changed 1409 atom styles  

> style sphere

Changed 1409 atom styles  

> color byhetero

> color bypolymer

> coulombic

Using Amber 20 recommended default charges and atom types for standard
residues  
Coulombic values for
test_90912_unrelaxed_rank_001_alphafold2_ptm_model_3_seed_000.pdb_A SES
surface #1.1: minimum, -19.04, mean -4.69, maximum 10.29  
To also show corresponding color key, enter the above coulombic command and
add key true  

> mlp

Map values for surface
"test_90912_unrelaxed_rank_001_alphafold2_ptm_model_3_seed_000.pdb_A SES
surface": minimum -27.27, mean -4.744, maximum 22.88  
To also show corresponding color key, enter the above mlp command and add key
true  

> color bynucleotide

> ~hbonds

Alignment identifier is 1/A  

> rainbow

> color bypolymer

> color bychain

> color byhetero

> nucleotides atoms

> style nucleic stick

Changed 0 atom styles  

> nucleotides atoms

> style nucleic stick

Changed 0 atom styles  

> style ball

Changed 1409 atom styles  

> nucleotides tube/slab shape ellipsoid

> graphics silhouettes true

> lighting shadows true

> lighting flat

> lighting soft

> lighting simple

> view orient

> volume style surface

No volumes specified  

> volume style mesh

No volumes specified  

> volume appearance chest

No volumes specified  

> show atoms

> hide atoms

> style stick

Changed 1409 atom styles  

> style sphere

Changed 1409 atom styles  

> style ball

Changed 1409 atom styles  

> set bgColor black

> show atoms

> save C:\Users\91880/Desktop\image1.png supersample 3

> movie record

> turn y 2 180

> wait 180

> movie encode C:\Users\91880/Desktop\movie1.mp4

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\toolbar\tool.py", line 185, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1419, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\\__init__.py", line 66, in run_provider  
shortcuts.run_provider(session, name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1394, in run_provider  
keyboard_shortcuts(session).try_shortcut(name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 403, in try_shortcut  
self.run_shortcut(keys)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 421, in run_shortcut  
sc.run(self.session, status = self._enabled)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 340, in run  
f(s)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1312, in save_spin_movie  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 537, in run  
run_command(session, command, **kw)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\cli.py", line 3219, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 202, in movie_encode  
encode_op(session, output[-1], format, quality, qscale, bitrate,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 260, in encode_op  
movie.start_encoding(output, f['ffmpeg_name'], output_size, f['ffmpeg_codec'],
"yuv420p", f['size_restriction'],  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\movie.py", line 315, in start_encoding  
self.encoder = ffmpeg_encoder(output_file, output_format, output_size,
video_codec, pixel_format,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\encode.py", line 49, in __init__  
if subprocess.run(["which", "ffmpeg"]).returncode:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 548, in run  
with Popen(*popenargs, **kwargs) as process:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1026, in __init__  
self._execute_child(args, executable, preexec_fn, close_fds,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  

> movie record

> turn y 2 180

> wait 180

> movie encode C:\Users\91880/Desktop\movie1.mp4

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\toolbar\tool.py", line 185, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1419, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\\__init__.py", line 66, in run_provider  
shortcuts.run_provider(session, name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1394, in run_provider  
keyboard_shortcuts(session).try_shortcut(name)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 403, in try_shortcut  
self.run_shortcut(keys)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 421, in run_shortcut  
sc.run(self.session, status = self._enabled)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 340, in run  
f(s)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 1312, in save_spin_movie  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\shortcuts\shortcuts.py", line 537, in run  
run_command(session, command, **kw)  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\core\commands\cli.py", line 3219, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 202, in movie_encode  
encode_op(session, output[-1], format, quality, qscale, bitrate,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\moviecmd.py", line 260, in encode_op  
movie.start_encoding(output, f['ffmpeg_name'], output_size, f['ffmpeg_codec'],
"yuv420p", f['size_restriction'],  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\movie.py", line 315, in start_encoding  
self.encoder = ffmpeg_encoder(output_file, output_format, output_size,
video_codec, pixel_format,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\site-
packages\chimerax\movie\encode.py", line 49, in __init__  
if subprocess.run(["which", "ffmpeg"]).returncode:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 548, in run  
with Popen(*popenargs, **kwargs) as process:  
^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1026, in __init__  
self._execute_child(args, executable, preexec_fn, close_fds,  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
FileNotFoundError: [WinError 2] The system cannot find the file specified  
  
File "C:\Program Files\ChimeraX 1.10.dev202504210655\bin\Lib\subprocess.py",
line 1538, in _execute_child  
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 - Build 27.20.100.8853
OpenGL renderer: Intel(R) UHD Graphics
OpenGL vendor: Intel

Python: 3.11.4
Locale: en_IN.cp1252
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: windows

Manufacturer: HP
Model: HP Laptop 14-ck2xxx
OS: Microsoft Windows 11 Home Single Language (Build 26100)
Memory: 8,403,931,136
MaxProcessMemory: 137,438,953,344
CPU: 8 Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
OSLanguage: en-US

Installed Packages:
    alabaster: 1.0.0
    appdirs: 1.4.4
    asttokens: 3.0.0
    auditwheel: 6.3.0
    babel: 2.17.0
    beautifulsoup4: 4.13.3
    blockdiag: 3.0.0
    blosc2: 3.3.1
    build: 1.2.2.post1
    certifi: 2025.1.31
    cftime: 1.6.4.post1
    charset-normalizer: 3.4.1
    ChimeraX-AddCharge: 1.5.18
    ChimeraX-AddH: 2.2.7
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.6.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.20
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.1.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Aniso: 1.1.3
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.60.5
    ChimeraX-AtomicLibrary: 14.1.15
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.3
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 3.0.0
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.2
    ChimeraX-BuildStructure: 2.13.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.4.0
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.4
    ChimeraX-ChemGroup: 2.0.2
    ChimeraX-Clashes: 2.3
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.8
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.10.dev202504210655
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.5
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.4
    ChimeraX-Dicom: 1.2.7
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.4
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.4.1
    ChimeraX-Hbonds: 2.5.1
    ChimeraX-Help: 1.3
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.3
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-KVFinder: 1.6
    ChimeraX-Label: 1.1.14
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.2
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.3
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.2.1
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.9
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.16
    ChimeraX-MMTF: 2.2
    ChimeraX-ModelArchive: 1.0
    ChimeraX-Modeller: 1.5.19
    ChimeraX-ModelPanel: 1.5.1
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-MutationScores: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.2
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.2
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.14.1
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.9
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.3
    ChimeraX-ProfileGrids: 1.1.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.6.3
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.3.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.3
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.5.7
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.17.1
    ChimeraX-Shape: 1.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.2.0
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-SimilarStructures: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.19.1
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5.2
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.2.3
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.45.1
    ChimeraX-Umap: 1.0
    ChimeraX-uniprot: 2.3.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.4
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.4
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.2
    comtypes: 1.4.10
    contourpy: 1.3.2
    coverage: 7.8.0
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.0.12
    debugpy: 1.8.14
    decorator: 5.2.1
    docutils: 0.21.2
    executing: 2.2.0
    filelock: 3.18.0
    fonttools: 4.57.0
    funcparserlib: 2.0.0a0
    glfw: 2.9.0
    grako: 3.16.5
    h5py: 3.13.0
    html2text: 2024.2.26
    idna: 3.10
    ihm: 2.2
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    iniconfig: 2.1.0
    ipykernel: 6.29.5
    ipython: 8.26.0
    ipywidgets: 8.1.6
    jedi: 0.19.1
    Jinja2: 3.1.6
    jupyter_client: 8.6.3
    jupyter_core: 5.7.2
    jupyterlab_widgets: 3.0.14
    kiwisolver: 1.4.8
    line_profiler: 4.2.0
    lxml: 5.3.1
    lz4: 4.4.4
    MarkupSafe: 3.0.2
    matplotlib: 3.10.1
    matplotlib-inline: 0.1.7
    msgpack: 1.1.0
    ndindex: 1.9.2
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.10.2
    numpy: 1.26.4
    OpenMM: 8.2.0
    openvr: 1.26.701
    packaging: 24.2
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pickleshare: 0.7.5
    pillow: 10.4.0
    pip: 25.0.1
    pkginfo: 1.11.1
    platformdirs: 4.3.7
    pluggy: 1.5.0
    prompt_toolkit: 3.0.51
    psutil: 7.0.0
    pure_eval: 0.2.3
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    pyelftools: 0.32
    Pygments: 2.18.0
    pynmrstar: 3.3.5
    pynrrd: 1.0.0
    PyOpenGL: 3.1.9
    PyOpenGL-accelerate: 3.1.9
    pyopenxr: 1.1.4501
    pyparsing: 3.2.3
    pyproject_hooks: 1.2.0
    PyQt6-commercial: 6.8.1
    PyQt6-Qt6: 6.8.2
    PyQt6-WebEngine-commercial: 6.8.0
    PyQt6-WebEngine-Qt6: 6.8.2
    PyQt6_sip: 13.10.0
    pytest: 8.3.5
    pytest-cov: 6.1.1
    python-dateutil: 2.9.0.post0
    pytz: 2025.2
    pywin32: 310
    pyzmq: 26.4.0
    qtconsole: 5.5.2
    QtPy: 2.4.3
    qtshim: 1.1
    RandomWords: 0.4.0
    requests: 2.32.3
    roman-numerals-py: 3.1.0
    scipy: 1.14.0
    setuptools: 78.1.0
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.7
    Sphinx: 8.2.3
    sphinx-autodoc-typehints: 3.1.0
    sphinxcontrib-applehelp: 2.0.0
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 2.0.0
    sphinxcontrib-htmlhelp: 2.1.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 2.0.0
    sphinxcontrib-serializinghtml: 2.0.0
    stack-data: 0.6.3
    superqt: 0.7.1
    tables: 3.10.2
    tcia_utils: 1.5.1
    tifffile: 2025.3.13
    tinyarray: 1.2.4
    tornado: 6.4.2
    traitlets: 5.14.3
    typing_extensions: 4.13.2
    tzdata: 2025.2
    urllib3: 2.4.0
    wcwidth: 0.2.13
    webcolors: 24.11.1
    wheel: 0.45.1
    wheel-filename: 1.4.2
    widgetsnbextension: 4.0.14
    WMI: 1.5.1

Change History (6)

comment:1 by pett, 6 months ago

Cc: Greg Couch Tom Goddard added
Component: UnassignedInput/Output
Owner: set to Zach Pearson
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionMovie encode: "which ffmpeg" does not work on Windows

comment:2 by pett, 6 months ago

Milestone: 1.10

comment:3 by Zach Pearson, 6 months ago

I added a guard there that will short circuit on Windows and stop "which ffmpeg" from being called. Will be fixed in tomorrow's build.

comment:4 by Zach Pearson, 6 months ago

Resolution: fixed
Status: assignedclosed

comment:5 by Tom Goddard, 6 months ago

This seems very fragile. "which" is not an executable on Mac it is a shell built-in. And it is hard to know how widely available "which" is. So if you are going to use that it should be bullet proof on operating systems that don't support it.

There is a Python shutil.which() function that might be more robust, but even with that care will be needed to make sure it does not throw an error that cripples all movie encoding.

comment:6 by Greg Couch, 6 months ago

"which" works just fine for me on Windows in the bash shell. If I recall correctly, "which" first appeared in csh circa 1980 when aliases were added. And then in every shell that has implemented aliases ever since.

Note: See TracTickets for help on using tickets.