Nikon video playback problem

Mom's new Nikon Coolpix S9100 takes HD video.

Once she got a card reader (her Linux PC didn't mount the camera due to a PTP vs MTP issue (I believe the issue is that Ubuntu 10.04 doesn't support MTP: I'm 5,000km away, cannot thoroughly test it)), she loaded her images & videos onto her hard drive.

But the video playback was jerky, played for a few seconds, paused (audio continued), pixelated some frames, paused, then played the final few frames.

This was using VLC or Movie Player in Ubuntu, and with Media Player Classic (a slightly old version), or Media Player 11 in Windows XP.

Seems others have encountered this issue too.

Here (finally) is my solution:

Transcode the videos with FFmpeg.

It seems the problem stems from the video "container" claiming to be 59.94 frames per second, while the video itself is 29.97 frames per second.

To find out what FFmpeg reported this about the input video & audio streams, I typed this command:

ffmpeg -i DSCN0045.MOV

and here are the results:

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'DSCN0045.MOV':
Duration: 00:01:13.07, start: 0.000000, bitrate: 14613 kb/s
Stream #0.0(eng): Video: h264, yuv420p, 1920x1080, 29.97 tbr, 29.97 tbn, 59.94 tbc
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16

So, to fix it, transcode the movie from h264 video to mpeg4, and the audio from AAC to either alac (Apple Lossless Audio Codec) or ac3 (Dolby).

Try this:

ffmpeg -metadata author="Betty" -metadata title="Isaac in puddle" -metadata year="2011" -metadata comment="Mom's new camera, at Cory's" -metadata duration="00:01:13.07" -i DSCN0045.MOV -b 14613kb -r 29.97 -acodec ac3 -ab 128kb -vcodec mpeg4 DSCN0045.MOV.avi

Here's what's going on in that command:
-metadata is optional, but allows some data to be stored inside the output file, viewable by right-clicking and selecting Properties. Duration is reported by FFmpeg, see first quote block above.
-i DSCN0045.MOV is input filename.
-b 14795 is video bitrate. This should be copied from the FFmpeg output, quoted above.
-r 29.97 is the frame rate (frames per second), also copied from FFmeg output above. Note that it can be different from file to file.
-acodec ac3 is the audio codec to use. -acodec alac is also acceptable.
-ab 128kb is the audio bitrate, as reported by FFmpeg. Be sure to re-use the input file's audio bitrate!
-vcodec mpeg4 is the output video codec, reported by FFmpeg. Be sure to use the input file's video bitrate!

Finally, give an output file; I chose *.avi but *.mov or *.mp4 should work. AVI gave me instant thumbnails in the file browser, so that's my only reason for choosing it.

Now your output file is viewable with anything you choose, with audio and video quality indistinguishable from the original.

Comments

I have Nikon D200. The screen only show the picture that I just took but I won't be able to scroll to the preveous picture. Once I press the shutter, the screen will turn off and I can not do play back nor even look at the menu. All the buttons that I control with the left thumb is not function. Can you please help me. The body has less then 6000 actuation.

Greetings.

I'm sorry however I'm unable to help with your problem.

It sounds like a hardware issue; maybe take it to a camera shop and see if they can advise you.

I've never even seen my Mom's camera, she's 5,000km away from me. I just help her with the computer end of things.

Best of luck!

R o n
- - -
Vancouver

Add new comment